diff options
| author | Kenneth Graunke <kenneth@whitecape.org> | 2010-08-07 00:50:08 -0700 | 
|---|---|---|
| committer | Kenneth Graunke <kenneth@whitecape.org> | 2010-08-07 00:51:30 -0700 | 
| commit | b7e63c34e74ecfb1c4af8132471ca9cb70d28d1f (patch) | |
| tree | 383632feaddd782626bdd965b5b202a5cd984104 /src | |
| parent | 58f1ffdd7c64c0c0962d2aaacdde8f55edefbb2c (diff) | |
glsl2: Add the 1.30 reserved keywords.
Diffstat (limited to 'src')
| -rw-r--r-- | src/glsl/glsl_lexer.cpp | 981 | ||||
| -rw-r--r-- | src/glsl/glsl_lexer.lpp | 32 | ||||
| -rw-r--r-- | src/glsl/glsl_parser.cpp | 2645 | ||||
| -rw-r--r-- | src/glsl/glsl_parser.h | 143 | ||||
| -rw-r--r-- | src/glsl/glsl_parser.ypp | 9 | 
5 files changed, 2131 insertions, 1679 deletions
| diff --git a/src/glsl/glsl_lexer.cpp b/src/glsl/glsl_lexer.cpp index 43be3170ba..672b0b1359 100644 --- a/src/glsl/glsl_lexer.cpp +++ b/src/glsl/glsl_lexer.cpp @@ -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 147 -#define YY_END_OF_BUFFER 148 +#define YY_NUM_RULES 177 +#define YY_END_OF_BUFFER 178  /* This struct is not used in this scanner,     but its presence is necessary. */  struct yy_trans_info @@ -367,66 +358,81 @@ struct yy_trans_info  	flex_int32_t yy_verify;  	flex_int32_t yy_nxt;  	}; -static yyconst flex_int16_t yy_accept[525] = +static yyconst flex_int16_t yy_accept[668] =      {   0, -        0,    0,    9,    9,  148,  146,    1,   14,  146,  146, -      146,  146,  146,  146,  146,  146,   90,   88,  146,  146, -      146,  145,  146,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,  146,    1,  146,   85,  147,    9,   13, -      147,   12,   10,   11,    1,   74,   81,   75,   84,   78, +        0,    0,    9,    9,  178,  176,    1,   14,  176,  176, +      176,  176,  176,  176,  176,  176,   90,   88,  176,  176, +      176,  175,  176,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  176,    1,  176,   85,  177,    9,   13, +      177,   12,   10,   11,    1,   74,   81,   75,   84,   78,         69,   80,   70,   87,   92,   79,   93,   90,    0,    0, -       95,    0,   88,    0,   71,   73,   72,    0,  145,   77, -      145,  145,  145,  145,  145,  145,  145,  145,  145,  145, -      145,   22,  145,  145,  145,  145,  145,  145,  145,  145, +       95,    0,   88,    0,   71,   73,   72,    0,  175,   77, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,   22,  175,  175,  175,  175,  175,  175,  175, + +      175,  175,  175,  175,  175,  175,   26,  175,  175,   50, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,   86,   76,    1,    0,    0,    2,    0,    0,    0, +        0,    9,    8,   12,   11,    0,   92,   91,    0,   93, +        0,   94,   89,   82,   83,  175,   98,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,   25,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  175,   19, -      145,  145,  145,  145,  145,   26,   50,  145,  145,  145, -      145,  145,  145,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,  145,  145,   86,   76,    1,    0,    0, -        2,    0,    0,    0,    0,    9,    8,   12,   11,    0, -       92,   91,    0,   93,    0,   94,   89,   82,   83,   98, -      145,  145,  145,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,  145,  145,  145,  145,  145,  145,   25, -      145,  145,  145,  145,  145,  145,  145,  145,   19,  145, -      145,  145,  145,  145,  145,  145,  145,  145,  145,   51, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +       51,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,    0,    0, +        0,    0,    8,    0,   92,    0,   91,    0,   93,   94, +      175,  175,   17,  175,  175,  138,  175,  175,  175,  175, +      175,  175,  175,  175,  175,   24,  101,  175,  175,  175, +      175,   57,  175,  175,  106,  120,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  117,  141,   38, +       39,   40,  175,  175,  175,  175,  175,  175,  175,  175, -      145,  145,  145,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,    0,    0,    0,    0,    8,    0,   92, -        0,   91,    0,   93,   94,  145,   17,  145,  145,  138, -      145,  145,  145,  145,  145,  145,  145,  145,   24,  101, -      145,  145,  145,   57,  145,  145,  106,  120,  145,  145, -      145,  145,  145,  145,  145,  145,  145,  117,  141,   38, -       39,   40,  145,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,  145,  145,  145,  145,  145,  145,  104, -       96,  145,  145,  145,  145,  145,  145,   35,   36,   37, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  104,   96,  175,  175,  175,  175,  175,  175, +      175,   35,   36,   37,   67,  175,  175,    0,    0,    0, +        0,    0,   91,  175,  175,   20,   29,   30,   31,  175, +       99,  175,   16,  175,  175,  175,  175,  128,  129,  130, +      175,   97,  175,  121,   18,  131,  132,  133,  143,  125, +      126,  127,  175,  175,  175,   52,  123,  175,  175,   32, +       33,   34,  175,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  118,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  100, -       67,  145,  145,    0,    0,    0,    0,    0,   91,  145, -       20,   29,   30,   31,  145,   99,   16,  145,  145,  145, -      145,  128,  129,  130,  145,   97,  121,   18,  131,  132, -      133,  143,  125,  126,  127,  145,   52,  123,  145,  145, -       32,   33,   34,  145,  145,  145,  145,  145,  145,  145, -      145,  145,  145,  145,  145,  145,  145,  118,  145,  145, -      145,  145,  145,  145,  145,  145,  100,  145,  140,  145, -      145,   23,    0,    0,    0,    0,  145,  145,  145,  145, -      145,  119,  114,  109,  145,  145,   68,   41,   42,   43, -       44,   45,   46,   47,   48,   49,  145,  145,  145,  145, +      175,  140,  175,  175,   23,    0,    0,    0,    0,  147, +      175,  175,  145,  175,  175,  175,  119,  114,  150,  175, +      175,  175,  175,  175,  175,  109,  175,  175,   68,   41, +       42,   43,   44,   45,   46,   47,   48,   49,  175,  175, +      175,  175,  124,  105,  175,  175,  112,   28,  175,  175, +      137,   58,  113,   66,  148,  107,  175,  175,  175,  175, +      175,  175,  175,    0,    0,    0,    0,  175,  175,  175, +      108,   27,  175,  175,  175,  175,  175,  175,  151,  152, +      153,  175,  175,  175,  175,  142,  175,  175,  175,  175, +      175,  175,  175,  175,  102,  175,  175,  175,  175,  175, -      124,  105,  145,  112,   28,  145,  137,   58,  113,   66, -      107,  145,  145,  145,  145,  145,  145,    0,    0,    0, -        0,  145,  145,  145,  108,   27,  145,  145,  145,  142, -      145,  145,  145,  145,  145,  145,  102,   53,  145,   54, -      145,    0,    0,    0,    7,    0,  145,   55,   21,  115, -      145,  145,  145,  110,  145,  145,  145,  145,  145,  145, -      103,  122,  111,    0,    0,    6,    0,    0,    0,    3, -       15,  116,   56,  139,  145,  144,   60,   61,   62,  145, -        0,    0,    0,    0,  145,  145,  145,  145,  145,  145, -        4,    0,    5,    0,    0,    0,  145,  145,  145,  145, +       53,  175,   54,  175,    0,    0,    0,    7,    0,  175, +       55,   21,  115,  155,  156,  157,  175,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  110,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  103,  159,  160, +      161,  175,  175,  122,  111,    0,    0,    6,    0,    0, +        0,    3,   15,  175,  175,  175,  175,  175,  175,  175, +      175,  175,  154,  116,   56,  139,  175,  146,  144,  174, +       60,   61,   62,  175,  175,  175,  175,  175,  175,    0, +        0,    0,    0,  175,  175,  175,  158,  175,  175,  175, +      175,  175,  175,  175,  175,  175,  175,  175,  175,  175, -      145,   63,    0,  145,  145,  145,  145,  145,   59,  145, -      134,  145,  135,  145,  145,  145,   64,  145,   65,  145, -      145,  145,  136,    0 +      175,  175,  162,    4,    0,    5,    0,    0,    0,  175, +      175,  175,  175,  175,  175,  175,  171,  175,  175,  175, +      175,  175,  175,   63,  175,  175,  175,    0,  175,  175, +      172,  163,  175,  164,  175,  175,  175,  175,  175,  175, +      175,  175,  175,  173,  165,  166,  169,  170,   59,  175, +      134,  175,  135,  149,  167,  168,  175,  175,  175,   64, +      175,   65,  175,  175,  175,  136,    0      } ;  static yyconst flex_int32_t yy_ec[256] = @@ -437,14 +443,14 @@ static yyconst flex_int32_t yy_ec[256] =          1,    2,    5,    1,    6,    1,    7,    8,    1,    1,          1,    9,   10,    1,   11,   12,   13,   14,   15,   16,         17,   18,   19,   19,   19,   20,   20,   21,    1,   22, -       23,   24,    1,    1,   25,   25,   26,   27,   28,   29, -       30,   30,   30,   30,   30,   30,   30,   30,   30,   30, -       30,   31,   32,   30,   30,   30,   30,   33,   30,   30, -        1,    1,    1,   34,   30,    1,   35,   36,   37,   38, +       23,   24,    1,    1,   25,   26,   27,   28,   29,   30, +       31,   31,   31,   31,   31,   31,   31,   31,   31,   31, +       31,   32,   33,   31,   31,   31,   31,   34,   31,   31, +        1,    1,    1,   35,   36,    1,   37,   38,   39,   40, -       39,   40,   41,   42,   43,   30,   44,   45,   46,   47, -       48,   49,   30,   50,   51,   52,   53,   54,   55,   56, -       57,   58,    1,   59,    1,    1,    1,    1,    1,    1, +       41,   42,   43,   44,   45,   46,   47,   48,   49,   50, +       51,   52,   31,   53,   54,   55,   56,   57,   58,   59, +       60,   61,    1,   62,    1,    1,    1,    1,    1,    1,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1, @@ -461,342 +467,415 @@ static yyconst flex_int32_t yy_ec[256] =          1,    1,    1,    1,    1      } ; -static yyconst flex_int32_t yy_meta[60] = +static yyconst flex_int32_t yy_meta[63] =      {   0, -        1,    2,    3,    1,    1,    1,    1,    1,    1,    4, -        4,    1,    1,    5,    5,    5,    5,    5,    5,    6, -        1,    1,    1,    1,    7,    7,    7,    8,    8,    9, -        9,    9,   10,    1,    7,    7,    7,    7,    8,    8, -        9,    9,    9,    9,    9,    9,    9,    9,    9,    9, -        9,    9,    9,    9,    9,   10,    9,    9,    1 +        1,    2,    3,    1,    1,    1,    1,    1,    1,    1, +        1,    1,    1,    4,    4,    4,    4,    4,    4,    5, +        1,    1,    1,    1,    6,    6,    6,    6,    5,    5, +        7,    7,    7,    8,    1,    7,    6,    6,    6,    6, +        5,    5,    7,    7,    7,    7,    7,    7,    7,    7, +        7,    7,    7,    7,    7,    7,    7,    7,    8,    7, +        7,    1      } ; -static yyconst flex_int16_t yy_base[542] = +static yyconst flex_int16_t yy_base[678] =      {   0, -        0,   58,   81,    0,  814,  815,   59,  815,  790,  789, -       54,  788,   55,   56,   54,  787,  129,  174,   53,  786, -      127,    0,  774,  101,  106,  126,  116,  128,  152,  759, -      161,  158,  128,  142,  131,  753,  166,  766,  175,  181, -      131,  187,  762,  149,  205,  222,  780,  815,  230,  815, -      789,  225,  815,    0,  244,  815,  815,  815,  815,  815, -      815,  815,  815,  815,  223,  815,  225,  200,  265,  218, -      815,    0,    0,  778,  815,  815,  815,  777,    0,  815, -      753,  746,  749,  757,  756,  743,  746,  757,  744,  750, -      738,  735,  748,  735,  732,  732,  738,  726,  132,  731, +        0,   61,   84,    0, 1012, 1013,   62, 1013,  988,  987, +       57,  986,   58,   59,   57,  985,  135,  183,   56,  984, +      133,    0,  971,  119,  109,  130,  134,  111,  135,  954, +      151,  165,   32,  152,  131,  948,  153,  170,  182,  176, +      178,  193,  959,  125,  237,  243,  979, 1013,  214, 1013, +      988,  233, 1013,    0,  231, 1013, 1013, 1013, 1013, 1013, +     1013, 1013, 1013, 1013,  225, 1013,  227,  224,  289,  260, +     1013,    0,    0,  977, 1013, 1013, 1013,  976,    0, 1013, +      943,  948,  941,  944,  953,  952,  938,  941,  953,  155, +      947,  934,  931,  945,  931,  928,  928,  934,  213,  222, -      741,  727,  733,  736,  737,    0,  221,  736,  717,  200, -      721,  734,  725,  225,  718,  732,  729,  731,  714,  719, -      716,  705,  714,  222,  718,  714,  716,  705,  708,  207, -      713,  705,  717,  243,  710,  815,  815,  285,  257,  295, -      815,  696,  708,  700,  710,  288,    0,  298,    0,  226, -      815,  280,  289,  815,  307,  318,    0,  815,  815,    0, -      698,  702,  711,  708,  692,  691,  691,  279,  706,  703, -      703,  701,  698,  690,  696,  683,  694,  680,  696,    0, -      693,  681,  688,  685,  689,  682,  671,  670,  683,  686, -      683,  671,  677,  668,  319,  673,  676,  667,  674,  663, +      928,  939,  924,  930,  934,  935,    0,  926,  937,  237, +      932,  912,  232,  916,  930,  920,  241,  913,  257,  926, +      928,  910,  906,  914,  911,  900,  909,  228,  907,  913, +      908,  911,  899,  902,  904,  257,  907,  898,  911,  215, +      904, 1013, 1013,  310,  295,  318, 1013,  889,  902,  893, +      904,  260,    0,  308,    0,  362, 1013,  303,  373, 1013, +      380,  387,    0, 1013, 1013,  899,    0,  890,  894,  904, +      901,  884,  883,  883,  887,  280,  898,  895,  895,  893, +      890,  881,  888,  874,  872,  885,  870,  887,    0,  884, +      871,  879,  876,  880,  881,  874,  871,  859,  858,  872, -      667,  673,  664,  655,  658,  656,  666,  656,  651,  649, -      649,  651,  648,  659,  658,  255,  653,  648,  637,  325, -      655,  657,  646,  638,  642,  653,  637,    0,  336,  328, -      322,  815,  345,  356,  815,  643,    0,  641,  353,    0, -      634,  632,  630,  638,  627,  644,  633,  356,    0,    0, -      627,  637,  637,    0,  622,  359,    0,    0,  624,  362, -      625,  619,  618,  619,  618,  365,  614,    0,    0,  610, -      609,  608,  610,  611,  616,  610,  606,  619,  614,  613, -      605,  609,  601,  604,  599,  607,  612,  611,  602,    0, -        0,  608,  597,  597,  602,  601,  598,    0,    0,    0, +      875,  872,  859,  866,  856,  321,  862,  865,  855,  863, +      851,  855,  846,  861,  851,  842,  861,  844,  842,  853, +      842,  837,  835,  849,  834,  836,  833,  845,  844,  847, +      298,  838,  832,  821,  337,  840,  842,  830,  822,  826, +      838,  821,    0,  394,  404,  421, 1013,  433,  440, 1013, +      816,  827,    0,  824,  340,    0,  817,  815,  817,  812, +      821,  809,  827,  815,  344,    0,    0,  809,  820,  819, +      819,    0,  803,  347,    0,    0,  805,  351,  813,  814, +      804,  798,  797,  798,  797,  409,  793,    0,    0,  789, +      788,  787,  789,  790,  795,  789,  785,  799,  794,  793, -        0,  588,  600,  599,  598,  595,  584,  372,  383,  598, -        0,    0,    0,    0,  585,    0,    0,  585,  586,  580, -      590,    0,    0,    0,  581,    0,    0,    0,    0,    0, -        0,    0,    0,    0,    0,  588,    0,    0,  586,  582, -        0,    0,    0,  572,  381,  384,  387,  577,  573,  578, -      569,  567,  580,  566,  579,  568,  575,    0,  573,  570, -      574,  558,  567,  573,  568,  556,    0,  558,    0,  557, -      560,    0,  555,  599,  554,  556,  545,  554,  543,  543, -      556,    0,  558,    0,  557,  556,    0,    0,    0,    0, -        0,    0,    0,    0,    0,    0,  541,  554,  541,  538, +      792,  783,  786,  786,  778,  781,  776,  785,  790,  775, +      788,  778,    0,    0,  785,  781,  772,  772,  778,  777, +      774,    0,    0,    0,    0,  763,  776,  775,  774,  771, +      759,  447,  457,  771,  773,    0,    0,    0,    0,  759, +        0,  759,    0,  758,  759,  753,  764,    0,    0,    0, +      754,    0,  750,    0,    0,    0,    0,    0,    0,    0, +        0,    0,  761,  463,  760,    0,    0,  758,  754,    0, +        0,    0,  743,  426,  467,  475,  748,  744,  750,  740, +      738,  752,  736,  736,  750,  738,  750,  745,    0,  743, +      740,  744,  727,  729,  736,  742,  737,  736,  723,    0, -        0,    0,  543,    0,    0,  535,    0,    0,    0,    0, -        0,  532,  543,  536,  542,  539,  534,  527,  411,  542, -      522,  514,  527,  525,    0,    0,  518,  524,  505,    0, -      510,  504,  503,  493,  391,  501,    0,    0,  500,    0, -      480,  465,  407,  343,  815,  457,  449,    0,    0,    0, -      448,  434,  446,    0,  447,  436,  455,  454,  453,  426, -        0,    0,    0,  430,  418,  815,  431,    0,  412,  815, -        0,    0,    0,    0,  425,    0,  444,  387,  444,  438, -      426,  433,  435,  439,  422,  422,  423,  419,  421,  420, -      815,  441,  815,  453,    0,  449,  404,  422,  402,  389, +      725,    0,  724,  728,    0,  722,  769,  721,  724,    0, +      712,  722,    0,  710,  710,  724,    0,  726,    0,  479, +      734,  733,  732,  703,  702,    0,  720,  719,    0,    0, +        0,    0,    0,    0,    0,    0,    0,    0,  703,  717, +      703,  700,    0,    0,  706,  705,    0,    0,  703,  695, +        0,    0,    0,    0,    0,    0,  692,  704,  485,  696, +      703,  700,  694,  687,  501,  703,  688,  683,  697,  695, +        0,    0,  687,  706,  705,  704,  675,  674,  317,  489, +        0,  687,  690,  688,  676,    0,  686,  683,  682,  671, +      670,  669,  508,  678,    0,  690,  689,  688,  659,  658, -      385,    0,  451,  377,  373,  343,  346,  296,    0,  262, -      275,  253,    0,  223,  207,  144,    0,  148,    0,  104, -       32,   11,    0,  815,  485,  491,  497,  501,  506,  508, -      516,  523,  526,  529,  534,  543,  548,  550,  557,  566, -      568 +        0,  673,    0,  671,  666,  495,  524, 1013,  660,  668, +        0,    0,    0,  683,  682,    0,  664,  667,  651,  659, +      649,  657,  658,  658,  657,  642,  655,    0,  656,  644, +      643,  639,  663,  662,  661,  632,  631,    0,  661,  660, +        0,  642,  645,    0,    0,  631,  543, 1013,  534,    0, +      553, 1013,    0,  628,  627,  637,  637,  624,  639,  622, +      637,  632,    0,    0,    0,    0,  617,    0,    0,    0, +      638,  353,  638,  627,  630,  614,  613,  623,  623,  613, +      530,  563,  413,  609,  608,  619,    0,  622,  618,  620, +      616,  602,  609,  605,  607,  603,  598,  596,  596,  575, + +      542,  553,    0, 1013,  466, 1013,  582,    0,  588,  556, +      555,  535,  527,  535,  516,  524,    0,  517,  510,  492, +      493,  489,  472,    0,  473,  472,  451,  505,  428,  426, +        0,    0,  423,    0,  387,  392,  390,  373,  334,  316, +      298,  288,  286,    0,    0,    0,    0,    0,    0,  290, +      296,  266,    0,    0,    0,    0,  257,  269,  241,    0, +      250,    0,  202,  133,  105,    0, 1013,  605,  610,  615, +      617,  619,  625,  632,  637,  642,  647      } ; -static yyconst flex_int16_t yy_def[542] = +static yyconst flex_int16_t yy_def[678] =      {   0, -      524,    1,  524,    3,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  525,  524,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  526,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  527,  524,  528,   17,  524,  529, -      524,  530,   18,  524,  524,  524,  524,  524,  525,  524, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, +      667,    1,  667,    3,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  668,  667,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  669,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  670,  667,  671,   17,  667,  667, +      667,  672,   18,  667,  667,  667,  667,  667,  668,  667, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, + +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  673,  667,  669,  667,  667,  671,  667,  667, +      667,  667,  672,  667,  667,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  531,  524,  526,  532, -      524,  528,  533,  524,  524,  529,  530,  524,  524,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  667,  667, +      667,  667,  673,  667,  667,  667,  667,  667,  667,  667, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  524,  524,  524,  524,  531,  524,  532, -      534,  524,  524,  533,  524,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  667,  667,  667, +      667,  667,  667,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, -      525,  525,  525,  524,  524,  524,  524,  524,  534,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  524,  524,  524,  524,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, +      668,  668,  668,  668,  668,  667,  667,  667,  667,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  667,  667,  667,  667,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  524,  524,  524, -      524,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  524,  535,  536,  524,  524,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  524,  537,  524,  524,  538,  536,  524, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      524,  539,  540,  538,  525,  525,  525,  525,  525,  525, -      524,  524,  524,  524,  541,  540,  525,  525,  525,  525, +      668,  668,  668,  668,  667,  674,  667,  667,  667,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  667,  667,  667,  667,  675, +      667,  667,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  667, +      676,  667,  675,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, -      525,  525,  541,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,  525,  525,  525,  525,  525,  525,  525, -      525,  525,  525,    0,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524 +      668,  668,  668,  667,  667,  667,  667,  677,  667,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  677,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,  668,  668,  668,  668, +      668,  668,  668,  668,  668,  668,    0,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667      } ; -static yyconst flex_int16_t yy_nxt[875] = +static yyconst flex_int16_t yy_nxt[1076] =      {   0,          6,    7,    8,    7,    9,    6,   10,   11,   12,   13,         14,   15,   16,   17,   18,   18,   18,   18,   18,   18,          6,   19,   20,   21,   22,   22,   22,   22,   22,   22, -       22,   22,   22,   23,   24,   25,   26,   27,   28,   29, -       30,   31,   32,   22,   33,   34,   35,   36,   37,   38, -       39,   40,   41,   42,   43,   22,   22,   22,   44,   45, -       55,   58,   55,   46,   61,  523,   63,   65,   65,   65, -       65,   65,   65,   65,   74,   75,   59,   62,   64,  522, -       47,   48,   49,   50,   49,   48,   48,   48,   48,   48, -       48,   48,   48,   51,   48,   52,   52,   52,   52,   52, +       22,   22,   22,   22,   23,   22,   24,   25,   26,   27, +       28,   29,   30,   31,   32,   22,   22,   33,   34,   35, +       36,   37,   38,   39,   40,   41,   42,   43,   22,   22, +       22,   44,   45,   55,   58,   55,   46,   61,  112,   63, +       65,   65,   65,   65,   65,   65,   65,   74,   75,   59, +       62,   64,  113,   47,   48,   49,   50,   49,   48,   48, +       48,   48,   48,   48,   48,   48,   51,   48,   52,   52, -       52,   53,   48,   48,   48,   54,   54,   54,   54,   54, -       54,   54,   54,   54,   48,   54,   54,   54,   54,   54, +       52,   52,   52,   52,   53,   48,   48,   48,   54,   54, +       54,   54,   54,   54,   54,   54,   54,   54,   48,   54, +       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,         54,   54,   54,   54,   54,   54,   54,   54,   54,   54, -       54,   54,   54,   54,   54,   54,   54,   54,   54,   48, -       67,  521,   68,   68,   68,   68,   68,   68,   69,   77, -       78,   81,   82,   83,   90,   84,   70,   71,   91,   85, -       86,   72,  109,   92,   87,  113,  178,   70,   71,   93, -       88,  136,   94,   89,   95,  110,  111,  130,  114,  179, -      112,  131,  520,   96,   72,   67,   97,   73,   73,   73, -       73,   73,   73,   73,   98,  103,   99,  106,  519,  100, +       54,   54,   54,   54,   54,   48,   67,  142,   68,   68, +       68,   68,   68,   68,   69,   77,   78,   81,   95,   84, +       96,   85,  666,   70,   71,   86,   87,  116,   72,   97, +       88,   98,   82,   83,   91,   70,   71,   89,   92,   99, +       90,  117,  100,  665,   93,  101,  143,  104,  114,  119, +       94,  102,  115,   72,   67,  105,   73,   73,   73,   73, + +       73,   73,   73,  175,  176,  120,  107,  106,  121,  108, +      122,   70,   71,  109,  110,  152,  131,  152,  124,  132, +      123,  111,  135,   70,   71,  125,  126,  136,  133,  138, +      127,  137,   55,  139,   55,  134,  128,  129,  144,  130, +       55,  664,  145,  140,  146,  147,  154,  154,  154,  154, +      154,  154,  154,  156,  157,  159,  160,  667,  187,  236, +      185,  152,  237,  152,  222,  156,  157,  159,  160,  161, +      161,  186,  188,  162,  162,  162,  162,  162,  162,  162, +      223,  204,  667,  148,  197,  209,  663,  198,  199,  205, +      149,  200,  210,  201,  150,  212,  146,  147,  662,  151, + +       67,  231,   69,   69,   69,   69,   69,   69,   69,  213, +      232,  144,  661,   55,  660,  145,  659,   70,   71,  146, +      147,  154,  154,  154,  154,  154,  154,  154,  658,   70, +       71,  246,  247,  260,  261,  148,  290,  291,  292,  317, +      657,  519,  149,  246,  247,  656,  150,  655,  318,  520, +      654,  151,  322,  323,  324,  337,  338,  339,  148,  348, +      349,  350,  356,  357,  358,  149,  360,  361,  362,  150, +      653,  244,  244,  652,  151,  245,  245,  245,  245,  245, +      245,  245,  248,  248,  595,  596,  249,  249,  249,  249, +      249,  249,  249,  162,  162,  162,  162,  162,  162,  162, -      116,   70,   71,  104,  107,  101,  138,  137,   55,  120, -      139,  108,   70,   71,  105,  117,  121,  122,  118,  126, -      123,  132,  127,  140,  141,  133,  124,  155,  155,  125, -      128,  146,  524,  146,  134,  229,  229,  129,  148,  148, -      148,  148,  148,  148,  148,   55,  193,   55,  518,  216, -      150,  151,  153,  154,  194,  524,  209,  217,  140,  141, -      142,  150,  151,  153,  154,  186,  143,  198,  187,  188, -      144,  210,  189,  199,  190,  145,   67,  517,   69,   69, -       69,   69,   69,   69,   69,  221,  138,  222,   55,  146, -      139,  146,   70,   71,  293,  142,  140,  141,  233,  233, +      162,  162,  162,  162,  162,  162,  162,  245,  245,  245, +      245,  245,  245,  245,  547,  548,  250,  245,  245,  245, +      245,  245,  245,  245,  370,  371,  372,  651,  250,  650, +      332,  332,  649,  157,  333,  333,  333,  333,  333,  333, +      333,  430,  431,  432,  648,  157,  249,  249,  249,  249, +      249,  249,  249,  249,  249,  249,  249,  249,  249,  249, +      333,  333,  333,  333,  333,  333,  333,  605,  606,  160, +      333,  333,  333,  333,  333,  333,  333,  421,  422,  423, +      647,  160,  433,  434,  435,  646,  247,  645,  424,  425, +      436,  437,  438,  474,  475,  476,  547,  548,  247,  496, -      516,  143,  294,   70,   71,  144,  515,  231,  232,  514, -      145,  148,  148,  148,  148,  148,  148,  148,  231,  232, -      156,  156,  156,  156,  156,  156,  156,  524,  524,  243, -      244,  308,  308,  142,  270,  271,  272,  524,  524,  143, -      298,  299,  300,  144,  465,  466,  235,  513,  145,  230, -      230,  230,  230,  230,  230,  230,  151,  235,  234,  234, -      234,  234,  234,  234,  234,  524,  524,  151,  312,  313, -      314,  322,  323,  324,  329,  330,  331,  333,  334,  335, -      341,  342,  343,  512,  154,  309,  309,  309,  309,  309, -      309,  309,  524,  524,  511,  154,  388,  389,  390,  391, +      497,  498,  465,  644,  477,  478,  605,  606,  643,  642, +      499,  500,  641,  521,  506,  507,  507,  507,  507,  507, +      507,  522,  533,  534,  535,  547,  548,  640,  550,  639, +      638,  605,  606,  536,  537,  547,  548,  551,  551,  551, +      551,  551,  551,  551,  547,  548,  637,  549,  549,  549, +      549,  549,  549,  550,  547,  548,  581,  582,  582,  582, +      582,  582,  582,  608,  605,  606,  551,  551,  551,  551, +      551,  551,  551,  636,  635,  634,  609,  609,  609,  609, +      609,  609,  609,  605,  606,  633,  632,  631,  608,  605, +      606,  630,  629,  627,  626,  607,  607,  607,  607,  607, -      392,  393,  394,  395,  396,  457,  458,  459,  465,  466, -      510,  232,  419,  465,  466,  509,  460,  487,  488,  465, -      466,  508,  232,  507,  443,  444,  444,  444,  444,  444, -      444,  482,  465,  466,  492,  493,  492,  493,  506,  468, -      465,  466,  492,  493,  467,  467,  467,  467,  467,  467, -      492,  493,  492,  493,  492,  493,  505,  504,  502,  501, -      500,  499,  468,  498,  497,  495,  494,  494,  494,  494, -      494,  494,  491,  490,  489,  486,  485,  481,  480,  479, -      478,  477,  476,  475,  474,  473,  472,  471,  495,   79, -       79,   79,   79,   79,   79,  149,  149,  149,  149,  149, +      607,  609,  609,  609,  609,  609,  609,  609,   79,   79, +       79,   79,   79,  155,  155,  155,  155,  155,   65,   65, +      158,  158,  163,  163,  163,  243,  243,  625,  243,  243, +      243,  243,  243,  549,  549,  549,  624,  623,  622,  549, +      583,  583,  583,  607,  607,  607,  621,  620,  619,  607, +      628,  628,  628,  618,  617,  616,  615,  614,  613,  612, +      611,  610,  604,  603,  602,  601,  600,  599,  598,  597, +      594,  593,  592,  591,  590,  589,  588,  587,  586,  585, +      584,  580,  579,  578,  577,  576,  575,  574,  573,  572, +      571,  570,  569,  568,  567,  566,  565,  564,  563,  562, -      149,   65,   65,  470,   65,  152,  152,  464,  152,  156, -      156,  156,  157,  157,  157,  157,  228,  228,  463,  228, -      228,  228,  228,  228,  228,  228,  230,  230,  230,  234, -      234,  234,  309,  309,  309,  467,  467,  462,  467,  461, -      456,  455,  454,  467,  469,  469,  453,  469,  469,  483, -      483,  452,  483,  483,  484,  484,  484,  484,  494,  494, -      451,  494,  450,  449,  448,  447,  494,  496,  496,  446, -      496,  496,  503,  503,  503,  503,  445,  442,  441,  440, -      439,  438,  437,  436,  435,  434,  433,  432,  431,  430, -      429,  428,  427,  426,  425,  424,  423,  422,  421,  420, +      561,  560,  559,  558,  557,  556,  555,  554,  553,  552, +      546,  545,  544,  543,  542,  541,  540,  539,  538,  532, +      531,  530,  529,  528,  527,  526,  525,  524,  523,  518, +      517,  516,  515,  514,  513,  512,  511,  510,  509,  508, +      505,  504,  503,  502,  501,  495,  494,  493,  492,  491, +      490,  489,  488,  487,  486,  485,  484,  483,  482,  481, +      480,  479,  473,  472,  471,  470,  469,  468,  467,  466, +      465,  464,  463,  462,  461,  460,  459,  458,  457,  456, +      455,  454,  453,  452,  451,  450,  449,  448,  447,  446, +      445,  444,  443,  442,  441,  440,  439,  429,  428,  427, -      419,  418,  417,  416,  415,  414,  413,  412,  411,  410, -      409,  408,  407,  406,  405,  404,  403,  402,  401,  400, -      399,  398,  397,  387,  386,  385,  384,  383,  382,  381, -      380,  379,  378,  377,  376,  375,  374,  373,  372,  371, -      370,  369,  368,  367,  366,  365,  364,  363,  362,  361, -      360,  359,  358,  357,  356,  355,  354,  353,  352,  351, -      350,  349,  348,  347,  346,  345,  344,  340,  339,  338, -      337,  336,  332,  328,  327,  326,  325,  321,  320,  319, -      318,  317,  316,  315,  311,  310,  307,  306,  305,  304, -      303,  302,  301,  297,  296,  295,  292,  291,  290,  289, +      426,  420,  419,  418,  417,  416,  415,  414,  413,  412, +      411,  410,  409,  408,  407,  406,  405,  404,  403,  402, +      401,  400,  399,  398,  397,  396,  395,  394,  393,  392, +      391,  390,  389,  388,  387,  386,  385,  384,  383,  382, +      381,  380,  379,  378,  377,  376,  375,  374,  373,  369, +      368,  367,  366,  365,  364,  363,  359,  355,  354,  353, +      352,  351,  347,  346,  345,  344,  343,  342,  341,  340, +      336,  335,  334,  331,  330,  329,  328,  327,  326,  325, +      321,  320,  319,  316,  315,  314,  313,  312,  311,  310, +      309,  308,  307,  306,  305,  304,  303,  302,  301,  300, -      288,  287,  286,  285,  284,  283,  282,  281,  280,  279, -      278,  277,  276,  275,  274,  273,  269,  268,  267,  266, -      265,  264,  263,  262,  261,  260,  259,  258,  257,  256, -      255,  254,  253,  252,  251,  250,  249,  248,  247,  246, -      245,  242,  241,  240,  239,  238,  237,  236,  227,  226, -      225,  224,  223,  220,  219,  218,  215,  214,  213,  212, -      211,  208,  207,  206,  205,  204,  203,  202,  201,  200, -      197,  196,  195,  192,  191,  185,  184,  183,  182,  181, -      180,  177,  176,  175,  174,  173,  172,  171,  170,  169, -      168,  167,  166,  165,  164,  163,  162,  161,  160,  159, +      299,  298,  297,  296,  295,  294,  293,  289,  288,  287, +      286,  285,  284,  283,  282,  281,  280,  279,  278,  277, +      276,  275,  274,  273,  272,  271,  270,  269,  268,  267, +      266,  265,  264,  263,  262,  259,  258,  257,  256,  255, +      254,  253,  252,  251,  242,  241,  240,  239,  238,  235, +      234,  233,  230,  229,  228,  227,  226,  225,  224,  221, +      220,  219,  218,  217,  216,  215,  214,  211,  208,  207, +      206,  203,  202,  196,  195,  194,  193,  192,  191,  190, +      189,  184,  183,  182,  181,  180,  179,  178,  177,  174, +      173,  172,  171,  170,  169,  168,  167,  166,  165,  164, -      158,  147,   76,  135,  119,  115,  102,   80,   76,   66, -       60,   57,   56,  524,    5,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524 +      153,   76,  141,  118,  103,   80,   76,   66,   60,   57, +       56,  667,    5,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667      } ; -static yyconst flex_int16_t yy_chk[875] = +static yyconst flex_int16_t yy_chk[1076] =      {   0,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1, -        1,    1,    1,    1,    1,    1,    1,    1,    1,    2, -        7,   11,    7,    2,   13,  522,   14,   15,   15,   15, -       15,   15,   15,   15,   19,   19,   11,   13,   14,  521, -        2,    3,    3,    3,    3,    3,    3,    3,    3,    3, +        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, +        1,    1,    2,    7,   11,    7,    2,   13,   33,   14, +       15,   15,   15,   15,   15,   15,   15,   19,   19,   11, +       13,   14,   33,    2,    3,    3,    3,    3,    3,    3,          3,    3,    3,    3,    3,    3,    3,    3,    3,    3,          3,    3,    3,    3,    3,    3,    3,    3,    3,    3,          3,    3,    3,    3,    3,    3,    3,    3,    3,    3,          3,    3,    3,    3,    3,    3,    3,    3,    3,    3,          3,    3,    3,    3,    3,    3,    3,    3,    3,    3, -       17,  520,   17,   17,   17,   17,   17,   17,   17,   21, -       21,   24,   24,   25,   27,   25,   17,   17,   27,   25, -       26,   17,   33,   27,   26,   35,   99,   17,   17,   27, -       26,   44,   28,   26,   28,   33,   34,   41,   35,   99, -       34,   41,  518,   28,   17,   18,   29,   18,   18,   18, -       18,   18,   18,   18,   29,   31,   29,   32,  516,   29, +        3,    3,    3,    3,    3,    3,   17,   44,   17,   17, +       17,   17,   17,   17,   17,   21,   21,   24,   28,   25, +       28,   25,  665,   17,   17,   25,   26,   35,   17,   28, +       26,   29,   24,   24,   27,   17,   17,   26,   27,   29, +       26,   35,   29,  664,   27,   29,   44,   31,   34,   37, +       27,   29,   34,   17,   18,   31,   18,   18,   18,   18, + +       18,   18,   18,   90,   90,   37,   32,   31,   37,   32, +       38,   18,   18,   32,   32,   49,   40,   49,   39,   40, +       38,   32,   41,   18,   18,   39,   39,   41,   40,   42, +       39,   41,   55,   42,   55,   40,   39,   39,   45,   39, +       45,  663,   45,   42,   46,   46,   52,   52,   52,   52, +       52,   52,   52,   65,   65,   67,   67,   68,  100,  140, +       99,  152,  140,  152,  128,   65,   65,   67,   67,   70, +       70,   99,  100,   70,   70,   70,   70,   70,   70,   70, +      128,  113,   68,   46,  110,  117,  661,  110,  110,  113, +       46,  110,  117,  110,   46,  119,  145,  145,  659,   46, + +       69,  136,   69,   69,   69,   69,   69,   69,   69,  119, +      136,  144,  658,  144,  657,  144,  652,   69,   69,  146, +      146,  154,  154,  154,  154,  154,  154,  154,  651,   69, +       69,  158,  158,  176,  176,  145,  206,  206,  206,  231, +      650,  479,  145,  158,  158,  643,  145,  642,  231,  479, +      641,  145,  235,  235,  235,  255,  255,  255,  146,  265, +      265,  265,  274,  274,  274,  146,  278,  278,  278,  146, +      640,  156,  156,  639,  146,  156,  156,  156,  156,  156, +      156,  156,  159,  159,  572,  572,  159,  159,  159,  159, +      159,  159,  159,  161,  161,  161,  161,  161,  161,  161, -       37,   18,   18,   31,   32,   29,   45,   44,   45,   39, -       45,   32,   18,   18,   31,   37,   39,   39,   37,   40, -       39,   42,   40,   46,   46,   42,   39,   70,   70,   39, -       40,   49,   68,   49,   42,  150,  150,   40,   52,   52, -       52,   52,   52,   52,   52,   55,  110,   55,  515,  130, -       65,   65,   67,   67,  110,   68,  124,  130,  139,  139, -       46,   65,   65,   67,   67,  107,   46,  114,  107,  107, -       46,  124,  107,  114,  107,   46,   69,  514,   69,   69, -       69,   69,   69,   69,   69,  134,  138,  134,  138,  146, -      138,  146,   69,   69,  216,  139,  140,  140,  153,  153, +      162,  162,  162,  162,  162,  162,  162,  244,  244,  244, +      244,  244,  244,  244,  583,  583,  162,  245,  245,  245, +      245,  245,  245,  245,  286,  286,  286,  638,  162,  637, +      246,  246,  636,  245,  246,  246,  246,  246,  246,  246, +      246,  374,  374,  374,  635,  245,  248,  248,  248,  248, +      248,  248,  248,  249,  249,  249,  249,  249,  249,  249, +      332,  332,  332,  332,  332,  332,  332,  605,  605,  249, +      333,  333,  333,  333,  333,  333,  333,  364,  364,  364, +      633,  249,  375,  375,  375,  630,  333,  629,  364,  364, +      376,  376,  376,  420,  420,  420,  506,  506,  333,  459, -      512,  139,  216,   69,   69,  139,  511,  152,  152,  510, -      139,  148,  148,  148,  148,  148,  148,  148,  152,  152, -      155,  155,  155,  155,  155,  155,  155,  156,  156,  168, -      168,  231,  231,  140,  195,  195,  195,  230,  230,  140, -      220,  220,  220,  140,  444,  444,  156,  508,  140,  229, -      229,  229,  229,  229,  229,  229,  230,  156,  233,  233, -      233,  233,  233,  233,  233,  234,  234,  230,  239,  239, -      239,  248,  248,  248,  256,  256,  256,  260,  260,  260, -      266,  266,  266,  507,  234,  308,  308,  308,  308,  308, -      308,  308,  309,  309,  506,  234,  345,  345,  345,  346, +      459,  459,  465,  627,  420,  420,  628,  628,  626,  625, +      459,  459,  623,  480,  465,  465,  465,  465,  465,  465, +      465,  480,  493,  493,  493,  507,  507,  622,  506,  621, +      620,  581,  581,  493,  493,  549,  549,  507,  507,  507, +      507,  507,  507,  507,  547,  547,  619,  549,  549,  549, +      549,  549,  549,  506,  551,  551,  547,  547,  547,  547, +      547,  547,  547,  581,  582,  582,  551,  551,  551,  551, +      551,  551,  551,  618,  616,  615,  582,  582,  582,  582, +      582,  582,  582,  607,  607,  614,  613,  612,  581,  609, +      609,  611,  610,  602,  601,  607,  607,  607,  607,  607, -      346,  346,  347,  347,  347,  435,  435,  435,  443,  443, -      505,  309,  419,  469,  469,  504,  435,  478,  478,  465, -      465,  501,  309,  500,  419,  419,  419,  419,  419,  419, -      419,  465,  467,  467,  482,  482,  483,  483,  499,  443, -      484,  484,  492,  492,  467,  467,  467,  467,  467,  467, -      496,  496,  503,  503,  494,  494,  498,  497,  490,  489, -      488,  487,  443,  486,  485,  482,  494,  494,  494,  494, -      494,  494,  481,  480,  479,  477,  475,  464,  460,  459, -      458,  457,  456,  455,  453,  452,  451,  447,  482,  525, -      525,  525,  525,  525,  525,  526,  526,  526,  526,  526, +      607,  609,  609,  609,  609,  609,  609,  609,  668,  668, +      668,  668,  668,  669,  669,  669,  669,  669,  670,  670, +      671,  671,  672,  672,  672,  673,  673,  600,  673,  673, +      673,  673,  673,  674,  674,  674,  599,  598,  597,  674, +      675,  675,  675,  676,  676,  676,  596,  595,  594,  676, +      677,  677,  677,  593,  592,  591,  590,  589,  588,  586, +      585,  584,  580,  579,  578,  577,  576,  575,  574,  573, +      571,  567,  562,  561,  560,  559,  558,  557,  556,  555, +      554,  546,  543,  542,  540,  539,  537,  536,  535,  534, +      533,  532,  531,  530,  529,  527,  526,  525,  524,  523, -      526,  527,  527,  446,  527,  528,  528,  442,  528,  529, -      529,  529,  530,  530,  530,  530,  531,  531,  441,  531, -      531,  531,  531,  531,  531,  531,  532,  532,  532,  533, -      533,  533,  534,  534,  534,  535,  535,  439,  535,  436, -      434,  433,  432,  535,  536,  536,  431,  536,  536,  537, -      537,  429,  537,  537,  538,  538,  538,  538,  539,  539, -      428,  539,  427,  424,  423,  422,  539,  540,  540,  421, -      540,  540,  541,  541,  541,  541,  420,  418,  417,  416, -      415,  414,  413,  412,  406,  403,  400,  399,  398,  397, -      386,  385,  383,  381,  380,  379,  378,  377,  376,  375, +      522,  521,  520,  519,  518,  517,  515,  514,  510,  509, +      505,  504,  502,  500,  499,  498,  497,  496,  494,  492, +      491,  490,  489,  488,  487,  485,  484,  483,  482,  478, +      477,  476,  475,  474,  473,  470,  469,  468,  467,  466, +      464,  463,  462,  461,  460,  458,  457,  450,  449,  446, +      445,  442,  441,  440,  439,  428,  427,  425,  424,  423, +      422,  421,  418,  416,  415,  414,  412,  411,  409,  408, +      407,  406,  404,  403,  401,  399,  398,  397,  396,  395, +      394,  393,  392,  391,  390,  388,  387,  386,  385,  384, +      383,  382,  381,  380,  379,  378,  377,  373,  369,  368, -      374,  373,  371,  370,  368,  366,  365,  364,  363,  362, -      361,  360,  359,  357,  356,  355,  354,  353,  352,  351, -      350,  349,  348,  344,  340,  339,  336,  325,  321,  320, -      319,  318,  315,  310,  307,  306,  305,  304,  303,  302, -      297,  296,  295,  294,  293,  292,  289,  288,  287,  286, -      285,  284,  283,  282,  281,  280,  279,  278,  277,  276, -      275,  274,  273,  272,  271,  270,  267,  265,  264,  263, -      262,  261,  259,  255,  253,  252,  251,  247,  246,  245, -      244,  243,  242,  241,  238,  236,  227,  226,  225,  224, -      223,  222,  221,  219,  218,  217,  215,  214,  213,  212, +      365,  363,  353,  351,  347,  346,  345,  344,  342,  340, +      335,  334,  331,  330,  329,  328,  327,  326,  321,  320, +      319,  318,  317,  316,  315,  312,  311,  310,  309,  308, +      307,  306,  305,  304,  303,  302,  301,  300,  299,  298, +      297,  296,  295,  294,  293,  292,  291,  290,  287,  285, +      284,  283,  282,  281,  280,  279,  277,  273,  271,  270, +      269,  268,  264,  263,  262,  261,  260,  259,  258,  257, +      254,  252,  251,  242,  241,  240,  239,  238,  237,  236, +      234,  233,  232,  230,  229,  228,  227,  226,  225,  224, +      223,  222,  221,  220,  219,  218,  217,  216,  215,  214, -      211,  210,  209,  208,  207,  206,  205,  204,  203,  202, -      201,  200,  199,  198,  197,  196,  194,  193,  192,  191, -      190,  189,  188,  187,  186,  185,  184,  183,  182,  181, -      179,  178,  177,  176,  175,  174,  173,  172,  171,  170, -      169,  167,  166,  165,  164,  163,  162,  161,  145,  144, -      143,  142,  135,  133,  132,  131,  129,  128,  127,  126, -      125,  123,  122,  121,  120,  119,  118,  117,  116,  115, -      113,  112,  111,  109,  108,  105,  104,  103,  102,  101, -      100,   98,   97,   96,   95,   94,   93,   92,   91,   90, -       89,   88,   87,   86,   85,   84,   83,   82,   81,   78, +      213,  212,  211,  210,  209,  208,  207,  205,  204,  203, +      202,  201,  200,  199,  198,  197,  196,  195,  194,  193, +      192,  191,  190,  188,  187,  186,  185,  184,  183,  182, +      181,  180,  179,  178,  177,  175,  174,  173,  172,  171, +      170,  169,  168,  166,  151,  150,  149,  148,  141,  139, +      138,  137,  135,  134,  133,  132,  131,  130,  129,  127, +      126,  125,  124,  123,  122,  121,  120,  118,  116,  115, +      114,  112,  111,  109,  108,  106,  105,  104,  103,  102, +      101,   98,   97,   96,   95,   94,   93,   92,   91,   89, +       88,   87,   86,   85,   84,   83,   82,   81,   78,   74, -       74,   51,   47,   43,   38,   36,   30,   23,   20,   16, -       12,   10,    9,    5,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524,  524,  524,  524,  524,  524,  524, -      524,  524,  524,  524 +       51,   47,   43,   36,   30,   23,   20,   16,   12,   10, +        9,    5,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667,  667,  667,  667,  667,  667, +      667,  667,  667,  667,  667      } ;  /* The intent behind this definition is that it'll catch @@ -856,7 +935,7 @@ static yyconst flex_int16_t yy_chk[875] =     } while (0) -#line 860 "glsl_lexer.cpp" +#line 939 "glsl_lexer.cpp"  #define INITIAL 0  #define PP 1 @@ -990,12 +1069,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. */ @@ -1003,7 +1077,7 @@ static int input (yyscan_t yyscanner );  /* This used to be an fputs(), but since the string might contain NUL's,   * we now use fwrite().   */ -#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#define ECHO fwrite( yytext, yyleng, 1, yyout )  #endif  /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL, @@ -1014,7 +1088,7 @@ static int input (yyscan_t yyscanner );  	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \  		{ \  		int c = '*'; \ -		size_t n; \ +		int n; \  		for ( n = 0; n < max_size && \  			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \  			buf[n] = (char) c; \ @@ -1105,7 +1179,7 @@ YY_DECL  #line 66 "glsl_lexer.lpp" -#line 1109 "glsl_lexer.cpp" +#line 1183 "glsl_lexer.cpp"      yylval = yylval_param; @@ -1163,13 +1237,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 >= 525 ) +				if ( yy_current_state >= 668 )  					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 != 524 ); +		while ( yy_current_state != 667 );  		yy_cp = yyg->yy_last_accepting_cpos;  		yy_current_state = yyg->yy_last_accepting_state; @@ -1994,9 +2068,160 @@ YY_RULE_SETUP  #line 303 "glsl_lexer.lpp"  TOKEN_OR_IDENTIFIER(120, PRECISION);  	YY_BREAK +/* Additional reserved words in GLSL 1.30. */  case 145:  YY_RULE_SETUP -#line 305 "glsl_lexer.lpp" +#line 306 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, COMMON); +	YY_BREAK +case 146: +YY_RULE_SETUP +#line 307 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, PARTITION); +	YY_BREAK +case 147: +YY_RULE_SETUP +#line 308 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, ACTIVE); +	YY_BREAK +case 148: +YY_RULE_SETUP +#line 309 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, SUPERP); +	YY_BREAK +case 149: +YY_RULE_SETUP +#line 310 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, SAMPLERBUFFER); +	YY_BREAK +case 150: +YY_RULE_SETUP +#line 311 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, FILTER); +	YY_BREAK +case 151: +YY_RULE_SETUP +#line 312 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGE1D); +	YY_BREAK +case 152: +YY_RULE_SETUP +#line 313 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGE2D); +	YY_BREAK +case 153: +YY_RULE_SETUP +#line 314 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGE3D); +	YY_BREAK +case 154: +YY_RULE_SETUP +#line 315 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGECUBE); +	YY_BREAK +case 155: +YY_RULE_SETUP +#line 316 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IIMAGE1D); +	YY_BREAK +case 156: +YY_RULE_SETUP +#line 317 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IIMAGE2D); +	YY_BREAK +case 157: +YY_RULE_SETUP +#line 318 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IIMAGE3D); +	YY_BREAK +case 158: +YY_RULE_SETUP +#line 319 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IIMAGECUBE); +	YY_BREAK +case 159: +YY_RULE_SETUP +#line 320 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, UIMAGE1D); +	YY_BREAK +case 160: +YY_RULE_SETUP +#line 321 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, UIMAGE2D); +	YY_BREAK +case 161: +YY_RULE_SETUP +#line 322 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, UIMAGE3D); +	YY_BREAK +case 162: +YY_RULE_SETUP +#line 323 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, UIMAGECUBE); +	YY_BREAK +case 163: +YY_RULE_SETUP +#line 324 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGE1DARRAY); +	YY_BREAK +case 164: +YY_RULE_SETUP +#line 325 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGE2DARRAY); +	YY_BREAK +case 165: +YY_RULE_SETUP +#line 326 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IIMAGE1DARRAY); +	YY_BREAK +case 166: +YY_RULE_SETUP +#line 327 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IIMAGE2DARRAY); +	YY_BREAK +case 167: +YY_RULE_SETUP +#line 328 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, UIMAGE1DARRAY); +	YY_BREAK +case 168: +YY_RULE_SETUP +#line 329 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, UIMAGE2DARRAY); +	YY_BREAK +case 169: +YY_RULE_SETUP +#line 330 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGE1DSHADOW); +	YY_BREAK +case 170: +YY_RULE_SETUP +#line 331 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGE2DSHADOW); +	YY_BREAK +case 171: +YY_RULE_SETUP +#line 332 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IMAGEBUFFER); +	YY_BREAK +case 172: +YY_RULE_SETUP +#line 333 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, IIMAGEBUFFER); +	YY_BREAK +case 173: +YY_RULE_SETUP +#line 334 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, UIMAGEBUFFER); +	YY_BREAK +case 174: +YY_RULE_SETUP +#line 335 "glsl_lexer.lpp" +TOKEN_OR_IDENTIFIER(130, ROW_MAJOR); +	YY_BREAK +case 175: +YY_RULE_SETUP +#line 337 "glsl_lexer.lpp"  {  			    struct _mesa_glsl_parse_state *state = yyextra;  			    void *ctx = state;	 @@ -2004,17 +2229,17 @@ YY_RULE_SETUP  			    return IDENTIFIER;  			}  	YY_BREAK -case 146: +case 176:  YY_RULE_SETUP -#line 312 "glsl_lexer.lpp" +#line 344 "glsl_lexer.lpp"  { return yytext[0]; }  	YY_BREAK -case 147: +case 177:  YY_RULE_SETUP -#line 314 "glsl_lexer.lpp" +#line 346 "glsl_lexer.lpp"  ECHO;  	YY_BREAK -#line 2018 "glsl_lexer.cpp" +#line 2243 "glsl_lexer.cpp"  case YY_STATE_EOF(INITIAL):  case YY_STATE_EOF(PP):  	yyterminate(); @@ -2311,7 +2536,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 >= 525 ) +			if ( yy_current_state >= 668 )  				yy_c = yy_meta[(unsigned int) yy_c];  			}  		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2340,11 +2565,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 >= 525 ) +		if ( yy_current_state >= 668 )  			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 == 524); +	yy_is_jam = (yy_current_state == 667);  	return yy_is_jam ? 0 : yy_current_state;  } @@ -2749,8 +2974,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.   */ @@ -3156,7 +3381,7 @@ void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)  #define YYTABLES_NAME "yytables" -#line 314 "glsl_lexer.lpp" +#line 346 "glsl_lexer.lpp" diff --git a/src/glsl/glsl_lexer.lpp b/src/glsl/glsl_lexer.lpp index 9fd9b53c5c..b78df5d84f 100644 --- a/src/glsl/glsl_lexer.lpp +++ b/src/glsl/glsl_lexer.lpp @@ -302,6 +302,38 @@ mediump		TOKEN_OR_IDENTIFIER(120, MEDIUMP);  highp		TOKEN_OR_IDENTIFIER(120, HIGHP);  precision	TOKEN_OR_IDENTIFIER(120, PRECISION); +    /* Additional reserved words in GLSL 1.30. */ +common		TOKEN_OR_IDENTIFIER(130, COMMON); +partition	TOKEN_OR_IDENTIFIER(130, PARTITION); +active		TOKEN_OR_IDENTIFIER(130, ACTIVE); +superp		TOKEN_OR_IDENTIFIER(130, SUPERP); +samplerBuffer	TOKEN_OR_IDENTIFIER(130, SAMPLERBUFFER); +filter		TOKEN_OR_IDENTIFIER(130, FILTER); +image1D		TOKEN_OR_IDENTIFIER(130, IMAGE1D); +image2D		TOKEN_OR_IDENTIFIER(130, IMAGE2D); +image3D		TOKEN_OR_IDENTIFIER(130, IMAGE3D); +imageCube	TOKEN_OR_IDENTIFIER(130, IMAGECUBE); +iimage1D	TOKEN_OR_IDENTIFIER(130, IIMAGE1D); +iimage2D	TOKEN_OR_IDENTIFIER(130, IIMAGE2D); +iimage3D	TOKEN_OR_IDENTIFIER(130, IIMAGE3D); +iimageCube	TOKEN_OR_IDENTIFIER(130, IIMAGECUBE); +uimage1D	TOKEN_OR_IDENTIFIER(130, UIMAGE1D); +uimage2D	TOKEN_OR_IDENTIFIER(130, UIMAGE2D); +uimage3D	TOKEN_OR_IDENTIFIER(130, UIMAGE3D); +uimageCube	TOKEN_OR_IDENTIFIER(130, UIMAGECUBE); +image1DArray	TOKEN_OR_IDENTIFIER(130, IMAGE1DARRAY); +image2DArray	TOKEN_OR_IDENTIFIER(130, IMAGE2DARRAY); +iimage1DArray	TOKEN_OR_IDENTIFIER(130, IIMAGE1DARRAY); +iimage2DArray	TOKEN_OR_IDENTIFIER(130, IIMAGE2DARRAY); +uimage1DArray	TOKEN_OR_IDENTIFIER(130, UIMAGE1DARRAY); +uimage2DArray	TOKEN_OR_IDENTIFIER(130, UIMAGE2DARRAY); +image1DShadow	TOKEN_OR_IDENTIFIER(130, IMAGE1DSHADOW); +image2DShadow	TOKEN_OR_IDENTIFIER(130, IMAGE2DSHADOW); +imageBuffer	TOKEN_OR_IDENTIFIER(130, IMAGEBUFFER); +iimageBuffer	TOKEN_OR_IDENTIFIER(130, IIMAGEBUFFER); +uimageBuffer	TOKEN_OR_IDENTIFIER(130, UIMAGEBUFFER); +row_major	TOKEN_OR_IDENTIFIER(130, ROW_MAJOR); +  [_a-zA-Z][_a-zA-Z0-9]*	{  			    struct _mesa_glsl_parse_state *state = yyextra;  			    void *ctx = state;	 diff --git a/src/glsl/glsl_parser.cpp b/src/glsl/glsl_parser.cpp index bf83b81603..4b5e3614df 100644 --- a/src/glsl/glsl_parser.cpp +++ b/src/glsl/glsl_parser.cpp @@ -1,10 +1,9 @@ - -/* A Bison parser, made by GNU Bison 2.4.1.  */ +/* A Bison parser, made by GNU Bison 2.4.2.  */  /* 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-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.2"  /* Skeleton name.  */  #define YYSKELETON_NAME "yacc.c" @@ -114,7 +113,7 @@  /* Line 189 of yacc.c  */ -#line 118 "glsl_parser.cpp" +#line 117 "glsl_parser.cpp"  /* Enabling traces.  */  #ifndef YYDEBUG @@ -248,56 +247,86 @@       LOWP = 362,       MEDIUMP = 363,       HIGHP = 364, -     PRECISION = 365, -     VERSION = 366, -     EXTENSION = 367, -     LINE = 368, -     PRAGMA = 369, -     COLON = 370, -     EOL = 371, -     INTERFACE = 372, -     OUTPUT = 373, -     LAYOUT_TOK = 374, -     ASM = 375, -     CLASS = 376, -     UNION = 377, -     ENUM = 378, -     TYPEDEF = 379, -     TEMPLATE = 380, -     THIS = 381, -     PACKED = 382, -     GOTO = 383, -     INLINE_TOK = 384, -     NOINLINE = 385, -     VOLATILE = 386, -     PUBLIC_TOK = 387, -     STATIC = 388, -     EXTERN = 389, -     EXTERNAL = 390, -     LONG = 391, -     SHORT = 392, -     DOUBLE = 393, -     HALF = 394, -     FIXED = 395, -     UNSIGNED = 396, -     INPUT = 397, -     OUPTUT = 398, -     HVEC2 = 399, -     HVEC3 = 400, -     HVEC4 = 401, -     DVEC2 = 402, -     DVEC3 = 403, -     DVEC4 = 404, -     FVEC2 = 405, -     FVEC3 = 406, -     FVEC4 = 407, -     SAMPLER2DRECT = 408, -     SAMPLER3DRECT = 409, -     SAMPLER2DRECTSHADOW = 410, -     SIZEOF = 411, -     CAST = 412, -     NAMESPACE = 413, -     USING = 414 +     SUPERP = 365, +     PRECISION = 366, +     VERSION = 367, +     EXTENSION = 368, +     LINE = 369, +     PRAGMA = 370, +     COLON = 371, +     EOL = 372, +     INTERFACE = 373, +     OUTPUT = 374, +     LAYOUT_TOK = 375, +     ASM = 376, +     CLASS = 377, +     UNION = 378, +     ENUM = 379, +     TYPEDEF = 380, +     TEMPLATE = 381, +     THIS = 382, +     PACKED = 383, +     GOTO = 384, +     INLINE_TOK = 385, +     NOINLINE = 386, +     VOLATILE = 387, +     PUBLIC_TOK = 388, +     STATIC = 389, +     EXTERN = 390, +     EXTERNAL = 391, +     LONG = 392, +     SHORT = 393, +     DOUBLE = 394, +     HALF = 395, +     FIXED = 396, +     UNSIGNED = 397, +     INPUT = 398, +     OUPTUT = 399, +     HVEC2 = 400, +     HVEC3 = 401, +     HVEC4 = 402, +     DVEC2 = 403, +     DVEC3 = 404, +     DVEC4 = 405, +     FVEC2 = 406, +     FVEC3 = 407, +     FVEC4 = 408, +     SAMPLER2DRECT = 409, +     SAMPLER3DRECT = 410, +     SAMPLER2DRECTSHADOW = 411, +     SIZEOF = 412, +     CAST = 413, +     NAMESPACE = 414, +     USING = 415, +     COMMON = 416, +     PARTITION = 417, +     ACTIVE = 418, +     SAMPLERBUFFER = 419, +     FILTER = 420, +     IMAGE1D = 421, +     IMAGE2D = 422, +     IMAGE3D = 423, +     IMAGECUBE = 424, +     IMAGE1DARRAY = 425, +     IMAGE2DARRAY = 426, +     IIMAGE1D = 427, +     IIMAGE2D = 428, +     IIMAGE3D = 429, +     IIMAGECUBE = 430, +     IIMAGE1DARRAY = 431, +     IIMAGE2DARRAY = 432, +     UIMAGE1D = 433, +     UIMAGE2D = 434, +     UIMAGE3D = 435, +     UIMAGECUBE = 436, +     UIMAGE1DARRAY = 437, +     UIMAGE2DARRAY = 438, +     IMAGE1DSHADOW = 439, +     IMAGE2DSHADOW = 440, +     IMAGEBUFFER = 441, +     IIMAGEBUFFER = 442, +     UIMAGEBUFFER = 443, +     ROW_MAJOR = 444     };  #endif @@ -339,7 +368,7 @@ typedef union YYSTYPE  /* Line 214 of yacc.c  */ -#line 343 "glsl_parser.cpp" +#line 372 "glsl_parser.cpp"  } YYSTYPE;  # define YYSTYPE_IS_TRIVIAL 1  # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -364,7 +393,7 @@ typedef struct YYLTYPE  /* Line 264 of yacc.c  */ -#line 368 "glsl_parser.cpp" +#line 397 "glsl_parser.cpp"  #ifdef short  # undef short @@ -414,7 +443,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) @@ -581,10 +610,10 @@ union yyalloc  /* YYFINAL -- State number of the termination state.  */  #define YYFINAL  5  /* YYLAST -- Last index in YYTABLE.  */ -#define YYLAST   3839 +#define YYLAST   4373  /* YYNTOKENS -- Number of terminals.  */ -#define YYNTOKENS  184 +#define YYNTOKENS  214  /* YYNNTS -- Number of nonterminals.  */  #define YYNNTS  89  /* YYNRULES -- Number of rules.  */ @@ -594,7 +623,7 @@ union yyalloc  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  #define YYUNDEFTOK  2 -#define YYMAXUTOK   414 +#define YYMAXUTOK   444  #define YYTRANSLATE(YYX)						\    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -605,16 +634,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,   168,     2,     2,     2,   172,   175,     2, -     160,   161,   170,   166,   165,   167,   164,   171,     2,     2, -       2,     2,     2,     2,     2,     2,     2,     2,   179,   181, -     173,   180,   174,   178,     2,     2,     2,     2,     2,     2, +       2,     2,     2,   198,     2,     2,     2,   202,   205,     2, +     190,   191,   200,   196,   195,   197,   194,   201,     2,     2, +       2,     2,     2,     2,     2,     2,     2,     2,   209,   211, +     203,   210,   204,   208,     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,   162,     2,   163,   176,     2,     2,     2,     2,     2, +       2,   192,     2,   193,   206,     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,   182,   177,   183,   169,     2,     2,     2, +       2,     2,     2,   212,   207,   213,   199,     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, @@ -643,7 +672,10 @@ static const yytype_uint8 yytranslate[] =       125,   126,   127,   128,   129,   130,   131,   132,   133,   134,       135,   136,   137,   138,   139,   140,   141,   142,   143,   144,       145,   146,   147,   148,   149,   150,   151,   152,   153,   154, -     155,   156,   157,   158,   159 +     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  };  #if YYDEBUG @@ -684,119 +716,119 @@ static const yytype_uint16 yyprhs[] =  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */  static const yytype_int16 yyrhs[] =  { -     185,     0,    -1,    -1,   187,   188,   186,   190,    -1,    -1, -     111,    81,   116,    -1,    -1,   188,   189,    -1,   112,    79, -     115,    79,   116,    -1,   271,    -1,   190,   271,    -1,    79, -      -1,   191,    -1,    81,    -1,    82,    -1,    80,    -1,    83, -      -1,   160,   218,   161,    -1,   192,    -1,   193,   162,   194, -     163,    -1,   195,    -1,   193,   164,    79,    -1,   193,    87, -      -1,   193,    88,    -1,   218,    -1,   196,    -1,   197,    -1, -     193,   164,   197,    -1,   199,   161,    -1,   198,   161,    -1, -     200,    77,    -1,   200,    -1,   200,   216,    -1,   199,   165, -     216,    -1,   201,   160,    -1,   240,    -1,    79,    -1,    84, -      -1,   193,    -1,    87,   202,    -1,    88,   202,    -1,   203, -     202,    -1,   166,    -1,   167,    -1,   168,    -1,   169,    -1, -     202,    -1,   204,   170,   202,    -1,   204,   171,   202,    -1, -     204,   172,   202,    -1,   204,    -1,   205,   166,   204,    -1, -     205,   167,   204,    -1,   205,    -1,   206,    85,   205,    -1, -     206,    86,   205,    -1,   206,    -1,   207,   173,   206,    -1, -     207,   174,   206,    -1,   207,    89,   206,    -1,   207,    90, -     206,    -1,   207,    -1,   208,    91,   207,    -1,   208,    92, -     207,    -1,   208,    -1,   209,   175,   208,    -1,   209,    -1, -     210,   176,   209,    -1,   210,    -1,   211,   177,   210,    -1, -     211,    -1,   212,    93,   211,    -1,   212,    -1,   213,    95, -     212,    -1,   213,    -1,   214,    94,   213,    -1,   214,    -1, -     214,   178,   218,   179,   216,    -1,   215,    -1,   202,   217, -     216,    -1,   180,    -1,    96,    -1,    97,    -1,    99,    -1, +     215,     0,    -1,    -1,   217,   218,   216,   220,    -1,    -1, +     112,    81,   117,    -1,    -1,   218,   219,    -1,   113,    79, +     116,    79,   117,    -1,   301,    -1,   220,   301,    -1,    79, +      -1,   221,    -1,    81,    -1,    82,    -1,    80,    -1,    83, +      -1,   190,   248,   191,    -1,   222,    -1,   223,   192,   224, +     193,    -1,   225,    -1,   223,   194,    79,    -1,   223,    87, +      -1,   223,    88,    -1,   248,    -1,   226,    -1,   227,    -1, +     223,   194,   227,    -1,   229,   191,    -1,   228,   191,    -1, +     230,    77,    -1,   230,    -1,   230,   246,    -1,   229,   195, +     246,    -1,   231,   190,    -1,   270,    -1,    79,    -1,    84, +      -1,   223,    -1,    87,   232,    -1,    88,   232,    -1,   233, +     232,    -1,   196,    -1,   197,    -1,   198,    -1,   199,    -1, +     232,    -1,   234,   200,   232,    -1,   234,   201,   232,    -1, +     234,   202,   232,    -1,   234,    -1,   235,   196,   234,    -1, +     235,   197,   234,    -1,   235,    -1,   236,    85,   235,    -1, +     236,    86,   235,    -1,   236,    -1,   237,   203,   236,    -1, +     237,   204,   236,    -1,   237,    89,   236,    -1,   237,    90, +     236,    -1,   237,    -1,   238,    91,   237,    -1,   238,    92, +     237,    -1,   238,    -1,   239,   205,   238,    -1,   239,    -1, +     240,   206,   239,    -1,   240,    -1,   241,   207,   240,    -1, +     241,    -1,   242,    93,   241,    -1,   242,    -1,   243,    95, +     242,    -1,   243,    -1,   244,    94,   243,    -1,   244,    -1, +     244,   208,   248,   209,   246,    -1,   245,    -1,   232,   247, +     246,    -1,   210,    -1,    96,    -1,    97,    -1,    99,    -1,        98,    -1,   105,    -1,   100,    -1,   101,    -1,   102,    -1, -     103,    -1,   104,    -1,   216,    -1,   218,   165,   216,    -1, -     215,    -1,   221,   181,    -1,   229,   181,    -1,   110,   244, -     241,   181,    -1,   222,   161,    -1,   224,    -1,   223,    -1, -     224,   226,    -1,   223,   165,   226,    -1,   231,    79,   160, -      -1,   240,    79,    -1,   240,    79,   162,   219,   163,    -1, -     237,   227,   225,    -1,   227,   225,    -1,   237,   227,   228, -      -1,   227,   228,    -1,    -1,    36,    -1,    37,    -1,    38, -      -1,   240,    -1,   230,    -1,   229,   165,    79,    -1,   229, -     165,    79,   162,   163,    -1,   229,   165,    79,   162,   219, -     163,    -1,   229,   165,    79,   162,   163,   180,   250,    -1, -     229,   165,    79,   162,   219,   163,   180,   250,    -1,   229, -     165,    79,   180,   250,    -1,   231,    -1,   231,    79,    -1, -     231,    79,   162,   163,    -1,   231,    79,   162,   219,   163, -      -1,   231,    79,   162,   163,   180,   250,    -1,   231,    79, -     162,   219,   163,   180,   250,    -1,   231,    79,   180,   250, -      -1,   106,    79,    -1,   240,    -1,   238,   240,    -1,    -1, -     233,    -1,   119,   160,   234,   161,    -1,   235,    -1,   234, -     165,   235,    -1,    79,    -1,    43,    -1,    42,    -1,    41, -      -1,     4,    -1,   239,    -1,   236,   238,    -1,   106,   238, -      -1,     4,    -1,     3,    -1,   232,    40,    -1,    35,    40, -      -1,   232,    36,    -1,    37,    -1,    35,    36,    -1,    35, -      37,    -1,    39,    -1,   241,    -1,   244,   241,    -1,   242, -      -1,   242,   162,   163,    -1,   242,   162,   219,   163,    -1, -     243,    -1,   245,    -1,    79,    -1,    77,    -1,     6,    -1, +     103,    -1,   104,    -1,   246,    -1,   248,   195,   246,    -1, +     245,    -1,   251,   211,    -1,   259,   211,    -1,   111,   274, +     271,   211,    -1,   252,   191,    -1,   254,    -1,   253,    -1, +     254,   256,    -1,   253,   195,   256,    -1,   261,    79,   190, +      -1,   270,    79,    -1,   270,    79,   192,   249,   193,    -1, +     267,   257,   255,    -1,   257,   255,    -1,   267,   257,   258, +      -1,   257,   258,    -1,    -1,    36,    -1,    37,    -1,    38, +      -1,   270,    -1,   260,    -1,   259,   195,    79,    -1,   259, +     195,    79,   192,   193,    -1,   259,   195,    79,   192,   249, +     193,    -1,   259,   195,    79,   192,   193,   210,   280,    -1, +     259,   195,    79,   192,   249,   193,   210,   280,    -1,   259, +     195,    79,   210,   280,    -1,   261,    -1,   261,    79,    -1, +     261,    79,   192,   193,    -1,   261,    79,   192,   249,   193, +      -1,   261,    79,   192,   193,   210,   280,    -1,   261,    79, +     192,   249,   193,   210,   280,    -1,   261,    79,   210,   280, +      -1,   106,    79,    -1,   270,    -1,   268,   270,    -1,    -1, +     263,    -1,   120,   190,   264,   191,    -1,   265,    -1,   264, +     195,   265,    -1,    79,    -1,    43,    -1,    42,    -1,    41, +      -1,     4,    -1,   269,    -1,   266,   268,    -1,   106,   268, +      -1,     4,    -1,     3,    -1,   262,    40,    -1,    35,    40, +      -1,   262,    36,    -1,    37,    -1,    35,    36,    -1,    35, +      37,    -1,    39,    -1,   271,    -1,   274,   271,    -1,   272, +      -1,   272,   192,   193,    -1,   272,   192,   249,   193,    -1, +     273,    -1,   275,    -1,    79,    -1,    77,    -1,     6,    -1,         7,    -1,     8,    -1,     5,    -1,    29,    -1,    30,    -1,        31,    -1,    20,    -1,    21,    -1,    22,    -1,    23,    -1,        24,    -1,    25,    -1,    26,    -1,    27,    -1,    28,    -1,        32,    -1,    33,    -1,    34,    -1,    44,    -1,    45,    -1,        46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1, -      51,    -1,    52,    -1,    53,    -1,    54,    -1,   153,    -1, -      55,    -1,    56,    -1,    57,    -1,    58,    -1,   155,    -1, +      51,    -1,    52,    -1,    53,    -1,    54,    -1,   154,    -1, +      55,    -1,    56,    -1,    57,    -1,    58,    -1,   156,    -1,        59,    -1,    60,    -1,    61,    -1,    62,    -1,    63,    -1,        64,    -1,    65,    -1,    66,    -1,    67,    -1,    68,    -1,        69,    -1,    70,    -1,    71,    -1,    72,    -1,    73,    -1,        74,    -1,    75,    -1,   109,    -1,   108,    -1,   107,    -1, -      76,    79,   182,   246,   183,    -1,    76,   182,   246,   183, -      -1,   247,    -1,   246,   247,    -1,   240,   248,   181,    -1, -     249,    -1,   248,   165,   249,    -1,    79,    -1,    79,   162, -     219,   163,    -1,   216,    -1,   220,    -1,   253,    -1,   254, -      -1,   256,    -1,   255,    -1,   262,    -1,   251,    -1,   260, -      -1,   261,    -1,   264,    -1,   265,    -1,   266,    -1,   270, -      -1,   182,   183,    -1,   182,   259,   183,    -1,   258,    -1, -     255,    -1,   182,   183,    -1,   182,   259,   183,    -1,   252, -      -1,   259,   252,    -1,   181,    -1,   218,   181,    -1,    14, -     160,   218,   161,   253,    12,   253,    -1,    14,   160,   218, -     161,   253,    -1,    14,   160,   218,   161,   254,    -1,    14, -     160,   218,   161,   253,    12,   254,    -1,   218,    -1,   231, -      79,   180,   250,    -1,    17,   160,   218,   161,   256,    -1, -      18,   218,   179,    -1,    19,   179,    -1,    78,   160,   263, -     161,   257,    -1,    11,   252,    78,   160,   218,   161,   181, -      -1,    13,   160,   267,   269,   161,   257,    -1,   260,    -1, -     251,    -1,   263,    -1,    -1,   268,   181,    -1,   268,   181, -     218,    -1,    10,   181,    -1,     9,   181,    -1,    16,   181, -      -1,    16,   218,   181,    -1,    15,   181,    -1,   272,    -1, -     220,    -1,   221,   258,    -1 +      76,    79,   212,   276,   213,    -1,    76,   212,   276,   213, +      -1,   277,    -1,   276,   277,    -1,   270,   278,   211,    -1, +     279,    -1,   278,   195,   279,    -1,    79,    -1,    79,   192, +     249,   193,    -1,   246,    -1,   250,    -1,   283,    -1,   284, +      -1,   286,    -1,   285,    -1,   292,    -1,   281,    -1,   290, +      -1,   291,    -1,   294,    -1,   295,    -1,   296,    -1,   300, +      -1,   212,   213,    -1,   212,   289,   213,    -1,   288,    -1, +     285,    -1,   212,   213,    -1,   212,   289,   213,    -1,   282, +      -1,   289,   282,    -1,   211,    -1,   248,   211,    -1,    14, +     190,   248,   191,   283,    12,   283,    -1,    14,   190,   248, +     191,   283,    -1,    14,   190,   248,   191,   284,    -1,    14, +     190,   248,   191,   283,    12,   284,    -1,   248,    -1,   261, +      79,   210,   280,    -1,    17,   190,   248,   191,   286,    -1, +      18,   248,   209,    -1,    19,   209,    -1,    78,   190,   293, +     191,   287,    -1,    11,   282,    78,   190,   248,   191,   211, +      -1,    13,   190,   297,   299,   191,   287,    -1,   290,    -1, +     281,    -1,   293,    -1,    -1,   298,   211,    -1,   298,   211, +     248,    -1,    10,   211,    -1,     9,   211,    -1,    16,   211, +      -1,    16,   248,   211,    -1,    15,   211,    -1,   302,    -1, +     250,    -1,   251,   288,    -1  };  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  static const yytype_uint16 yyrline[] =  { -       0,   193,   193,   192,   201,   204,   221,   223,   227,   236, -     244,   255,   259,   266,   273,   280,   287,   294,   301,   302, -     308,   312,   319,   325,   334,   338,   342,   343,   352,   353, -     357,   358,   362,   368,   380,   384,   390,   397,   408,   409, -     415,   421,   431,   432,   433,   434,   438,   439,   445,   451, -     460,   461,   467,   476,   477,   483,   492,   493,   499,   505, -     511,   520,   521,   527,   536,   537,   546,   547,   556,   557, -     566,   567,   576,   577,   586,   587,   596,   597,   606,   607, -     616,   617,   618,   619,   620,   621,   622,   623,   624,   625, -     626,   630,   634,   650,   654,   658,   662,   676,   680,   681, -     685,   690,   698,   709,   719,   734,   741,   746,   757,   769, -     770,   771,   772,   776,   780,   781,   790,   799,   808,   817, -     826,   839,   850,   859,   868,   877,   886,   895,   904,   918, -     925,   936,   937,   941,   948,   949,   956,   990,   991,   992, -     996,  1000,  1001,  1005,  1013,  1014,  1015,  1016,  1017,  1018, -    1019,  1020,  1021,  1025,  1026,  1034,  1035,  1041,  1050,  1056, -    1062,  1071,  1072,  1073,  1074,  1075,  1076,  1077,  1078,  1079, -    1080,  1081,  1082,  1083,  1084,  1085,  1086,  1087,  1088,  1089, -    1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,  1098,  1099, -    1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,  1108,  1109, -    1110,  1111,  1112,  1113,  1114,  1115,  1116,  1117,  1118,  1119, -    1120,  1121,  1122,  1123,  1124,  1128,  1139,  1150,  1164,  1170, -    1179,  1184,  1192,  1207,  1212,  1220,  1226,  1235,  1239,  1245, -    1246,  1250,  1251,  1255,  1259,  1260,  1261,  1262,  1263,  1264, -    1265,  1269,  1275,  1284,  1285,  1289,  1295,  1304,  1314,  1326, -    1332,  1341,  1350,  1356,  1362,  1371,  1375,  1389,  1393,  1394, -    1398,  1405,  1412,  1422,  1423,  1427,  1429,  1435,  1440,  1449, -    1455,  1461,  1467,  1473,  1482,  1483,  1487 +       0,   200,   200,   199,   208,   211,   228,   230,   234,   243, +     251,   262,   266,   273,   280,   287,   294,   301,   308,   309, +     315,   319,   326,   332,   341,   345,   349,   350,   359,   360, +     364,   365,   369,   375,   387,   391,   397,   404,   415,   416, +     422,   428,   438,   439,   440,   441,   445,   446,   452,   458, +     467,   468,   474,   483,   484,   490,   499,   500,   506,   512, +     518,   527,   528,   534,   543,   544,   553,   554,   563,   564, +     573,   574,   583,   584,   593,   594,   603,   604,   613,   614, +     623,   624,   625,   626,   627,   628,   629,   630,   631,   632, +     633,   637,   641,   657,   661,   665,   669,   683,   687,   688, +     692,   697,   705,   716,   726,   741,   748,   753,   764,   776, +     777,   778,   779,   783,   787,   788,   797,   806,   815,   824, +     833,   846,   857,   866,   875,   884,   893,   902,   911,   925, +     932,   943,   944,   948,   955,   956,   963,   997,   998,   999, +    1003,  1007,  1008,  1012,  1020,  1021,  1022,  1023,  1024,  1025, +    1026,  1027,  1028,  1032,  1033,  1041,  1042,  1048,  1057,  1063, +    1069,  1078,  1079,  1080,  1081,  1082,  1083,  1084,  1085,  1086, +    1087,  1088,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096, +    1097,  1098,  1099,  1100,  1101,  1102,  1103,  1104,  1105,  1106, +    1107,  1108,  1109,  1110,  1111,  1112,  1113,  1114,  1115,  1116, +    1117,  1118,  1119,  1120,  1121,  1122,  1123,  1124,  1125,  1126, +    1127,  1128,  1129,  1130,  1131,  1135,  1146,  1157,  1171,  1177, +    1186,  1191,  1199,  1214,  1219,  1227,  1233,  1242,  1246,  1252, +    1253,  1257,  1258,  1262,  1266,  1267,  1268,  1269,  1270,  1271, +    1272,  1276,  1282,  1291,  1292,  1296,  1302,  1311,  1321,  1333, +    1339,  1348,  1357,  1363,  1369,  1378,  1382,  1396,  1400,  1401, +    1405,  1412,  1419,  1429,  1430,  1434,  1436,  1442,  1447,  1456, +    1462,  1468,  1474,  1480,  1489,  1490,  1494  };  #endif @@ -824,18 +856,25 @@ static const char *const yytname[] =    "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",    "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",    "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", -  "LOWP", "MEDIUMP", "HIGHP", "PRECISION", "VERSION", "EXTENSION", "LINE", -  "PRAGMA", "COLON", "EOL", "INTERFACE", "OUTPUT", "LAYOUT_TOK", "ASM", -  "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", "THIS", "PACKED", -  "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", -  "EXTERN", "EXTERNAL", "LONG", "SHORT", "DOUBLE", "HALF", "FIXED", -  "UNSIGNED", "INPUT", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", -  "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER2DRECT", -  "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF", "CAST", "NAMESPACE", -  "USING", "'('", "')'", "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", -  "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", -  "':'", "'='", "';'", "'{'", "'}'", "$accept", "translation_unit", "$@1", -  "version_statement", "extension_statement_list", "extension_statement", +  "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION", +  "EXTENSION", "LINE", "PRAGMA", "COLON", "EOL", "INTERFACE", "OUTPUT", +  "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", +  "THIS", "PACKED", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE", +  "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG", "SHORT", "DOUBLE", +  "HALF", "FIXED", "UNSIGNED", "INPUT", "OUPTUT", "HVEC2", "HVEC3", +  "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4", +  "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF", +  "CAST", "NAMESPACE", "USING", "COMMON", "PARTITION", "ACTIVE", +  "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", +  "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", +  "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", +  "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", +  "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", +  "UIMAGEBUFFER", "ROW_MAJOR", "'('", "')'", "'['", "']'", "'.'", "','", +  "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", +  "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept", +  "translation_unit", "$@1", "version_statement", +  "extension_statement_list", "extension_statement",    "external_declaration_list", "variable_identifier", "primary_expression",    "postfix_expression", "integer_expression", "function_call",    "function_call_or_method", "function_call_generic", @@ -892,6 +931,9 @@ static const yytype_uint16 yytoknum[] =       385,   386,   387,   388,   389,   390,   391,   392,   393,   394,       395,   396,   397,   398,   399,   400,   401,   402,   403,   404,       405,   406,   407,   408,   409,   410,   411,   412,   413,   414, +     415,   416,   417,   418,   419,   420,   421,   422,   423,   424, +     425,   426,   427,   428,   429,   430,   431,   432,   433,   434, +     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,        40,    41,    91,    93,    46,    44,    43,    45,    33,   126,        42,    47,    37,    60,    62,    38,    94,   124,    63,    58,        61,    59,   123,   125 @@ -901,34 +943,34 @@ static const yytype_uint16 yytoknum[] =  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  static const yytype_uint16 yyr1[] =  { -       0,   184,   186,   185,   187,   187,   188,   188,   189,   190, -     190,   191,   192,   192,   192,   192,   192,   192,   193,   193, -     193,   193,   193,   193,   194,   195,   196,   196,   197,   197, -     198,   198,   199,   199,   200,   201,   201,   201,   202,   202, -     202,   202,   203,   203,   203,   203,   204,   204,   204,   204, -     205,   205,   205,   206,   206,   206,   207,   207,   207,   207, -     207,   208,   208,   208,   209,   209,   210,   210,   211,   211, -     212,   212,   213,   213,   214,   214,   215,   215,   216,   216, -     217,   217,   217,   217,   217,   217,   217,   217,   217,   217, -     217,   218,   218,   219,   220,   220,   220,   221,   222,   222, -     223,   223,   224,   225,   225,   226,   226,   226,   226,   227, -     227,   227,   227,   228,   229,   229,   229,   229,   229,   229, -     229,   230,   230,   230,   230,   230,   230,   230,   230,   231, -     231,   232,   232,   233,   234,   234,   235,   236,   236,   236, -     237,   238,   238,   238,   239,   239,   239,   239,   239,   239, -     239,   239,   239,   240,   240,   241,   241,   241,   242,   242, -     242,   243,   243,   243,   243,   243,   243,   243,   243,   243, -     243,   243,   243,   243,   243,   243,   243,   243,   243,   243, -     243,   243,   243,   243,   243,   243,   243,   243,   243,   243, -     243,   243,   243,   243,   243,   243,   243,   243,   243,   243, -     243,   243,   243,   243,   243,   243,   243,   243,   243,   243, -     243,   243,   243,   243,   243,   244,   244,   244,   245,   245, -     246,   246,   247,   248,   248,   249,   249,   250,   251,   252, -     252,   253,   253,   254,   255,   255,   255,   255,   255,   255, -     255,   256,   256,   257,   257,   258,   258,   259,   259,   260, -     260,   261,   262,   262,   262,   263,   263,   264,   265,   265, -     266,   266,   266,   267,   267,   268,   268,   269,   269,   270, -     270,   270,   270,   270,   271,   271,   272 +       0,   214,   216,   215,   217,   217,   218,   218,   219,   220, +     220,   221,   222,   222,   222,   222,   222,   222,   223,   223, +     223,   223,   223,   223,   224,   225,   226,   226,   227,   227, +     228,   228,   229,   229,   230,   231,   231,   231,   232,   232, +     232,   232,   233,   233,   233,   233,   234,   234,   234,   234, +     235,   235,   235,   236,   236,   236,   237,   237,   237,   237, +     237,   238,   238,   238,   239,   239,   240,   240,   241,   241, +     242,   242,   243,   243,   244,   244,   245,   245,   246,   246, +     247,   247,   247,   247,   247,   247,   247,   247,   247,   247, +     247,   248,   248,   249,   250,   250,   250,   251,   252,   252, +     253,   253,   254,   255,   255,   256,   256,   256,   256,   257, +     257,   257,   257,   258,   259,   259,   259,   259,   259,   259, +     259,   260,   260,   260,   260,   260,   260,   260,   260,   261, +     261,   262,   262,   263,   264,   264,   265,   266,   266,   266, +     267,   268,   268,   268,   269,   269,   269,   269,   269,   269, +     269,   269,   269,   270,   270,   271,   271,   271,   272,   272, +     272,   273,   273,   273,   273,   273,   273,   273,   273,   273, +     273,   273,   273,   273,   273,   273,   273,   273,   273,   273, +     273,   273,   273,   273,   273,   273,   273,   273,   273,   273, +     273,   273,   273,   273,   273,   273,   273,   273,   273,   273, +     273,   273,   273,   273,   273,   273,   273,   273,   273,   273, +     273,   273,   273,   273,   273,   274,   274,   274,   275,   275, +     276,   276,   277,   278,   278,   279,   279,   280,   281,   282, +     282,   283,   283,   284,   285,   285,   285,   285,   285,   285, +     285,   286,   286,   287,   287,   288,   288,   289,   289,   290, +     290,   291,   292,   292,   292,   293,   293,   294,   295,   295, +     296,   296,   296,   297,   297,   298,   298,   299,   299,   300, +     300,   300,   300,   300,   301,   301,   302  };  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ @@ -1029,65 +1071,65 @@ static const yytype_int16 yydefgoto[] =  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing     STATE-NUM.  */ -#define YYPACT_NINF -353 +#define YYPACT_NINF -351  static const yytype_int16 yypact[] =  { -     -96,   -61,    22,  -353,   -89,  -353,   -75,  -353,   -25,  3345, -    -353,   -48,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353, -    -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353, -    -353,  -353,  -353,   106,  -353,  -353,  -353,  -353,  -353,  -353, -    -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353, -    -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353, -    -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353, -    -353,   -78,  -353,  -353,     3,  -353,  -353,  -353,    63,   -80, -    -353,  -353,  3228,  -353,   -55,   -92,   -54,    -2,  -133,  -353, -      -5,    50,  -353,    14,  3572,  -353,  -353,  -353,   -56,  -353, -    3684,  -353,  -353,  -353,    34,  -353,  -353,  -353,   -44,  3572, -    -353,    14,  -353,  3684,    62,  -353,  -353,   273,  -353,  -353, -      87,  -353,  -353,  -353,  -353,  -353,  3572,   176,    85,  -353, -    -137,  -353,  -353,  -353,  -353,  2454,  -353,    33,  3572,    89, -    1856,  -353,   -15,  -353,   -33,  -353,    28,    42,   997,    43, -      64,    44,  2136,    66,  2907,    48,    69,   -68,  -353,  -353, -    -353,  -353,  -353,  2907,  2907,  2907,  -353,  -353,  -353,  -353, -    -353,   454,  -353,  -353,  -353,   -59,  -353,  -353,  -353,    13, -     -17,  3058,    71,   270,  2907,    49,   -31,    70,   -76,   103, -      57,    60,    61,   144,   145,   -85,  -353,  -353,  -104,  -353, -      58,    83,  -353,  -353,  -353,  -353,  -353,  -353,   635,  -353, -    -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,   165, -    3572,  -102,  -353,  2605,  2907,  -353,  -353,  -353,    82,  -353, -    -353,  1996,    84,  -100,  -353,  -353,  -353,  -353,  -353,    62, -    -353,  -353,   172,  1524,  2907,  -353,  -353,   -94,  2907,   -90, -    -353,  2303,  -353,  -353,   -14,  -353,   816,  -353,  -353,  2907, -    3460,  -353,  -353,  2907,    90,  -353,  -353,  -353,  -353,  -353, -    -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  2907,  -353, -    2907,  2907,  2907,  2907,  2907,  2907,  2907,  2907,  2907,  2907, -    2907,  2907,  2907,  2907,  2907,  2907,  2907,  2907,  2907,  2907, -    2907,  -353,  -353,  -353,    91,  -353,  -353,  2756,  2907,    72, -      93,  -353,  -353,  -353,  -353,  2907,    89,  -353,  -353,    97, -    -353,  -353,  1691,    -7,  -353,    -4,  -353,    94,   179,    99, -    -353,  -353,    98,    94,   102,  -353,  -353,  -353,  -353,  -353, -    -353,    49,    49,   -31,   -31,    70,    70,    70,    70,   -76, -     -76,   103,    57,    60,    61,   144,   145,   -58,  -353,  2907, -      86,   100,  -353,  2907,    88,   101,  -353,  2907,  -353,    92, -     104,   997,   127,    95,  1177,  -353,  2907,   107,  2907,   105, -    -353,  2907,  -353,     2,  2907,  1177,   255,  -353,  -353,  2907, -     109,  -353,  -353,  -353,  -353,  -353,  -353,  2907,  -353,   130, -      94,  -353,   997,  -353,  2907,  -353,  -353,  -353,  -353,     4, -    1357,   259,  1357 +     -85,   -52,    36,  -351,   -60,  -351,   -30,  -351,   -31,  3875, +    -351,   -27,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351, +    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351, +    -351,  -351,  -351,    69,  -351,  -351,  -351,  -351,  -351,  -351, +    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351, +    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351, +    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351, +    -351,   -78,  -351,  -351,     8,  -351,  -351,  -351,    50,   -83, +    -351,  -351,  3757,  -351,   -63,     4,   -44,     3,  -169,  -351, +      82,    -5,  -351,   166,  4104,  -351,  -351,  -351,    14,  -351, +    4217,  -351,  -351,  -351,   135,  -351,  -351,  -351,   -12,  4104, +    -351,   166,  -351,  4217,   142,  -351,  -351,   401,  -351,  -351, +      18,  -351,  -351,  -351,  -351,  -351,  4104,   127,   144,  -351, +    -112,  -351,  -351,  -351,  -351,  2857,  -351,   107,  4104,   146, +    2254,  -351,    20,  -351,   -99,  -351,    21,    25,  1245,    39, +      47,    27,  2480,    49,  3397,    31,    53,   -69,  -351,  -351, +    -351,  -351,  -351,  3397,  3397,  3397,  -351,  -351,  -351,  -351, +    -351,   612,  -351,  -351,  -351,   -68,  -351,  -351,  -351,    54, +     -59,  3577,    56,   -36,  3397,   -34,   -25,   112,   -81,   121, +      45,    38,    44,   159,   158,   -88,  -351,  -351,  -167,  -351, +      46,    66,  -351,  -351,  -351,  -351,  -351,  -351,   823,  -351, +    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,   179, +    4104,  -178,  -351,  3037,  3397,  -351,  -351,  -351,    67,  -351, +    -351,  2367,    70,  -121,  -351,  -351,  -351,  -351,  -351,   142, +    -351,  -351,   181,  1862,  3397,  -351,  -351,  -114,  3397,  -172, +    -351,  2677,  -351,  -351,   -58,  -351,  1034,  -351,  -351,  3397, +    3991,  -351,  -351,  3397,    72,  -351,  -351,  -351,  -351,  -351, +    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  3397,  -351, +    3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397, +    3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397,  3397, +    3397,  -351,  -351,  -351,    73,  -351,  -351,  3217,  3397,    51, +      71,  -351,  -351,  -351,  -351,  3397,   146,  -351,  -351,    76, +    -351,  -351,  2059,   -51,  -351,   -50,  -351,    74,   188,    77, +    -351,  -351,    78,    74,    80,  -351,  -351,  -351,  -351,  -351, +    -351,   -34,   -34,   -25,   -25,   112,   112,   112,   112,   -81, +     -81,   121,    45,    38,    44,   159,   158,  -125,  -351,  3397, +      63,    81,  -351,  3397,    65,    83,  -351,  3397,  -351,    68, +      86,  1245,    75,    79,  1455,  -351,  3397,    85,  3397,    84, +    -351,  3397,  -351,   -49,  3397,  1455,   268,  -351,  -351,  3397, +      91,  -351,  -351,  -351,  -351,  -351,  -351,  3397,  -351,    87, +      74,  -351,  1245,  -351,  3397,  -351,  -351,  -351,  -351,   -48, +    1665,   270,  1665  };  /* YYPGOTO[NTERM-NUM].  */  static const yytype_int16 yypgoto[] =  { -    -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353,  -353, -    -353,  -353,  -353,   117,  -353,  -353,  -353,  -353,  -105,  -353, -     -86,   -69,   -82,   -91,   -21,   -20,    68,   108,    67,    80, -    -353,  -111,  -148,  -353,  -149,  -219,    12,    32,  -353,  -353, -    -353,   138,   239,   257,   166,  -353,  -353,  -239,  -353,  -353, -    -353,   146,  -353,  -353,   -27,  -353,    -9,   -74,  -353,  -353, -     309,  -353,   250,  -130,  -353,    73,  -244,   147,  -140,  -340, -    -352,  -322,    19,     9,   311,   225,   154,  -353,  -353,    76, -    -353,  -353,  -353,  -353,  -353,  -353,  -353,   317,  -353 +    -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351,  -351, +    -351,  -351,  -351,    23,  -351,  -351,  -351,  -351,  -105,  -351, +     -67,   -66,  -134,   -65,    -8,   -10,    -7,    -6,    -4,    -3, +    -351,  -111,  -148,  -351,  -149,  -221,     6,     9,  -351,  -351, +    -351,    88,   171,   165,    89,  -351,  -351,  -247,  -351,  -351, +    -351,    57,  -351,  -351,   -40,  -351,    -9,   -75,  -351,  -351, +     219,  -351,   161,  -127,  -351,   -16,  -262,    58,  -131,  -299, +    -350,  -292,   -70,   -82,   220,   134,    64,  -351,  -351,   -11, +    -351,  -351,  -351,  -351,  -351,  -351,  -351,   224,  -351  };  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If @@ -1097,52 +1139,110 @@ static const yytype_int16 yypgoto[] =  #define YYTABLE_NINF -267  static const yytype_int16 yytable[] =  { -      96,   108,   121,   247,   310,   249,    12,    13,   242,   298, -     236,  -160,   328,   287,   288,     1,   254,    12,    13,   387, -       4,    83,     5,   222,   227,   223,   136,     7,   257,   258, -     226,   386,   128,   265,   122,   123,   124,     8,    33,   142, -      34,    84,    35,   224,    36,    37,    38,   112,   129,    33, -     408,    34,   391,    35,    11,    36,    37,    38,   252,   253, -     307,   300,   407,   391,   362,   316,   133,   104,   303,   119, -     411,   300,   407,    96,   130,   300,   311,   301,   308,   279, -     114,   317,   110,   328,   112,   134,   131,   324,   361,   326, -     132,   121,   -36,   299,    83,   323,   365,   289,   290,   325, -     139,   236,   327,   259,   109,   260,   135,   300,   201,   111, -     333,   120,   227,   137,    84,   336,   303,   219,   226,   380, -     111,   376,    79,   122,   123,   124,   116,   117,   238,   139, -     337,   139,   239,    79,   396,   283,   284,   398,   138,   201, -     377,   143,   105,   106,   262,   403,   107,   330,   263,   230, -     357,   300,   358,   405,   371,   285,   286,   372,   300,   -98, -     311,   300,   201,   399,   221,   410,   237,   300,   232,   300, -      75,    76,    77,   327,   261,   338,   339,   340,   226,   226, +      96,   108,   310,   247,   328,   249,   298,   121,   287,   288, +    -160,    12,    13,   236,   307,    83,   254,   242,    84,   257, +     258,   387,   121,   300,   227,   136,   128,     1,   300,     4, +     226,   131,   308,   265,   112,   132,     5,   326,   142,   122, +     123,   124,   129,    33,   301,    34,   362,    35,    11,    36, +      37,    38,   408,   133,   122,   123,   124,     7,   252,   253, +     267,   268,   269,   270,   271,   272,   273,   274,   275,   276, +     300,   112,   386,    96,   316,   328,   311,   303,   222,   279, +     223,   300,   391,     8,   376,   134,   361,   110,    83,   104, +     317,    84,   238,   391,   365,   323,   239,   324,   224,   325, +     139,   380,   327,   407,   236,   105,   106,   114,   201,   107, +     333,   411,   227,   407,   111,   336,   396,   219,   226,   398, +     299,   -36,   289,   290,   259,   303,   260,   403,    79,   139, +     337,   139,   262,   330,   109,   405,   263,   300,   377,   201, +     371,   372,   399,   410,   300,   300,   300,   300,   116,   117, +     357,   120,   358,   345,   346,   347,   348,    75,    76,    77, +     311,   130,   201,   122,   123,   124,   280,   281,   282,    12, +      13,   283,   284,   327,   277,   338,   339,   340,   226,   226,       226,   226,   226,   226,   226,   226,   226,   226,   226,   226, -     226,   226,   226,   226,   291,   292,   227,   341,   342,   201, -     349,   350,   226,   243,   227,   345,   346,   347,   348,   240, -     226,   219,   122,   123,   124,   311,   343,   344,   383,   280, -     281,   282,   139,   241,   244,   245,   248,   250,   394,   251, -     311,   266,   293,   311,   201,   400,   294,   296,   295,   116, -     297,   311,   201,   -35,   304,   313,   315,   201,   227,   311, -     319,   -30,   363,   359,   226,   409,   364,   367,   373,   300, -     374,   375,   -36,   379,   382,   385,   378,   402,   381,   404, -     395,   412,   351,   384,   352,   389,    12,    13,    14,    15, -      16,    17,   146,   147,   148,   397,   149,   150,   151,   152, +     226,   226,   226,   226,   -98,   119,   227,   285,   286,   201, +     138,    33,   226,    34,   227,    35,   135,    36,    37,    38, +     226,   219,   291,   292,   137,   311,   341,   342,   383,   343, +     344,   143,   139,   221,   230,   232,   349,   350,   394,   243, +     311,   237,   240,   311,   201,   400,   241,   244,   245,   248, +     250,   311,   201,   251,   294,   261,   266,   201,   227,   311, +     293,   295,   296,   297,   226,   409,   -35,   116,   304,   319, +     313,   363,   315,   -30,   364,   359,   367,   373,   374,   300, +     -36,   375,   111,   378,   379,   381,   382,   385,   395,   384, +     402,   404,   412,   335,   352,   351,    79,   171,   353,   389, +     354,   216,   220,   355,   397,   356,   318,   113,   406,   231, +     366,   320,   388,   401,   118,   256,   115,   321,   305,   306, +       0,   368,     0,   201,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,   201,     0,     0,   201,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,   201,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,   201,     0,     0,     0,     0,     0,     0, +       0,   201,     0,   201,    12,    13,    14,    15,    16,    17, +     146,   147,   148,     0,   149,   150,   151,   152,   153,   154, +     155,    18,    19,    20,    21,    22,    23,    24,    25,    26, +      27,    28,    29,    30,    31,    32,    33,     0,    34,     0, +      35,     0,    36,    37,    38,    39,    40,    41,    42,    43, +      44,    45,    46,    47,    48,    49,    50,    51,    52,    53, +      54,    55,    56,    57,    58,    59,    60,    61,    62,    63, +      64,    65,    66,    67,    68,    69,    70,    71,    72,   156, +     157,   158,   159,   160,   161,   162,     0,     0,   163,   164, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,    74,    75,    76, +      77,     0,    78,     0,     0,     0,     0,     0,     0,     0, +       0,    79,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,    80,     0,    81,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,   165,     0,     0,     0,     0,     0,   166,   167,   168, +     169,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,   170,   171,   172,    12,    13,    14,    15,    16, +      17,   146,   147,   148,     0,   149,   150,   151,   152,   153, +     154,   155,    18,    19,    20,    21,    22,    23,    24,    25, +      26,    27,    28,    29,    30,    31,    32,    33,     0,    34, +       0,    35,     0,    36,    37,    38,    39,    40,    41,    42, +      43,    44,    45,    46,    47,    48,    49,    50,    51,    52, +      53,    54,    55,    56,    57,    58,    59,    60,    61,    62, +      63,    64,    65,    66,    67,    68,    69,    70,    71,    72, +     156,   157,   158,   159,   160,   161,   162,     0,     0,   163, +     164,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,    74,    75, +      76,    77,     0,    78,     0,     0,     0,     0,     0,     0, +       0,     0,    79,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,    80,     0,    81,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,   165,     0,     0,     0,     0,     0,   166,   167, +     168,   169,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,   170,   171,   255,    12,    13,    14,    15, +      16,    17,   146,   147,   148,     0,   149,   150,   151,   152,       153,   154,   155,    18,    19,    20,    21,    22,    23,    24, -      25,    26,    27,    28,    29,    30,    31,    32,    33,   171, -      34,   406,    35,   201,    36,    37,    38,    39,    40,    41, +      25,    26,    27,    28,    29,    30,    31,    32,    33,     0, +      34,     0,    35,     0,    36,    37,    38,    39,    40,    41,        42,    43,    44,    45,    46,    47,    48,    49,    50,    51,        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,        62,    63,    64,    65,    66,    67,    68,    69,    70,    71, -      72,   156,   157,   158,   159,   160,   161,   162,   305,   216, -     163,   164,   201,   353,   355,   201,   267,   268,   269,   270, -     271,   272,   273,   274,   275,   276,   201,   335,   356,    74, -      75,    76,    77,    78,   220,   318,   306,   113,   231,   366, -     320,   388,    79,   201,   401,   118,   256,   321,   368,   115, -       0,   201,     0,   201,   354,     0,     0,     0,     0,     0, +      72,   156,   157,   158,   159,   160,   161,   162,     0,     0, +     163,   164,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,    74, +      75,    76,    77,     0,    78,     0,     0,     0,     0,     0, +       0,     0,     0,    79,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,    80,     0,    81, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,    80,     0,    81,     0,         0,     0,     0,   165,     0,     0,     0,     0,     0,   166,       167,   168,   169,     0,     0,     0,     0,     0,     0,     0, -     277,     0,     0,     0,   170,   171,   172,    12,    13,    14, +       0,     0,     0,     0,   170,   171,   302,    12,    13,    14,        15,    16,    17,   146,   147,   148,     0,   149,   150,   151,       152,   153,   154,   155,    18,    19,    20,    21,    22,    23,        24,    25,    26,    27,    28,    29,    30,    31,    32,    33, @@ -1153,14 +1253,17 @@ static const yytype_int16 yytable[] =        71,    72,   156,   157,   158,   159,   160,   161,   162,     0,         0,   163,   164,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      74,    75,    76,    77,    78,     0,     0,     0,     0,     0, -       0,     0,     0,    79,     0,     0,     0,     0,     0,     0, +      74,    75,    76,    77,     0,    78,     0,     0,     0,     0, +       0,     0,     0,     0,    79,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,    80,     0, +      81,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,    80,     0,    81,         0,     0,     0,     0,   165,     0,     0,     0,     0,     0,       166,   167,   168,   169,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,   170,   171,   255,    12,    13, +       0,     0,     0,     0,     0,   170,   171,   331,    12,    13,        14,    15,    16,    17,   146,   147,   148,     0,   149,   150,       151,   152,   153,   154,   155,    18,    19,    20,    21,    22,        23,    24,    25,    26,    27,    28,    29,    30,    31,    32, @@ -1171,225 +1274,213 @@ static const yytype_int16 yytable[] =        70,    71,    72,   156,   157,   158,   159,   160,   161,   162,         0,     0,   163,   164,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,    74,    75,    76,    77,    78,     0,     0,     0,     0, -       0,     0,     0,     0,    79,     0,     0,     0,     0,     0, +       0,    74,    75,    76,    77,     0,    78,     0,     0,     0, +       0,     0,     0,     0,     0,    79,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,    80,     0, -      81,     0,     0,     0,     0,   165,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,    80, +       0,    81,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   165,     0,     0,     0,     0,         0,   166,   167,   168,   169,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,   170,   171,   302,    12, -      13,    14,    15,    16,    17,   146,   147,   148,     0,   149, -     150,   151,   152,   153,   154,   155,    18,    19,    20,    21, -      22,    23,    24,    25,    26,    27,    28,    29,    30,    31, -      32,    33,     0,    34,     0,    35,     0,    36,    37,    38, -      39,    40,    41,    42,    43,    44,    45,    46,    47,    48, -      49,    50,    51,    52,    53,    54,    55,    56,    57,    58, -      59,    60,    61,    62,    63,    64,    65,    66,    67,    68, -      69,    70,    71,    72,   156,   157,   158,   159,   160,   161, -     162,     0,     0,   163,   164,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,   170,   171,    12,    13, +      14,    15,    16,    17,   146,   147,   148,     0,   149,   390, +     151,   152,   153,   154,   155,    18,    19,    20,    21,    22, +      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, +      33,     0,    34,     0,    35,     0,    36,    37,    38,    39, +      40,    41,    42,    43,    44,    45,    46,    47,    48,    49, +      50,    51,    52,    53,    54,    55,    56,    57,    58,    59, +      60,    61,    62,    63,    64,    65,    66,    67,    68,    69, +      70,    71,    72,   156,   157,   158,   159,   160,   161,   162, +       0,     0,   163,   164,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,    74,    75,    76,    77,    78,     0,     0,     0, +       0,    74,    75,    76,    77,     0,    78,     0,     0,     0,         0,     0,     0,     0,     0,    79,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,    80, -       0,    81,     0,     0,     0,     0,   165,     0,     0,     0, -       0,     0,   166,   167,   168,   169,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,   170,   171,   331, -      12,    13,    14,    15,    16,    17,   146,   147,   148,     0, -     149,   150,   151,   152,   153,   154,   155,    18,    19,    20, -      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, -      31,    32,    33,     0,    34,     0,    35,     0,    36,    37, -      38,    39,    40,    41,    42,    43,    44,    45,    46,    47, -      48,    49,    50,    51,    52,    53,    54,    55,    56,    57, -      58,    59,    60,    61,    62,    63,    64,    65,    66,    67, -      68,    69,    70,    71,    72,   156,   157,   158,   159,   160, -     161,   162,     0,     0,   163,   164,     0,     0,     0,     0, +       0,    81,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   165,     0,     0,     0,     0, +       0,   166,   167,   168,   169,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,   170,   117,    12,    13, +      14,    15,    16,    17,   146,   147,   148,     0,   149,   390, +     151,   152,   153,   154,   155,    18,    19,    20,    21,    22, +      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, +      33,     0,    34,     0,    35,     0,    36,    37,    38,    39, +      40,    41,    42,    43,    44,    45,    46,    47,    48,    49, +      50,    51,    52,    53,    54,    55,    56,    57,    58,    59, +      60,    61,    62,    63,    64,    65,    66,    67,    68,    69, +      70,    71,    72,   156,   157,   158,   159,   160,   161,   162, +       0,     0,   163,   164,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,    74,    75,    76,    77,    78,     0,     0, -       0,     0,     0,     0,     0,     0,    79,     0,     0,     0, +       0,    74,    75,    76,    77,     0,    78,     0,     0,     0, +       0,     0,     0,     0,     0,    79,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,    80, +       0,    81,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      80,     0,    81,     0,     0,     0,     0,   165,     0,     0, -       0,     0,     0,   166,   167,   168,   169,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,   170,   171, -      12,    13,    14,    15,    16,    17,   146,   147,   148,     0, -     149,   390,   151,   152,   153,   154,   155,    18,    19,    20, -      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, -      31,    32,    33,     0,    34,     0,    35,     0,    36,    37, -      38,    39,    40,    41,    42,    43,    44,    45,    46,    47, -      48,    49,    50,    51,    52,    53,    54,    55,    56,    57, -      58,    59,    60,    61,    62,    63,    64,    65,    66,    67, -      68,    69,    70,    71,    72,   156,   157,   158,   159,   160, -     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,    74,    75,    76,    77,    78,     0,     0, -       0,     0,     0,     0,     0,     0,    79,     0,     0,     0, +       0,     0,     0,     0,     0,   165,     0,     0,     0,     0, +       0,   166,   167,   168,   169,    12,    13,    14,    15,    16, +      17,     0,     0,     0,     0,     0,   170,   171,     0,     0, +       0,     0,    18,    19,    20,    21,    22,    23,    24,    25, +      26,    27,    28,    29,    30,    31,    32,    33,     0,    34, +       0,    35,     0,    36,    37,    38,    39,    40,    41,    42, +      43,    44,    45,    46,    47,    48,    49,    50,    51,    52, +      53,    54,    55,    56,    57,    58,    59,    60,    61,    62, +      63,    64,    65,    66,    67,    68,    69,    70,    71,    72, +       0,   157,   158,   159,   160,   161,   162,     0,     0,   163, +     164,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,    74,    75, +      76,    77,     0,    78,     0,     0,     0,     0,     0,     0, +       0,     0,    79,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,    80,     0,    81,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      80,     0,    81,     0,     0,     0,     0,   165,     0,     0, -       0,     0,     0,   166,   167,   168,   169,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,   170,   117, -      12,    13,    14,    15,    16,    17,   146,   147,   148,     0, -     149,   390,   151,   152,   153,   154,   155,    18,    19,    20, -      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, -      31,    32,    33,     0,    34,     0,    35,     0,    36,    37, -      38,    39,    40,    41,    42,    43,    44,    45,    46,    47, -      48,    49,    50,    51,    52,    53,    54,    55,    56,    57, -      58,    59,    60,    61,    62,    63,    64,    65,    66,    67, -      68,    69,    70,    71,    72,   156,   157,   158,   159,   160, -     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,    74,    75,    76,    77,    78,     0,     0, -       0,     0,     0,     0,     0,     0,    79,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,   165,     0,     0,     0,     0,     0,   166,   167, +     168,   169,    12,    13,    14,    15,    16,    17,     0,     0, +       0,     0,     0,   170,     0,     0,     0,     0,     0,    18, +      19,    20,    21,    22,    23,    24,    25,    26,    27,    28, +      29,    30,    31,    32,    33,     0,    34,     0,    35,     0, +      36,    37,    38,    39,    40,    41,    42,    43,    44,    45, +      46,    47,    48,    49,    50,    51,    52,    53,    54,    55, +      56,    57,    58,    59,    60,    61,    62,    63,    64,    65, +      66,    67,    68,    69,    70,    71,    72,     0,   157,   158, +     159,   160,   161,   162,     0,     0,   163,   164,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   111,    75,    76,    77,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,    79,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      80,     0,    81,     0,     0,     0,     0,   165,     0,     0, -       0,     0,     0,   166,   167,   168,   169,    12,    13,    14, -      15,    16,    17,     0,     0,     0,     0,     0,   170,   171, -       0,     0,     0,     0,    18,    19,    20,    21,    22,    23, -      24,    25,    26,    27,    28,    29,    30,    31,    32,    33, -       0,    34,     0,    35,     0,    36,    37,    38,    39,    40, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,    80,     0,    81,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,   165, +       0,     0,     0,     0,     0,   166,   167,   168,   169,    14, +      15,    16,    17,     0,     0,     0,     0,     0,     0,     0, +    -266,     0,     0,     0,    18,    19,    20,    21,    22,    23, +      24,    25,    26,    27,    28,    29,    30,    31,    32,     0, +       0,     0,     0,     0,     0,     0,     0,     0,    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,     0,   157,   158,   159,   160,   161,   162,     0, -       0,   163,   164,     0,     0,     0,     0,     0,     0,     0, +      71,    72,     0,    73,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      74,    75,    76,    77,    78,     0,     0,     0,     0,     0, -       0,     0,     0,    79,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,    75,    76,    77,     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,    30, +      31,    32,     0,     0,     0,     0,     0,     0,    80,     0, +      81,    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,     0,    73,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,   235,     0,     0, +       0,     0,     0,     0,    75,    76,    77,     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,    30,    31,    32,     0,     0,     0,     0,     0, +       0,    80,     0,    81,    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,     0,   157, +     158,   159,   160,   161,   162,     0,     0,   163,   164,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +     314,     0,     0,     0,     0,     0,     0,    75,    76,    77,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,    80,     0,    81, -       0,     0,     0,     0,   165,     0,     0,     0,     0,     0, -     166,   167,   168,   169,    12,    13,    14,    15,    16,    17, -       0,     0,     0,     0,     0,   170,     0,     0,     0,     0, -       0,    18,    19,    20,    21,    22,    23,    24,    25,    26, -      27,    28,    29,    30,    31,    32,    33,     0,    34,     0, -      35,     0,    36,    37,    38,    39,    40,    41,    42,    43, -      44,    45,    46,    47,    48,    49,    50,    51,    52,    53, -      54,    55,    56,    57,    58,    59,    60,    61,    62,    63, -      64,    65,    66,    67,    68,    69,    70,    71,    72,     0, -     157,   158,   159,   160,   161,   162,     0,     0,   163,   164,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,   111,    75,    76, -      77,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      79,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,    80,     0,    81,     0,     0,     0, -       0,   165,     0,     0,     0,     0,     0,   166,   167,   168, -     169,    14,    15,    16,    17,     0,     0,     0,     0,     0, -       0,     0,  -266,     0,     0,     0,    18,    19,    20,    21, -      22,    23,    24,    25,    26,    27,    28,    29,    30,    31, -      32,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      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,     0,    73,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,    75,    76,    77,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +     165,     0,     0,     0,     0,     0,   166,   167,   168,   169, +      12,    13,    14,    15,    16,    17,     0,     0,     0,     0, +       0,   246,     0,     0,     0,     0,     0,    18,    19,    20, +      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, +      31,    32,    33,     0,    34,     0,    35,     0,    36,    37, +      38,    39,    40,    41,    42,    43,    44,    45,    46,    47, +      48,    49,    50,    51,    52,    53,    54,    55,    56,    57, +      58,    59,    60,    61,    62,    63,    64,    65,    66,    67, +      68,    69,    70,    71,    72,     0,   157,   158,   159,   160, +     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,   111,    75,    76,    77,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,    79,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,    14,    15,    16,    17,     0,     0,     0,     0,    80, -       0,    81,     0,     0,     0,     0,    18,    19,    20,    21, -      22,    23,    24,    25,    26,    27,    28,    29,    30,    31, -      32,     0,     0,     0,     0,     0,     0,     0,     0,   235, -      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,     0,    73,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,    75,    76,    77,     0,     0,     0,     0, +       0,    80,     0,    81,     0,     0,     0,     0,     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,   165,     0,     0, +       0,     0,     0,   166,   167,   168,   169,    18,    19,    20, +      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, +      31,    32,     0,     0,     0,     0,     0,     0,     0,     0, +       0,    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,     0,   157,   158,   159,   160, +     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,    14,    15,    16,    17,     0,     0,     0,     0,    80, -       0,    81,     0,     0,     0,     0,    18,    19,    20,    21, -      22,    23,    24,    25,    26,    27,    28,    29,    30,    31, -      32,     0,     0,     0,     0,     0,     0,     0,     0,   314, -      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,     0,   157,   158,   159,   160,   161, -     162,     0,     0,   163,   164,     0,     0,     0,     0,     0, +       0,     0,     0,     0,    75,    76,    77,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,    75,    76,    77,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,    80, -       0,    81,     0,     0,     0,     0,   165,     0,     0,     0, -       0,     0,   166,   167,   168,   169,    12,    13,    14,    15, -      16,    17,     0,     0,     0,     0,     0,   246,     0,     0, -       0,     0,     0,    18,    19,    20,    21,    22,    23,    24, -      25,    26,    27,    28,    29,    30,    31,    32,    33,     0, -      34,     0,    35,     0,    36,    37,    38,    39,    40,    41, -      42,    43,    44,    45,    46,    47,    48,    49,    50,    51, -      52,    53,    54,    55,    56,    57,    58,    59,    60,    61, -      62,    63,    64,    65,    66,    67,    68,    69,    70,    71, -      72,     0,   157,   158,   159,   160,   161,   162,     0,     0, -     163,   164,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,   111, -      75,    76,    77,     0,     0,     0,     0,     0,     0,     0, -       0,     0,    79,     0,     0,     0,     0,     0,     0,     0, +       0,    80,     0,    81,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,    80,     0,    81,    14, -      15,    16,    17,   165,     0,     0,     0,     0,     0,   166, -     167,   168,   169,     0,    18,    19,    20,    21,    22,    23, -      24,    25,    26,    27,    28,    29,    30,    31,    32,     0, -       0,     0,     0,     0,     0,     0,     0,     0,    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,     0,   157,   158,   159,   160,   161,   162,     0, -       0,   163,   164,     0,     0,     0,     0,     0,     0,     0, +       0,     0,    14,    15,    16,    17,     0,   165,     0,     0, +     225,     0,     0,   166,   167,   168,   169,    18,    19,    20, +      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, +      31,    32,     0,     0,     0,     0,     0,     0,     0,     0, +       0,    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,     0,   157,   158,   159,   160, +     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,    75,    76,    77,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,    75,    76,    77,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,    80,     0,    81, -      14,    15,    16,    17,   165,     0,     0,   225,     0,     0, -     166,   167,   168,   169,     0,    18,    19,    20,    21,    22, -      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, -       0,     0,     0,     0,     0,     0,     0,     0,     0,    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,     0,   157,   158,   159,   160,   161,   162, -       0,     0,   163,   164,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,    75,    76,    77,     0,     0,     0,     0,     0, +       0,    80,     0,    81,     0,     0,     0,     0,     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,   165,     0,     0, +     309,     0,     0,   166,   167,   168,   169,    18,    19,    20, +      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, +      31,    32,     0,     0,     0,     0,     0,     0,     0,     0, +       0,    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,     0,   157,   158,   159,   160, +     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,    80,     0, -      81,    14,    15,    16,    17,   165,     0,     0,   309,     0, -       0,   166,   167,   168,   169,     0,    18,    19,    20,    21, -      22,    23,    24,    25,    26,    27,    28,    29,    30,    31, -      32,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      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,     0,   157,   158,   159,   160,   161, -     162,     0,     0,   163,   164,     0,     0,     0,     0,     0, +       0,     0,     0,     0,    75,    76,    77,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,    75,    76,    77,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,    80, -       0,    81,    14,    15,    16,    17,   165,     0,     0,   360, -       0,     0,   166,   167,   168,   169,     0,    18,    19,    20, +       0,    80,     0,    81,     0,     0,     0,     0,     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,   165,     0,     0, +     360,     0,     0,   166,   167,   168,   169,    18,    19,    20,        21,    22,    23,    24,    25,    26,    27,    28,    29,    30,        31,    32,     0,     0,     0,     0,     0,     0,     0,     0,         0,    39,    40,    41,    42,    43,    44,    45,    46,    47, @@ -1403,34 +1494,38 @@ 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, -      80,     0,    81,    14,    15,    16,    17,   165,     0,     0, -       0,     0,     0,   166,   167,   168,   169,     0,    18,    19, -      20,    21,    22,    23,    24,    25,    26,    27,    28,    29, -      30,    31,    32,     0,     0,     0,     0,     0,     0,     0, -       0,     0,    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,   264,     0,   157,   158,   159, -     160,   161,   162,     0,     0,   163,   164,     0,     0,     0, +       0,    80,     0,    81,     0,     0,     0,     0,     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,   165,     0,     0, +       0,     0,     0,   166,   167,   168,   169,    18,    19,    20, +      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, +      31,    32,     0,     0,     0,     0,     0,     0,     0,     0, +       0,    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,   264,     0,   157,   158,   159,   160, +     161,   162,     0,     0,   163,   164,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,    75,    76,    77,     0,     0, +       0,     0,     0,     0,    75,    76,    77,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,    80,     0,    81,     0,     0,     0,     0,   165,     0, -       0,     0,     0,     0,   166,   167,   168,   169,    -3,     0, -       0,    12,    13,    14,    15,    16,    17,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,    18,    19, -      20,    21,    22,    23,    24,    25,    26,    27,    28,    29, -      30,    31,    32,    33,     0,    34,     0,    35,     0,    36, -      37,    38,    39,    40,    41,    42,    43,    44,    45,    46, -      47,    48,    49,    50,    51,    52,    53,    54,    55,    56, -      57,    58,    59,    60,    61,    62,    63,    64,    65,    66, -      67,    68,    69,    70,    71,    72,     0,    73,     0,     0, +       0,    80,     0,    81,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,    -3,     0,     0, +      12,    13,    14,    15,    16,    17,     0,   165,     0,     0, +       0,     0,     0,   166,   167,   168,   169,    18,    19,    20, +      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, +      31,    32,    33,     0,    34,     0,    35,     0,    36,    37, +      38,    39,    40,    41,    42,    43,    44,    45,    46,    47, +      48,    49,    50,    51,    52,    53,    54,    55,    56,    57, +      58,    59,    60,    61,    62,    63,    64,    65,    66,    67, +      68,    69,    70,    71,    72,     0,    73,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,    74,    75,    76,    77,    78,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,    74,    75,    76,    77,     0,    78,     0,         0,     0,     0,     0,     0,     0,     0,    79,    12,    13,        14,    15,    16,    17,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,    18,    19,    20,    21,    22, @@ -1442,30 +1537,19 @@ static const yytype_int16 yytable[] =        70,    71,    72,     0,    73,     0,     0,     0,     0,     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,    77,    78,     0,     0,     0,     0, -       0,     0,     0,     0,    79,    14,    15,    16,    17,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -      18,    19,    20,    21,    22,    23,    24,    25,    26,    27, -      28,    29,    30,    31,    32,     0,     0,     0,    80,     0, -      81,     0,     0,     0,    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,     0,   334, -       0,     0,     0,     0,   162,     0,     0,     0,     0,     0, +       0,    74,    75,    76,    77,     0,    78,     0,     0,     0, +       0,     0,     0,     0,     0,    79,    14,    15,    16,    17,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,    75,    76,    77, -       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,    30,    31,    32,     0,     0,     0, -       0,     0,     0,    80,     0,    81,    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, -       0,    73,     0,     0,     0,     0,     0,     0,     0,     0, +       0,    18,    19,    20,    21,    22,    23,    24,    25,    26, +      27,    28,    29,    30,    31,    32,     0,     0,     0,    80, +       0,    81,     0,     0,     0,    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,     0, +     334,     0,     0,     0,     0,   162,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,    75, -      76,    77,     0,     0,     0,     0,     0,     0,     0,    14, +       0,     0,     0,     0,     0,     0,     0,     0,    75,    76, +      77,     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,    30,    31,    32,     0, @@ -1476,61 +1560,131 @@ static const yytype_int16 yytable[] =        71,    72,     0,    73,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,    75,    76,    77,     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,    30, +      31,    32,     0,     0,     0,     0,     0,     0,    80,     0, +      81,    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,     0,    73,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,    80,     0,    81 +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,    80,     0,    81  };  static const yytype_int16 yycheck[] =  { -       9,    79,     4,   152,   223,   154,     3,     4,   148,    94, -     140,    79,   251,    89,    90,   111,   165,     3,     4,   371, -      81,     9,     0,   160,   135,   162,   100,   116,    87,    88, -     135,   371,   165,   181,    36,    37,    38,   112,    35,   113, -      37,     9,    39,   180,    41,    42,    43,    74,   181,    35, -     402,    37,   374,    39,    79,    41,    42,    43,   163,   164, -     162,   165,   402,   385,   308,   165,    93,   115,   208,   161, -     410,   165,   412,    82,    79,   165,   224,   181,   180,   184, -     160,   181,    79,   322,   111,    94,    36,   181,   307,   179, -      40,     4,   160,   178,    82,   244,   315,   173,   174,   248, -     109,   231,   251,   162,   182,   164,   162,   165,   117,   106, -     259,   165,   223,    79,    82,   263,   256,   126,   223,   363, -     106,   179,   119,    36,    37,    38,   181,   182,   161,   138, -     278,   140,   165,   119,   378,   166,   167,   381,   182,   148, -     359,    79,    36,    37,   161,   389,    40,   161,   165,   116, -     299,   165,   300,   397,   161,    85,    86,   161,   165,   161, -     308,   165,   171,   161,    79,   161,   181,   165,    79,   165, -     107,   108,   109,   322,   161,   280,   281,   282,   283,   284, +       9,    79,   223,   152,   251,   154,    94,     4,    89,    90, +      79,     3,     4,   140,   192,     9,   165,   148,     9,    87, +      88,   371,     4,   195,   135,   100,   195,   112,   195,    81, +     135,    36,   210,   181,    74,    40,     0,   209,   113,    36, +      37,    38,   211,    35,   211,    37,   308,    39,    79,    41, +      42,    43,   402,    93,    36,    37,    38,   117,   163,   164, +      96,    97,    98,    99,   100,   101,   102,   103,   104,   105, +     195,   111,   371,    82,   195,   322,   224,   208,   190,   184, +     192,   195,   374,   113,   209,    94,   307,    79,    82,   116, +     211,    82,   191,   385,   315,   244,   195,   211,   210,   248, +     109,   363,   251,   402,   231,    36,    37,   190,   117,    40, +     259,   410,   223,   412,   106,   263,   378,   126,   223,   381, +     208,   190,   203,   204,   192,   256,   194,   389,   120,   138, +     278,   140,   191,   191,   212,   397,   195,   195,   359,   148, +     191,   191,   191,   191,   195,   195,   195,   195,   211,   212, +     299,   195,   300,   287,   288,   289,   290,   107,   108,   109, +     308,    79,   171,    36,    37,    38,   200,   201,   202,     3, +       4,   196,   197,   322,   210,   280,   281,   282,   283,   284,       285,   286,   287,   288,   289,   290,   291,   292,   293,   294, -     295,   296,   297,   298,    91,    92,   307,   283,   284,   208, -     291,   292,   307,   160,   315,   287,   288,   289,   290,   181, -     315,   220,    36,    37,    38,   363,   285,   286,   367,   170, -     171,   172,   231,   181,   160,   181,   160,   179,   376,   160, -     378,   160,   175,   381,   243,   384,   176,    93,   177,   181, -      95,   389,   251,   160,    79,   163,   162,   256,   359,   397, -      78,   161,   180,   162,   359,   404,   163,   160,    79,   165, -     161,   163,   160,   163,   163,   161,   180,    12,   180,   160, -     163,    12,   293,   181,   294,   180,     3,     4,     5,     6, -       7,     8,     9,    10,    11,   180,    13,    14,    15,    16, +     295,   296,   297,   298,   191,   191,   307,    85,    86,   208, +     212,    35,   307,    37,   315,    39,   192,    41,    42,    43, +     315,   220,    91,    92,    79,   363,   283,   284,   367,   285, +     286,    79,   231,    79,   117,    79,   291,   292,   376,   190, +     378,   211,   211,   381,   243,   384,   211,   190,   211,   190, +     209,   389,   251,   190,   206,   191,   190,   256,   359,   397, +     205,   207,    93,    95,   359,   404,   190,   211,    79,    78, +     193,   210,   192,   191,   193,   192,   190,    79,   191,   195, +     190,   193,   106,   210,   193,   210,   193,   191,   193,   211, +      12,   190,    12,   260,   294,   293,   120,   212,   295,   210, +     296,   120,   127,   297,   210,   298,   239,    78,   211,   138, +     316,   243,   372,   385,    84,   171,    82,   243,   220,   220, +      -1,   322,    -1,   322,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,   371,    -1,    -1,   374,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,   385,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,   402,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,   410,    -1,   412,     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,    35,    -1,    37,    -1, +      39,    -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,    75,    76,    77,    78, +      79,    80,    81,    82,    83,    84,    -1,    -1,    87,    88, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107,   108, +     109,    -1,   111,    -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,   190,    -1,    -1,    -1,    -1,    -1,   196,   197,   198, +     199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,   211,   212,   213,     3,     4,     5,     6,     7, +       8,     9,    10,    11,    -1,    13,    14,    15,    16,    17, +      18,    19,    20,    21,    22,    23,    24,    25,    26,    27, +      28,    29,    30,    31,    32,    33,    34,    35,    -1,    37, +      -1,    39,    -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,    75,    76,    77, +      78,    79,    80,    81,    82,    83,    84,    -1,    -1,    87, +      88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107, +     108,   109,    -1,   111,    -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,   190,    -1,    -1,    -1,    -1,    -1,   196,   197, +     198,   199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,   211,   212,   213,     3,     4,     5,     6, +       7,     8,     9,    10,    11,    -1,    13,    14,    15,    16,        17,    18,    19,    20,    21,    22,    23,    24,    25,    26, -      27,    28,    29,    30,    31,    32,    33,    34,    35,   182, -      37,   181,    39,   322,    41,    42,    43,    44,    45,    46, +      27,    28,    29,    30,    31,    32,    33,    34,    35,    -1, +      37,    -1,    39,    -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,    75,    76, -      77,    78,    79,    80,    81,    82,    83,    84,   220,   120, -      87,    88,   371,   295,   297,   374,    96,    97,    98,    99, -     100,   101,   102,   103,   104,   105,   385,   260,   298,   106, -     107,   108,   109,   110,   127,   239,   220,    78,   138,   316, -     243,   372,   119,   402,   385,    84,   171,   243,   322,    82, -      -1,   410,    -1,   412,   296,    -1,    -1,    -1,    -1,    -1, +      77,    78,    79,    80,    81,    82,    83,    84,    -1,    -1, +      87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106, +     107,   108,   109,    -1,   111,    -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,   153,    -1,   155,    -1, -      -1,    -1,    -1,   160,    -1,    -1,    -1,    -1,    -1,   166, -     167,   168,   169,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -     180,    -1,    -1,    -1,   181,   182,   183,     3,     4,     5, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   196, +     197,   198,   199,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,   211,   212,   213,     3,     4,     5,         6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,        16,    17,    18,    19,    20,    21,    22,    23,    24,    25,        26,    27,    28,    29,    30,    31,    32,    33,    34,    35, @@ -1541,14 +1695,17 @@ static const yytype_int16 yycheck[] =        76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,        -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -     106,   107,   108,   109,   110,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1, +     106,   107,   108,   109,    -1,   111,    -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,   153,    -1,   155, -      -1,    -1,    -1,    -1,   160,    -1,    -1,    -1,    -1,    -1, -     166,   167,   168,   169,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,   181,   182,   183,     3,     4, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1, +     196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,   211,   212,   213,     3,     4,         5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,        25,    26,    27,    28,    29,    30,    31,    32,    33,    34, @@ -1559,225 +1716,213 @@ static const yytype_int16 yycheck[] =        75,    76,    77,    78,    79,    80,    81,    82,    83,    84,        -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,   106,   107,   108,   109,   110,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1, +      -1,   106,   107,   108,   109,    -1,   111,    -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,   153,    -1, -     155,    -1,    -1,    -1,    -1,   160,    -1,    -1,    -1,    -1, -      -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,   181,   182,   183,     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,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    78,    79,    80,    81,    82,    83, -      84,    -1,    -1,    87,    88,    -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,   106,   107,   108,   109,   110,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1, +      -1,   196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,   211,   212,     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, +      35,    -1,    37,    -1,    39,    -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, +      75,    76,    77,    78,    79,    80,    81,    82,    83,    84, +      -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   153, -      -1,   155,    -1,    -1,    -1,    -1,   160,    -1,    -1,    -1, -      -1,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182,   183, -       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,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    78,    79,    80,    81,    82, -      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1, +      -1,   106,   107,   108,   109,    -1,   111,    -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,   106,   107,   108,   109,   110,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,   119,    -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, -     153,    -1,   155,    -1,    -1,    -1,    -1,   160,    -1,    -1, -      -1,    -1,    -1,   166,   167,   168,   169,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182, -       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,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    78,    79,    80,    81,    82, -      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1, +      -1,   196,   197,   198,   199,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,   211,   212,     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, +      35,    -1,    37,    -1,    39,    -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, +      75,    76,    77,    78,    79,    80,    81,    82,    83,    84, +      -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,   106,   107,   108,   109,   110,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1, +      -1,   106,   107,   108,   109,    -1,   111,    -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, -     153,    -1,   155,    -1,    -1,    -1,    -1,   160,    -1,    -1, -      -1,    -1,    -1,   166,   167,   168,   169,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   181,   182, -       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,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    78,    79,    80,    81,    82, -      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,   106,   107,   108,   109,   110,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,   190,    -1,    -1,    -1,    -1, +      -1,   196,   197,   198,   199,     3,     4,     5,     6,     7, +       8,    -1,    -1,    -1,    -1,    -1,   211,   212,    -1,    -1, +      -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27, +      28,    29,    30,    31,    32,    33,    34,    35,    -1,    37, +      -1,    39,    -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,    75,    76,    77, +      -1,    79,    80,    81,    82,    83,    84,    -1,    -1,    87, +      88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107, +     108,   109,    -1,   111,    -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, -     153,    -1,   155,    -1,    -1,    -1,    -1,   160,    -1,    -1, -      -1,    -1,    -1,   166,   167,   168,   169,     3,     4,     5, -       6,     7,     8,    -1,    -1,    -1,    -1,    -1,   181,   182, -      -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25, -      26,    27,    28,    29,    30,    31,    32,    33,    34,    35, -      -1,    37,    -1,    39,    -1,    41,    42,    43,    44,    45, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,   196,   197, +     198,   199,     3,     4,     5,     6,     7,     8,    -1,    -1, +      -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    20, +      21,    22,    23,    24,    25,    26,    27,    28,    29,    30, +      31,    32,    33,    34,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    -1,    79,    80, +      81,    82,    83,    84,    -1,    -1,    87,    88,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,   106,   107,   108,   109,    -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,   190, +      -1,    -1,    -1,    -1,    -1,   196,   197,   198,   199,     5, +       6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +     211,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25, +      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    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,    -1,    79,    80,    81,    82,    83,    84,    -1, -      -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      76,    77,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -     106,   107,   108,   109,   110,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,   107,   108,   109,    -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,    32, +      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1, +     156,    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,    -1,    79,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,    -1,   155, -      -1,    -1,    -1,    -1,   160,    -1,    -1,    -1,    -1,    -1, -     166,   167,   168,   169,     3,     4,     5,     6,     7,     8, -      -1,    -1,    -1,    -1,    -1,   181,    -1,    -1,    -1,    -1, -      -1,    20,    21,    22,    23,    24,    25,    26,    27,    28, -      29,    30,    31,    32,    33,    34,    35,    -1,    37,    -1, -      39,    -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,    75,    76,    77,    -1, -      79,    80,    81,    82,    83,    84,    -1,    -1,    87,    88, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,   213,    -1,    -1, +      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,   107,   108, -     109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -     119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      20,    21,    22,    23,    24,    25,    26,    27,    28,    29, +      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    -1, +      -1,   154,    -1,   156,    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,    -1,    79, +      80,    81,    82,    83,    84,    -1,    -1,    87,    88,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +     213,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,   153,    -1,   155,    -1,    -1,    -1, -      -1,   160,    -1,    -1,    -1,    -1,    -1,   166,   167,   168, -     169,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,   181,    -1,    -1,    -1,    20,    21,    22,    23, -      24,    25,    26,    27,    28,    29,    30,    31,    32,    33, -      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      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,    -1,    79,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,   107,   108,   109,    -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,     5,     6,     7,     8,    -1,    -1,    -1,    -1,   153, -      -1,   155,    -1,    -1,    -1,    -1,    20,    21,    22,    23, -      24,    25,    26,    27,    28,    29,    30,    31,    32,    33, -      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   183, -      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,    -1,    79,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +     190,    -1,    -1,    -1,    -1,    -1,   196,   197,   198,   199, +       3,     4,     5,     6,     7,     8,    -1,    -1,    -1,    -1, +      -1,   211,    -1,    -1,    -1,    -1,    -1,    20,    21,    22, +      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, +      33,    34,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    -1,    79,    80,    81,    82, +      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,   106,   107,   108,   109,    -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,     5,     6,     7,     8,    -1,    -1,    -1,    -1,   153, -      -1,   155,    -1,    -1,    -1,    -1,    20,    21,    22,    23, -      24,    25,    26,    27,    28,    29,    30,    31,    32,    33, -      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   183, -      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,    -1,    79,    80,    81,    82,    83, -      84,    -1,    -1,    87,    88,    -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,   107,   108,   109,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,     5,     6,     7,     8,    -1,   190,    -1,    -1, +      -1,    -1,    -1,   196,   197,   198,   199,    20,    21,    22, +      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, +      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    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,    -1,    79,    80,    81,    82, +      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   153, -      -1,   155,    -1,    -1,    -1,    -1,   160,    -1,    -1,    -1, -      -1,    -1,   166,   167,   168,   169,     3,     4,     5,     6, -       7,     8,    -1,    -1,    -1,    -1,    -1,   181,    -1,    -1, -      -1,    -1,    -1,    20,    21,    22,    23,    24,    25,    26, -      27,    28,    29,    30,    31,    32,    33,    34,    35,    -1, -      37,    -1,    39,    -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,    75,    76, -      77,    -1,    79,    80,    81,    82,    83,    84,    -1,    -1, -      87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106, -     107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,   153,    -1,   155,     5, -       6,     7,     8,   160,    -1,    -1,    -1,    -1,    -1,   166, -     167,   168,   169,    -1,    20,    21,    22,    23,    24,    25, -      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    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,    -1,    79,    80,    81,    82,    83,    84,    -1, -      -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,   107,   108,   109,    -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,     5,     6,     7,     8,    -1,   190,    -1,    -1, +     193,    -1,    -1,   196,   197,   198,   199,    20,    21,    22, +      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, +      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    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,    -1,    79,    80,    81,    82, +      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,    -1,   155, -       5,     6,     7,     8,   160,    -1,    -1,   163,    -1,    -1, -     166,   167,   168,   169,    -1,    20,    21,    22,    23,    24, -      25,    26,    27,    28,    29,    30,    31,    32,    33,    34, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    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,    -1,    79,    80,    81,    82,    83,    84, -      -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,   107,   108,   109,    -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,     5,     6,     7,     8,    -1,   190,    -1,    -1, +     193,    -1,    -1,   196,   197,   198,   199,    20,    21,    22, +      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, +      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    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,    -1,    79,    80,    81,    82, +      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,    -1, -     155,     5,     6,     7,     8,   160,    -1,    -1,   163,    -1, -      -1,   166,   167,   168,   169,    -1,    20,    21,    22,    23, -      24,    25,    26,    27,    28,    29,    30,    31,    32,    33, -      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      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,    -1,    79,    80,    81,    82,    83, -      84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,   107,   108,   109,    -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,   153, -      -1,   155,     5,     6,     7,     8,   160,    -1,    -1,   163, -      -1,    -1,   166,   167,   168,   169,    -1,    20,    21,    22, +      -1,    -1,     5,     6,     7,     8,    -1,   190,    -1,    -1, +     193,    -1,    -1,   196,   197,   198,   199,    20,    21,    22,        23,    24,    25,    26,    27,    28,    29,    30,    31,    32,        33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    44,    45,    46,    47,    48,    49,    50,    51,    52, @@ -1791,132 +1936,137 @@ 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, -     153,    -1,   155,     5,     6,     7,     8,   160,    -1,    -1, -      -1,    -1,    -1,   166,   167,   168,   169,    -1,    20,    21, -      22,    23,    24,    25,    26,    27,    28,    29,    30,    31, -      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    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,    -1,    79,    80,    81, -      82,    83,    84,    -1,    -1,    87,    88,    -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,   107,   108,   109,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,     5,     6,     7,     8,    -1,   190,    -1,    -1, +      -1,    -1,    -1,   196,   197,   198,   199,    20,    21,    22, +      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, +      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    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,    -1,    79,    80,    81,    82, +      83,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,   107,   108,   109,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,   153,    -1,   155,    -1,    -1,    -1,    -1,   160,    -1, -      -1,    -1,    -1,    -1,   166,   167,   168,   169,     0,    -1, -      -1,     3,     4,     5,     6,     7,     8,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21, -      22,    23,    24,    25,    26,    27,    28,    29,    30,    31, -      32,    33,    34,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    -1,    79,    -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,   106,   107,   108,   109,   110,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,     3,     4, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,    -1,    -1, +       3,     4,     5,     6,     7,     8,    -1,   190,    -1,    -1, +      -1,    -1,    -1,   196,   197,   198,   199,    20,    21,    22, +      23,    24,    25,    26,    27,    28,    29,    30,    31,    32, +      33,    34,    35,    -1,    37,    -1,    39,    -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,    75,    76,    77,    -1,    79,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,   106,   107,   108,   109,    -1,   111,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,     3,     4,         5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,        25,    26,    27,    28,    29,    30,    31,    32,    33,    34, -      35,   153,    37,   155,    39,    -1,    41,    42,    43,    44, +      35,   154,    37,   156,    39,    -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,        75,    76,    77,    -1,    79,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,   106,   107,   108,   109,   110,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,   119,     5,     6,     7,     8,    -1, +      -1,   106,   107,   108,   109,    -1,   111,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,   120,     5,     6,     7,     8,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      20,    21,    22,    23,    24,    25,    26,    27,    28,    29, -      30,    31,    32,    33,    34,    -1,    -1,    -1,   153,    -1, -     155,    -1,    -1,    -1,    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,    -1,    79, -      -1,    -1,    -1,    -1,    84,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,   109, -      -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,    32,    33,    34,    -1,    -1,    -1, -      -1,    -1,    -1,   153,    -1,   155,    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, -      -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    20,    21,    22,    23,    24,    25,    26,    27,    28, +      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,   154, +      -1,   156,    -1,    -1,    -1,    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,    -1, +      79,    -1,    -1,    -1,    -1,    84,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107, -     108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108, +     109,    -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,    32,    33,    34,    -1, -      -1,    -1,    -1,    -1,    -1,   153,    -1,   155,    44,    45, +      -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    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,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,   107,   108,   109,    -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,    32, +      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1, +     156,    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,    -1,    79,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,   153,    -1,   155 +      -1,   154,    -1,   156  };  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing     symbol of state STATE-NUM.  */  static const yytype_uint16 yystos[] =  { -       0,   111,   185,   187,    81,     0,   188,   116,   112,   186, -     189,    79,     3,     4,     5,     6,     7,     8,    20,    21, +       0,   112,   215,   217,    81,     0,   218,   117,   113,   216, +     219,    79,     3,     4,     5,     6,     7,     8,    20,    21,        22,    23,    24,    25,    26,    27,    28,    29,    30,    31,        32,    33,    34,    35,    37,    39,    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,    79,   106,   107,   108,   109,   110,   119, -     153,   155,   190,   220,   221,   222,   223,   224,   229,   230, -     231,   232,   233,   236,   238,   239,   240,   241,   242,   243, -     244,   245,   271,   272,   115,    36,    37,    40,    79,   182, -      79,   106,   238,   244,   160,   271,   181,   182,   258,   161, -     165,     4,    36,    37,    38,   226,   227,   237,   165,   181, -      79,    36,    40,   238,   240,   162,   241,    79,   182,   240, -     246,   247,   241,    79,   234,   235,     9,    10,    11,    13, +      75,    76,    77,    79,   106,   107,   108,   109,   111,   120, +     154,   156,   220,   250,   251,   252,   253,   254,   259,   260, +     261,   262,   263,   266,   268,   269,   270,   271,   272,   273, +     274,   275,   301,   302,   116,    36,    37,    40,    79,   212, +      79,   106,   268,   274,   190,   301,   211,   212,   288,   191, +     195,     4,    36,    37,    38,   256,   257,   267,   195,   211, +      79,    36,    40,   268,   270,   192,   271,    79,   212,   270, +     276,   277,   271,    79,   264,   265,     9,    10,    11,    13,        14,    15,    16,    17,    18,    19,    78,    79,    80,    81, -      82,    83,    84,    87,    88,   160,   166,   167,   168,   169, -     181,   182,   183,   191,   192,   193,   195,   196,   197,   198, -     199,   200,   201,   202,   203,   204,   205,   206,   207,   208, -     209,   210,   211,   212,   213,   214,   215,   216,   218,   220, -     221,   240,   251,   252,   253,   254,   255,   256,   259,   260, -     261,   262,   264,   265,   266,   270,   226,   225,   228,   240, -     227,    79,   160,   162,   180,   163,   202,   215,   219,   240, -     116,   246,    79,   248,   249,   183,   247,   181,   161,   165, -     181,   181,   252,   160,   160,   181,   181,   218,   160,   218, -     179,   160,   202,   202,   218,   183,   259,    87,    88,   162, -     164,   161,   161,   165,    77,   216,   160,    96,    97,    98, -      99,   100,   101,   102,   103,   104,   105,   180,   217,   202, -     170,   171,   172,   166,   167,    85,    86,    89,    90,   173, -     174,    91,    92,   175,   176,   177,    93,    95,    94,   178, -     165,   181,   183,   252,    79,   225,   228,   162,   180,   163, -     219,   216,   250,   163,   183,   162,   165,   181,   235,    78, -     251,   260,   267,   218,   181,   218,   179,   218,   231,   263, -     161,   183,   194,   218,    79,   197,   216,   216,   202,   202, -     202,   204,   204,   205,   205,   206,   206,   206,   206,   207, -     207,   208,   209,   210,   211,   212,   213,   218,   216,   162, -     163,   219,   250,   180,   163,   219,   249,   160,   263,   268, -     269,   161,   161,    79,   161,   163,   179,   219,   180,   163, -     250,   180,   163,   218,   181,   161,   253,   254,   256,   180, -      14,   255,   257,   258,   216,   163,   250,   180,   250,   161, -     218,   257,    12,   250,   160,   250,   181,   253,   254,   218, -     161,   253,    12 +      82,    83,    84,    87,    88,   190,   196,   197,   198,   199, +     211,   212,   213,   221,   222,   223,   225,   226,   227,   228, +     229,   230,   231,   232,   233,   234,   235,   236,   237,   238, +     239,   240,   241,   242,   243,   244,   245,   246,   248,   250, +     251,   270,   281,   282,   283,   284,   285,   286,   289,   290, +     291,   292,   294,   295,   296,   300,   256,   255,   258,   270, +     257,    79,   190,   192,   210,   193,   232,   245,   249,   270, +     117,   276,    79,   278,   279,   213,   277,   211,   191,   195, +     211,   211,   282,   190,   190,   211,   211,   248,   190,   248, +     209,   190,   232,   232,   248,   213,   289,    87,    88,   192, +     194,   191,   191,   195,    77,   246,   190,    96,    97,    98, +      99,   100,   101,   102,   103,   104,   105,   210,   247,   232, +     200,   201,   202,   196,   197,    85,    86,    89,    90,   203, +     204,    91,    92,   205,   206,   207,    93,    95,    94,   208, +     195,   211,   213,   282,    79,   255,   258,   192,   210,   193, +     249,   246,   280,   193,   213,   192,   195,   211,   265,    78, +     281,   290,   297,   248,   211,   248,   209,   248,   261,   293, +     191,   213,   224,   248,    79,   227,   246,   246,   232,   232, +     232,   234,   234,   235,   235,   236,   236,   236,   236,   237, +     237,   238,   239,   240,   241,   242,   243,   248,   246,   192, +     193,   249,   280,   210,   193,   249,   279,   190,   293,   298, +     299,   191,   191,    79,   191,   193,   209,   249,   210,   193, +     280,   210,   193,   248,   211,   191,   283,   284,   286,   210, +      14,   285,   287,   288,   246,   193,   280,   210,   280,   191, +     248,   287,    12,   280,   190,   280,   211,   283,   284,   248, +     191,   283,    12  };  #define yyerrok		(yyerrstatus = 0) @@ -1931,9 +2081,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) @@ -1990,7 +2149,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,	\ @@ -2579,7 +2738,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; @@ -2769,8 +2928,8 @@ yyreduce:      {          case 2: -/* Line 1455 of yacc.c  */ -#line 193 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 200 "glsl_parser.ypp"      {  	   _mesa_glsl_initialize_types(state);  	;} @@ -2778,8 +2937,8 @@ yyreduce:    case 4: -/* Line 1455 of yacc.c  */ -#line 201 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 208 "glsl_parser.ypp"      {  	   state->language_version = 110;  	;} @@ -2787,8 +2946,8 @@ yyreduce:    case 5: -/* Line 1455 of yacc.c  */ -#line 205 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 212 "glsl_parser.ypp"      {  	   switch ((yyvsp[(2) - (3)].n)) {  	   case 110: @@ -2807,8 +2966,8 @@ yyreduce:    case 8: -/* Line 1455 of yacc.c  */ -#line 228 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 235 "glsl_parser.ypp"      {  	   if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {  	      YYERROR; @@ -2818,8 +2977,8 @@ yyreduce:    case 9: -/* Line 1455 of yacc.c  */ -#line 237 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 244 "glsl_parser.ypp"      {  	   /* FINISHME: The NULL test is only required because 'precision'  	    * FINISHME: statements are not yet supported. @@ -2831,8 +2990,8 @@ yyreduce:    case 10: -/* Line 1455 of yacc.c  */ -#line 245 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 252 "glsl_parser.ypp"      {  	   /* FINISHME: The NULL test is only required because 'precision'  	    * FINISHME: statements are not yet supported. @@ -2844,8 +3003,8 @@ yyreduce:    case 12: -/* Line 1455 of yacc.c  */ -#line 260 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 267 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL); @@ -2856,8 +3015,8 @@ yyreduce:    case 13: -/* Line 1455 of yacc.c  */ -#line 267 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 274 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL); @@ -2868,8 +3027,8 @@ yyreduce:    case 14: -/* Line 1455 of yacc.c  */ -#line 274 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 281 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL); @@ -2880,8 +3039,8 @@ yyreduce:    case 15: -/* Line 1455 of yacc.c  */ -#line 281 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 288 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL); @@ -2892,8 +3051,8 @@ yyreduce:    case 16: -/* Line 1455 of yacc.c  */ -#line 288 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 295 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL); @@ -2904,8 +3063,8 @@ yyreduce:    case 17: -/* Line 1455 of yacc.c  */ -#line 295 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 302 "glsl_parser.ypp"      {  	   (yyval.expression) = (yyvsp[(2) - (3)].expression);  	;} @@ -2913,8 +3072,8 @@ yyreduce:    case 19: -/* Line 1455 of yacc.c  */ -#line 303 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 310 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL); @@ -2924,8 +3083,8 @@ yyreduce:    case 20: -/* Line 1455 of yacc.c  */ -#line 309 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 316 "glsl_parser.ypp"      {  	   (yyval.expression) = (yyvsp[(1) - (1)].expression);  	;} @@ -2933,8 +3092,8 @@ yyreduce:    case 21: -/* Line 1455 of yacc.c  */ -#line 313 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 320 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL); @@ -2945,8 +3104,8 @@ yyreduce:    case 22: -/* Line 1455 of yacc.c  */ -#line 320 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 327 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL); @@ -2956,8 +3115,8 @@ yyreduce:    case 23: -/* Line 1455 of yacc.c  */ -#line 326 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 333 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL); @@ -2967,8 +3126,8 @@ yyreduce:    case 27: -/* Line 1455 of yacc.c  */ -#line 344 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 351 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); @@ -2978,8 +3137,8 @@ yyreduce:    case 32: -/* Line 1455 of yacc.c  */ -#line 363 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 370 "glsl_parser.ypp"      {  	   (yyval.expression) = (yyvsp[(1) - (2)].expression);  	   (yyval.expression)->set_location(yylloc); @@ -2989,8 +3148,8 @@ yyreduce:    case 33: -/* Line 1455 of yacc.c  */ -#line 369 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 376 "glsl_parser.ypp"      {  	   (yyval.expression) = (yyvsp[(1) - (3)].expression);  	   (yyval.expression)->set_location(yylloc); @@ -3000,8 +3159,8 @@ yyreduce:    case 35: -/* Line 1455 of yacc.c  */ -#line 385 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 392 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier)); @@ -3011,8 +3170,8 @@ yyreduce:    case 36: -/* Line 1455 of yacc.c  */ -#line 391 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 398 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier)); @@ -3023,8 +3182,8 @@ yyreduce:    case 37: -/* Line 1455 of yacc.c  */ -#line 398 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 405 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier)); @@ -3035,8 +3194,8 @@ yyreduce:    case 39: -/* Line 1455 of yacc.c  */ -#line 410 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 417 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3046,8 +3205,8 @@ yyreduce:    case 40: -/* Line 1455 of yacc.c  */ -#line 416 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 423 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3057,8 +3216,8 @@ yyreduce:    case 41: -/* Line 1455 of yacc.c  */ -#line 422 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 429 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3068,36 +3227,36 @@ yyreduce:    case 42: -/* Line 1455 of yacc.c  */ -#line 431 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 438 "glsl_parser.ypp"      { (yyval.n) = ast_plus; ;}      break;    case 43: -/* Line 1455 of yacc.c  */ -#line 432 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 439 "glsl_parser.ypp"      { (yyval.n) = ast_neg; ;}      break;    case 44: -/* Line 1455 of yacc.c  */ -#line 433 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 440 "glsl_parser.ypp"      { (yyval.n) = ast_logic_not; ;}      break;    case 45: -/* Line 1455 of yacc.c  */ -#line 434 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 441 "glsl_parser.ypp"      { (yyval.n) = ast_bit_not; ;}      break;    case 47: -/* Line 1455 of yacc.c  */ -#line 440 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 447 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3107,8 +3266,8 @@ yyreduce:    case 48: -/* Line 1455 of yacc.c  */ -#line 446 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 453 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3118,8 +3277,8 @@ yyreduce:    case 49: -/* Line 1455 of yacc.c  */ -#line 452 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 459 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3129,8 +3288,8 @@ yyreduce:    case 51: -/* Line 1455 of yacc.c  */ -#line 462 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 469 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3140,8 +3299,8 @@ yyreduce:    case 52: -/* Line 1455 of yacc.c  */ -#line 468 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 475 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3151,8 +3310,8 @@ yyreduce:    case 54: -/* Line 1455 of yacc.c  */ -#line 478 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 485 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3162,8 +3321,8 @@ yyreduce:    case 55: -/* Line 1455 of yacc.c  */ -#line 484 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 491 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3173,8 +3332,8 @@ yyreduce:    case 57: -/* Line 1455 of yacc.c  */ -#line 494 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 501 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3184,8 +3343,8 @@ yyreduce:    case 58: -/* Line 1455 of yacc.c  */ -#line 500 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 507 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3195,8 +3354,8 @@ yyreduce:    case 59: -/* Line 1455 of yacc.c  */ -#line 506 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 513 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3206,8 +3365,8 @@ yyreduce:    case 60: -/* Line 1455 of yacc.c  */ -#line 512 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 519 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3217,8 +3376,8 @@ yyreduce:    case 62: -/* Line 1455 of yacc.c  */ -#line 522 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 529 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3228,8 +3387,8 @@ yyreduce:    case 63: -/* Line 1455 of yacc.c  */ -#line 528 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 535 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3239,8 +3398,8 @@ yyreduce:    case 65: -/* Line 1455 of yacc.c  */ -#line 538 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 545 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3250,8 +3409,8 @@ yyreduce:    case 67: -/* Line 1455 of yacc.c  */ -#line 548 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 555 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3261,8 +3420,8 @@ yyreduce:    case 69: -/* Line 1455 of yacc.c  */ -#line 558 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 565 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3272,8 +3431,8 @@ yyreduce:    case 71: -/* Line 1455 of yacc.c  */ -#line 568 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 575 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3283,8 +3442,8 @@ yyreduce:    case 73: -/* Line 1455 of yacc.c  */ -#line 578 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 585 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3294,8 +3453,8 @@ yyreduce:    case 75: -/* Line 1455 of yacc.c  */ -#line 588 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 595 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3305,8 +3464,8 @@ yyreduce:    case 77: -/* Line 1455 of yacc.c  */ -#line 598 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 605 "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)); @@ -3316,8 +3475,8 @@ yyreduce:    case 79: -/* Line 1455 of yacc.c  */ -#line 608 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 615 "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); @@ -3327,85 +3486,85 @@ yyreduce:    case 80: -/* Line 1455 of yacc.c  */ -#line 616 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 623 "glsl_parser.ypp"      { (yyval.n) = ast_assign; ;}      break;    case 81: -/* Line 1455 of yacc.c  */ -#line 617 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 624 "glsl_parser.ypp"      { (yyval.n) = ast_mul_assign; ;}      break;    case 82: -/* Line 1455 of yacc.c  */ -#line 618 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 625 "glsl_parser.ypp"      { (yyval.n) = ast_div_assign; ;}      break;    case 83: -/* Line 1455 of yacc.c  */ -#line 619 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 626 "glsl_parser.ypp"      { (yyval.n) = ast_mod_assign; ;}      break;    case 84: -/* Line 1455 of yacc.c  */ -#line 620 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 627 "glsl_parser.ypp"      { (yyval.n) = ast_add_assign; ;}      break;    case 85: -/* Line 1455 of yacc.c  */ -#line 621 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 628 "glsl_parser.ypp"      { (yyval.n) = ast_sub_assign; ;}      break;    case 86: -/* Line 1455 of yacc.c  */ -#line 622 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 629 "glsl_parser.ypp"      { (yyval.n) = ast_ls_assign; ;}      break;    case 87: -/* Line 1455 of yacc.c  */ -#line 623 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 630 "glsl_parser.ypp"      { (yyval.n) = ast_rs_assign; ;}      break;    case 88: -/* Line 1455 of yacc.c  */ -#line 624 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 631 "glsl_parser.ypp"      { (yyval.n) = ast_and_assign; ;}      break;    case 89: -/* Line 1455 of yacc.c  */ -#line 625 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 632 "glsl_parser.ypp"      { (yyval.n) = ast_xor_assign; ;}      break;    case 90: -/* Line 1455 of yacc.c  */ -#line 626 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 633 "glsl_parser.ypp"      { (yyval.n) = ast_or_assign; ;}      break;    case 91: -/* Line 1455 of yacc.c  */ -#line 631 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 638 "glsl_parser.ypp"      {  	   (yyval.expression) = (yyvsp[(1) - (1)].expression);  	;} @@ -3413,8 +3572,8 @@ yyreduce:    case 92: -/* Line 1455 of yacc.c  */ -#line 635 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 642 "glsl_parser.ypp"      {  	   void *ctx = state;  	   if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) { @@ -3431,8 +3590,8 @@ yyreduce:    case 94: -/* Line 1455 of yacc.c  */ -#line 655 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 662 "glsl_parser.ypp"      {  	   (yyval.node) = (yyvsp[(1) - (2)].function);  	;} @@ -3440,8 +3599,8 @@ yyreduce:    case 95: -/* Line 1455 of yacc.c  */ -#line 659 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 666 "glsl_parser.ypp"      {  	   (yyval.node) = (yyvsp[(1) - (2)].declarator_list);  	;} @@ -3449,8 +3608,8 @@ yyreduce:    case 96: -/* Line 1455 of yacc.c  */ -#line 663 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 670 "glsl_parser.ypp"      {  	   if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float)  	       && ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)) { @@ -3465,8 +3624,8 @@ yyreduce:    case 100: -/* Line 1455 of yacc.c  */ -#line 686 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 693 "glsl_parser.ypp"      {  	   (yyval.function) = (yyvsp[(1) - (2)].function);  	   (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link); @@ -3475,8 +3634,8 @@ yyreduce:    case 101: -/* Line 1455 of yacc.c  */ -#line 691 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 698 "glsl_parser.ypp"      {  	   (yyval.function) = (yyvsp[(1) - (3)].function);  	   (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link); @@ -3485,8 +3644,8 @@ yyreduce:    case 102: -/* Line 1455 of yacc.c  */ -#line 699 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 706 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.function) = new(ctx) ast_function(); @@ -3498,8 +3657,8 @@ yyreduce:    case 103: -/* Line 1455 of yacc.c  */ -#line 710 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 717 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3513,8 +3672,8 @@ yyreduce:    case 104: -/* Line 1455 of yacc.c  */ -#line 720 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 727 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3530,8 +3689,8 @@ yyreduce:    case 105: -/* Line 1455 of yacc.c  */ -#line 735 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 742 "glsl_parser.ypp"      {  	   (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i; @@ -3542,8 +3701,8 @@ yyreduce:    case 106: -/* Line 1455 of yacc.c  */ -#line 742 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 749 "glsl_parser.ypp"      {  	   (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);  	   (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier).q; @@ -3552,8 +3711,8 @@ yyreduce:    case 107: -/* Line 1455 of yacc.c  */ -#line 747 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 754 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i; @@ -3568,8 +3727,8 @@ yyreduce:    case 108: -/* Line 1455 of yacc.c  */ -#line 758 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 765 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3582,36 +3741,36 @@ yyreduce:    case 109: -/* Line 1455 of yacc.c  */ -#line 769 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 776 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; ;}      break;    case 110: -/* Line 1455 of yacc.c  */ -#line 770 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 777 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;}      break;    case 111: -/* Line 1455 of yacc.c  */ -#line 771 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 778 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;}      break;    case 112: -/* Line 1455 of yacc.c  */ -#line 772 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 779 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; (yyval.type_qualifier).q.out = 1; ;}      break;    case 115: -/* Line 1455 of yacc.c  */ -#line 782 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 789 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL); @@ -3624,8 +3783,8 @@ yyreduce:    case 116: -/* Line 1455 of yacc.c  */ -#line 791 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 798 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL); @@ -3638,8 +3797,8 @@ yyreduce:    case 117: -/* Line 1455 of yacc.c  */ -#line 800 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 807 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL); @@ -3652,8 +3811,8 @@ yyreduce:    case 118: -/* Line 1455 of yacc.c  */ -#line 809 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 816 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression)); @@ -3666,8 +3825,8 @@ yyreduce:    case 119: -/* Line 1455 of yacc.c  */ -#line 818 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 825 "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)); @@ -3680,8 +3839,8 @@ yyreduce:    case 120: -/* Line 1455 of yacc.c  */ -#line 827 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 834 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression)); @@ -3694,8 +3853,8 @@ yyreduce:    case 121: -/* Line 1455 of yacc.c  */ -#line 840 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 847 "glsl_parser.ypp"      {  	   void *ctx = state;  	   if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) { @@ -3710,8 +3869,8 @@ yyreduce:    case 122: -/* Line 1455 of yacc.c  */ -#line 851 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 858 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL); @@ -3724,8 +3883,8 @@ yyreduce:    case 123: -/* Line 1455 of yacc.c  */ -#line 860 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 867 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL); @@ -3738,8 +3897,8 @@ yyreduce:    case 124: -/* Line 1455 of yacc.c  */ -#line 869 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 876 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL); @@ -3752,8 +3911,8 @@ yyreduce:    case 125: -/* Line 1455 of yacc.c  */ -#line 878 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 885 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression)); @@ -3766,8 +3925,8 @@ yyreduce:    case 126: -/* Line 1455 of yacc.c  */ -#line 887 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 894 "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)); @@ -3780,8 +3939,8 @@ yyreduce:    case 127: -/* Line 1455 of yacc.c  */ -#line 896 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 903 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression)); @@ -3794,8 +3953,8 @@ yyreduce:    case 128: -/* Line 1455 of yacc.c  */ -#line 905 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 912 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL); @@ -3810,8 +3969,8 @@ yyreduce:    case 129: -/* Line 1455 of yacc.c  */ -#line 919 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 926 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); @@ -3822,8 +3981,8 @@ yyreduce:    case 130: -/* Line 1455 of yacc.c  */ -#line 926 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 933 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); @@ -3835,15 +3994,15 @@ yyreduce:    case 131: -/* Line 1455 of yacc.c  */ -#line 936 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 943 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; ;}      break;    case 133: -/* Line 1455 of yacc.c  */ -#line 942 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 949 "glsl_parser.ypp"      {  	  (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);  	;} @@ -3851,8 +4010,8 @@ yyreduce:    case 135: -/* Line 1455 of yacc.c  */ -#line 950 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 957 "glsl_parser.ypp"      {  	   (yyval.type_qualifier).i = (yyvsp[(1) - (3)].type_qualifier).i | (yyvsp[(3) - (3)].type_qualifier).i;  	;} @@ -3860,8 +4019,8 @@ yyreduce:    case 136: -/* Line 1455 of yacc.c  */ -#line 957 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 964 "glsl_parser.ypp"      {  	   (yyval.type_qualifier).i = 0; @@ -3896,36 +4055,36 @@ yyreduce:    case 137: -/* Line 1455 of yacc.c  */ -#line 990 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 997 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.smooth = 1; ;}      break;    case 138: -/* Line 1455 of yacc.c  */ -#line 991 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 998 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.flat = 1; ;}      break;    case 139: -/* Line 1455 of yacc.c  */ -#line 992 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 999 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.noperspective = 1; ;}      break;    case 140: -/* Line 1455 of yacc.c  */ -#line 996 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1003 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;}      break;    case 142: -/* Line 1455 of yacc.c  */ -#line 1002 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1009 "glsl_parser.ypp"      {  	   (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i | (yyvsp[(2) - (2)].type_qualifier).i;  	;} @@ -3933,8 +4092,8 @@ yyreduce:    case 143: -/* Line 1455 of yacc.c  */ -#line 1006 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1013 "glsl_parser.ypp"      {  	   (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);  	   (yyval.type_qualifier).q.invariant = 1; @@ -3943,71 +4102,71 @@ yyreduce:    case 144: -/* Line 1455 of yacc.c  */ -#line 1013 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1020 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;}      break;    case 145: -/* Line 1455 of yacc.c  */ -#line 1014 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1021 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.attribute = 1; ;}      break;    case 146: -/* Line 1455 of yacc.c  */ -#line 1015 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1022 "glsl_parser.ypp"      { (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i; (yyval.type_qualifier).q.varying = 1; ;}      break;    case 147: -/* Line 1455 of yacc.c  */ -#line 1016 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1023 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.varying = 1; ;}      break;    case 148: -/* Line 1455 of yacc.c  */ -#line 1017 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1024 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;}      break;    case 149: -/* Line 1455 of yacc.c  */ -#line 1018 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1025 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;}      break;    case 150: -/* Line 1455 of yacc.c  */ -#line 1019 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1026 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.in = 1; ;}      break;    case 151: -/* Line 1455 of yacc.c  */ -#line 1020 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1027 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.out = 1; ;}      break;    case 152: -/* Line 1455 of yacc.c  */ -#line 1021 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1028 "glsl_parser.ypp"      { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.uniform = 1; ;}      break;    case 154: -/* Line 1455 of yacc.c  */ -#line 1027 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1034 "glsl_parser.ypp"      {  	   (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);  	   (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n); @@ -4016,8 +4175,8 @@ yyreduce:    case 156: -/* Line 1455 of yacc.c  */ -#line 1036 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1043 "glsl_parser.ypp"      {  	   (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);  	   (yyval.type_specifier)->is_array = true; @@ -4027,8 +4186,8 @@ yyreduce:    case 157: -/* Line 1455 of yacc.c  */ -#line 1042 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1049 "glsl_parser.ypp"      {  	   (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);  	   (yyval.type_specifier)->is_array = true; @@ -4038,8 +4197,8 @@ yyreduce:    case 158: -/* Line 1455 of yacc.c  */ -#line 1051 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1058 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n)); @@ -4049,8 +4208,8 @@ yyreduce:    case 159: -/* Line 1455 of yacc.c  */ -#line 1057 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1064 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier)); @@ -4060,8 +4219,8 @@ yyreduce:    case 160: -/* Line 1455 of yacc.c  */ -#line 1063 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1070 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier)); @@ -4071,386 +4230,386 @@ yyreduce:    case 161: -/* Line 1455 of yacc.c  */ -#line 1071 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1078 "glsl_parser.ypp"      { (yyval.n) = ast_void; ;}      break;    case 162: -/* Line 1455 of yacc.c  */ -#line 1072 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1079 "glsl_parser.ypp"      { (yyval.n) = ast_float; ;}      break;    case 163: -/* Line 1455 of yacc.c  */ -#line 1073 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1080 "glsl_parser.ypp"      { (yyval.n) = ast_int; ;}      break;    case 164: -/* Line 1455 of yacc.c  */ -#line 1074 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1081 "glsl_parser.ypp"      { (yyval.n) = ast_uint; ;}      break;    case 165: -/* Line 1455 of yacc.c  */ -#line 1075 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1082 "glsl_parser.ypp"      { (yyval.n) = ast_bool; ;}      break;    case 166: -/* Line 1455 of yacc.c  */ -#line 1076 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1083 "glsl_parser.ypp"      { (yyval.n) = ast_vec2; ;}      break;    case 167: -/* Line 1455 of yacc.c  */ -#line 1077 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1084 "glsl_parser.ypp"      { (yyval.n) = ast_vec3; ;}      break;    case 168: -/* Line 1455 of yacc.c  */ -#line 1078 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1085 "glsl_parser.ypp"      { (yyval.n) = ast_vec4; ;}      break;    case 169: -/* Line 1455 of yacc.c  */ -#line 1079 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1086 "glsl_parser.ypp"      { (yyval.n) = ast_bvec2; ;}      break;    case 170: -/* Line 1455 of yacc.c  */ -#line 1080 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1087 "glsl_parser.ypp"      { (yyval.n) = ast_bvec3; ;}      break;    case 171: -/* Line 1455 of yacc.c  */ -#line 1081 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1088 "glsl_parser.ypp"      { (yyval.n) = ast_bvec4; ;}      break;    case 172: -/* Line 1455 of yacc.c  */ -#line 1082 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1089 "glsl_parser.ypp"      { (yyval.n) = ast_ivec2; ;}      break;    case 173: -/* Line 1455 of yacc.c  */ -#line 1083 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1090 "glsl_parser.ypp"      { (yyval.n) = ast_ivec3; ;}      break;    case 174: -/* Line 1455 of yacc.c  */ -#line 1084 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1091 "glsl_parser.ypp"      { (yyval.n) = ast_ivec4; ;}      break;    case 175: -/* Line 1455 of yacc.c  */ -#line 1085 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1092 "glsl_parser.ypp"      { (yyval.n) = ast_uvec2; ;}      break;    case 176: -/* Line 1455 of yacc.c  */ -#line 1086 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1093 "glsl_parser.ypp"      { (yyval.n) = ast_uvec3; ;}      break;    case 177: -/* Line 1455 of yacc.c  */ -#line 1087 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1094 "glsl_parser.ypp"      { (yyval.n) = ast_uvec4; ;}      break;    case 178: -/* Line 1455 of yacc.c  */ -#line 1088 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1095 "glsl_parser.ypp"      { (yyval.n) = ast_mat2; ;}      break;    case 179: -/* Line 1455 of yacc.c  */ -#line 1089 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1096 "glsl_parser.ypp"      { (yyval.n) = ast_mat3; ;}      break;    case 180: -/* Line 1455 of yacc.c  */ -#line 1090 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1097 "glsl_parser.ypp"      { (yyval.n) = ast_mat4; ;}      break;    case 181: -/* Line 1455 of yacc.c  */ -#line 1091 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1098 "glsl_parser.ypp"      { (yyval.n) = ast_mat2; ;}      break;    case 182: -/* Line 1455 of yacc.c  */ -#line 1092 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1099 "glsl_parser.ypp"      { (yyval.n) = ast_mat2x3; ;}      break;    case 183: -/* Line 1455 of yacc.c  */ -#line 1093 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1100 "glsl_parser.ypp"      { (yyval.n) = ast_mat2x4; ;}      break;    case 184: -/* Line 1455 of yacc.c  */ -#line 1094 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1101 "glsl_parser.ypp"      { (yyval.n) = ast_mat3x2; ;}      break;    case 185: -/* Line 1455 of yacc.c  */ -#line 1095 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1102 "glsl_parser.ypp"      { (yyval.n) = ast_mat3; ;}      break;    case 186: -/* Line 1455 of yacc.c  */ -#line 1096 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1103 "glsl_parser.ypp"      { (yyval.n) = ast_mat3x4; ;}      break;    case 187: -/* Line 1455 of yacc.c  */ -#line 1097 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1104 "glsl_parser.ypp"      { (yyval.n) = ast_mat4x2; ;}      break;    case 188: -/* Line 1455 of yacc.c  */ -#line 1098 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1105 "glsl_parser.ypp"      { (yyval.n) = ast_mat4x3; ;}      break;    case 189: -/* Line 1455 of yacc.c  */ -#line 1099 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1106 "glsl_parser.ypp"      { (yyval.n) = ast_mat4; ;}      break;    case 190: -/* Line 1455 of yacc.c  */ -#line 1100 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1107 "glsl_parser.ypp"      { (yyval.n) = ast_sampler1d; ;}      break;    case 191: -/* Line 1455 of yacc.c  */ -#line 1101 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1108 "glsl_parser.ypp"      { (yyval.n) = ast_sampler2d; ;}      break;    case 192: -/* Line 1455 of yacc.c  */ -#line 1102 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1109 "glsl_parser.ypp"      { (yyval.n) = ast_sampler2drect; ;}      break;    case 193: -/* Line 1455 of yacc.c  */ -#line 1103 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1110 "glsl_parser.ypp"      { (yyval.n) = ast_sampler3d; ;}      break;    case 194: -/* Line 1455 of yacc.c  */ -#line 1104 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1111 "glsl_parser.ypp"      { (yyval.n) = ast_samplercube; ;}      break;    case 195: -/* Line 1455 of yacc.c  */ -#line 1105 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1112 "glsl_parser.ypp"      { (yyval.n) = ast_sampler1dshadow; ;}      break;    case 196: -/* Line 1455 of yacc.c  */ -#line 1106 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1113 "glsl_parser.ypp"      { (yyval.n) = ast_sampler2dshadow; ;}      break;    case 197: -/* Line 1455 of yacc.c  */ -#line 1107 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1114 "glsl_parser.ypp"      { (yyval.n) = ast_sampler2drectshadow; ;}      break;    case 198: -/* Line 1455 of yacc.c  */ -#line 1108 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1115 "glsl_parser.ypp"      { (yyval.n) = ast_samplercubeshadow; ;}      break;    case 199: -/* Line 1455 of yacc.c  */ -#line 1109 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1116 "glsl_parser.ypp"      { (yyval.n) = ast_sampler1darray; ;}      break;    case 200: -/* Line 1455 of yacc.c  */ -#line 1110 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1117 "glsl_parser.ypp"      { (yyval.n) = ast_sampler2darray; ;}      break;    case 201: -/* Line 1455 of yacc.c  */ -#line 1111 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1118 "glsl_parser.ypp"      { (yyval.n) = ast_sampler1darrayshadow; ;}      break;    case 202: -/* Line 1455 of yacc.c  */ -#line 1112 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1119 "glsl_parser.ypp"      { (yyval.n) = ast_sampler2darrayshadow; ;}      break;    case 203: -/* Line 1455 of yacc.c  */ -#line 1113 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1120 "glsl_parser.ypp"      { (yyval.n) = ast_isampler1d; ;}      break;    case 204: -/* Line 1455 of yacc.c  */ -#line 1114 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1121 "glsl_parser.ypp"      { (yyval.n) = ast_isampler2d; ;}      break;    case 205: -/* Line 1455 of yacc.c  */ -#line 1115 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1122 "glsl_parser.ypp"      { (yyval.n) = ast_isampler3d; ;}      break;    case 206: -/* Line 1455 of yacc.c  */ -#line 1116 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1123 "glsl_parser.ypp"      { (yyval.n) = ast_isamplercube; ;}      break;    case 207: -/* Line 1455 of yacc.c  */ -#line 1117 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1124 "glsl_parser.ypp"      { (yyval.n) = ast_isampler1darray; ;}      break;    case 208: -/* Line 1455 of yacc.c  */ -#line 1118 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1125 "glsl_parser.ypp"      { (yyval.n) = ast_isampler2darray; ;}      break;    case 209: -/* Line 1455 of yacc.c  */ -#line 1119 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1126 "glsl_parser.ypp"      { (yyval.n) = ast_usampler1d; ;}      break;    case 210: -/* Line 1455 of yacc.c  */ -#line 1120 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1127 "glsl_parser.ypp"      { (yyval.n) = ast_usampler2d; ;}      break;    case 211: -/* Line 1455 of yacc.c  */ -#line 1121 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1128 "glsl_parser.ypp"      { (yyval.n) = ast_usampler3d; ;}      break;    case 212: -/* Line 1455 of yacc.c  */ -#line 1122 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1129 "glsl_parser.ypp"      { (yyval.n) = ast_usamplercube; ;}      break;    case 213: -/* Line 1455 of yacc.c  */ -#line 1123 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1130 "glsl_parser.ypp"      { (yyval.n) = ast_usampler1darray; ;}      break;    case 214: -/* Line 1455 of yacc.c  */ -#line 1124 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1131 "glsl_parser.ypp"      { (yyval.n) = ast_usampler2darray; ;}      break;    case 215: -/* Line 1455 of yacc.c  */ -#line 1128 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1135 "glsl_parser.ypp"      {  			   if (state->language_version < 130)  			      _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4466,8 +4625,8 @@ yyreduce:    case 216: -/* Line 1455 of yacc.c  */ -#line 1139 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1146 "glsl_parser.ypp"      {  			   if (state->language_version < 130)  			      _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4483,8 +4642,8 @@ yyreduce:    case 217: -/* Line 1455 of yacc.c  */ -#line 1150 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1157 "glsl_parser.ypp"      {  			   if (state->language_version < 130)  			      _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4500,8 +4659,8 @@ yyreduce:    case 218: -/* Line 1455 of yacc.c  */ -#line 1165 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1172 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node)); @@ -4511,8 +4670,8 @@ yyreduce:    case 219: -/* Line 1455 of yacc.c  */ -#line 1171 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1178 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node)); @@ -4522,8 +4681,8 @@ yyreduce:    case 220: -/* Line 1455 of yacc.c  */ -#line 1180 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1187 "glsl_parser.ypp"      {  	   (yyval.node) = (struct ast_node *) (yyvsp[(1) - (1)].declarator_list);  	   (yyvsp[(1) - (1)].declarator_list)->link.self_link(); @@ -4532,8 +4691,8 @@ yyreduce:    case 221: -/* Line 1455 of yacc.c  */ -#line 1185 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1192 "glsl_parser.ypp"      {  	   (yyval.node) = (struct ast_node *) (yyvsp[(1) - (2)].node);  	   (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link); @@ -4542,8 +4701,8 @@ yyreduce:    case 222: -/* Line 1455 of yacc.c  */ -#line 1193 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1200 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_fully_specified_type *type = new(ctx) ast_fully_specified_type(); @@ -4559,8 +4718,8 @@ yyreduce:    case 223: -/* Line 1455 of yacc.c  */ -#line 1208 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1215 "glsl_parser.ypp"      {  	   (yyval.declaration) = (yyvsp[(1) - (1)].declaration);  	   (yyvsp[(1) - (1)].declaration)->link.self_link(); @@ -4569,8 +4728,8 @@ yyreduce:    case 224: -/* Line 1455 of yacc.c  */ -#line 1213 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1220 "glsl_parser.ypp"      {  	   (yyval.declaration) = (yyvsp[(1) - (3)].declaration);  	   (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link); @@ -4579,8 +4738,8 @@ yyreduce:    case 225: -/* Line 1455 of yacc.c  */ -#line 1221 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1228 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL); @@ -4590,8 +4749,8 @@ yyreduce:    case 226: -/* Line 1455 of yacc.c  */ -#line 1227 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1234 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL); @@ -4601,29 +4760,29 @@ yyreduce:    case 231: -/* Line 1455 of yacc.c  */ -#line 1250 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1257 "glsl_parser.ypp"      { (yyval.node) = (struct ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}      break;    case 237: -/* Line 1455 of yacc.c  */ -#line 1262 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1269 "glsl_parser.ypp"      { (yyval.node) = NULL; ;}      break;    case 238: -/* Line 1455 of yacc.c  */ -#line 1263 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1270 "glsl_parser.ypp"      { (yyval.node) = NULL; ;}      break;    case 241: -/* Line 1455 of yacc.c  */ -#line 1270 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1277 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL); @@ -4633,8 +4792,8 @@ yyreduce:    case 242: -/* Line 1455 of yacc.c  */ -#line 1276 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1283 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node)); @@ -4644,15 +4803,15 @@ yyreduce:    case 243: -/* Line 1455 of yacc.c  */ -#line 1284 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1291 "glsl_parser.ypp"      { (yyval.node) = (struct ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}      break;    case 245: -/* Line 1455 of yacc.c  */ -#line 1290 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1297 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL); @@ -4662,8 +4821,8 @@ yyreduce:    case 246: -/* Line 1455 of yacc.c  */ -#line 1296 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1303 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node)); @@ -4673,8 +4832,8 @@ yyreduce:    case 247: -/* Line 1455 of yacc.c  */ -#line 1305 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1312 "glsl_parser.ypp"      {  	   if ((yyvsp[(1) - (1)].node) == NULL) {  	      _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n"); @@ -4688,8 +4847,8 @@ yyreduce:    case 248: -/* Line 1455 of yacc.c  */ -#line 1315 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1322 "glsl_parser.ypp"      {  	   if ((yyvsp[(2) - (2)].node) == NULL) {  	      _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n"); @@ -4702,8 +4861,8 @@ yyreduce:    case 249: -/* Line 1455 of yacc.c  */ -#line 1327 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1334 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_expression_statement(NULL); @@ -4713,8 +4872,8 @@ yyreduce:    case 250: -/* Line 1455 of yacc.c  */ -#line 1333 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1340 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression)); @@ -4724,8 +4883,8 @@ yyreduce:    case 251: -/* Line 1455 of yacc.c  */ -#line 1342 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1349 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (7)].expression), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)); @@ -4735,8 +4894,8 @@ yyreduce:    case 252: -/* Line 1455 of yacc.c  */ -#line 1351 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1358 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].node), NULL); @@ -4746,8 +4905,8 @@ yyreduce:    case 253: -/* Line 1455 of yacc.c  */ -#line 1357 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1364 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].node), NULL); @@ -4757,8 +4916,8 @@ yyreduce:    case 254: -/* Line 1455 of yacc.c  */ -#line 1363 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1370 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_selection_statement((yyvsp[(3) - (7)].expression), (yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)); @@ -4768,8 +4927,8 @@ yyreduce:    case 255: -/* Line 1455 of yacc.c  */ -#line 1372 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1379 "glsl_parser.ypp"      {  	   (yyval.node) = (struct ast_node *) (yyvsp[(1) - (1)].expression);  	;} @@ -4777,8 +4936,8 @@ yyreduce:    case 256: -/* Line 1455 of yacc.c  */ -#line 1376 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1383 "glsl_parser.ypp"      {  	   void *ctx = state;  	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression)); @@ -4793,8 +4952,8 @@ yyreduce:    case 260: -/* Line 1455 of yacc.c  */ -#line 1399 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1406 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while, @@ -4805,8 +4964,8 @@ yyreduce:    case 261: -/* Line 1455 of yacc.c  */ -#line 1406 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1413 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while, @@ -4817,8 +4976,8 @@ yyreduce:    case 262: -/* Line 1455 of yacc.c  */ -#line 1413 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1420 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for, @@ -4829,8 +4988,8 @@ yyreduce:    case 266: -/* Line 1455 of yacc.c  */ -#line 1429 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1436 "glsl_parser.ypp"      {  	   (yyval.node) = NULL;  	;} @@ -4838,8 +4997,8 @@ yyreduce:    case 267: -/* Line 1455 of yacc.c  */ -#line 1436 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1443 "glsl_parser.ypp"      {  	   (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);  	   (yyval.for_rest_statement).rest = NULL; @@ -4848,8 +5007,8 @@ yyreduce:    case 268: -/* Line 1455 of yacc.c  */ -#line 1441 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1448 "glsl_parser.ypp"      {  	   (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);  	   (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression); @@ -4858,8 +5017,8 @@ yyreduce:    case 269: -/* Line 1455 of yacc.c  */ -#line 1450 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1457 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL); @@ -4869,8 +5028,8 @@ yyreduce:    case 270: -/* Line 1455 of yacc.c  */ -#line 1456 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1463 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL); @@ -4880,8 +5039,8 @@ yyreduce:    case 271: -/* Line 1455 of yacc.c  */ -#line 1462 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1469 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL); @@ -4891,8 +5050,8 @@ yyreduce:    case 272: -/* Line 1455 of yacc.c  */ -#line 1468 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1475 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression)); @@ -4902,8 +5061,8 @@ yyreduce:    case 273: -/* Line 1455 of yacc.c  */ -#line 1474 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1481 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL); @@ -4913,22 +5072,22 @@ yyreduce:    case 274: -/* Line 1455 of yacc.c  */ -#line 1482 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1489 "glsl_parser.ypp"      { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}      break;    case 275: -/* Line 1455 of yacc.c  */ -#line 1483 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1490 "glsl_parser.ypp"      { (yyval.node) = (yyvsp[(1) - (1)].node); ;}      break;    case 276: -/* Line 1455 of yacc.c  */ -#line 1488 "glsl_parser.ypp" +/* Line 1464 of yacc.c  */ +#line 1495 "glsl_parser.ypp"      {  	   void *ctx = state;  	   (yyval.function_definition) = new(ctx) ast_function_definition(); @@ -4940,8 +5099,8 @@ yyreduce: -/* Line 1455 of yacc.c  */ -#line 4945 "glsl_parser.cpp" +/* Line 1464 of yacc.c  */ +#line 5104 "glsl_parser.cpp"        default: break;      }    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/src/glsl/glsl_parser.h b/src/glsl/glsl_parser.h index 9c4e12fd7e..367b46f49e 100644 --- a/src/glsl/glsl_parser.h +++ b/src/glsl/glsl_parser.h @@ -1,10 +1,9 @@ - -/* A Bison parser, made by GNU Bison 2.4.1.  */ +/* A Bison parser, made by GNU Bison 2.4.2.  */  /* 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-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 @@ -146,56 +145,86 @@       LOWP = 362,       MEDIUMP = 363,       HIGHP = 364, -     PRECISION = 365, -     VERSION = 366, -     EXTENSION = 367, -     LINE = 368, -     PRAGMA = 369, -     COLON = 370, -     EOL = 371, -     INTERFACE = 372, -     OUTPUT = 373, -     LAYOUT_TOK = 374, -     ASM = 375, -     CLASS = 376, -     UNION = 377, -     ENUM = 378, -     TYPEDEF = 379, -     TEMPLATE = 380, -     THIS = 381, -     PACKED = 382, -     GOTO = 383, -     INLINE_TOK = 384, -     NOINLINE = 385, -     VOLATILE = 386, -     PUBLIC_TOK = 387, -     STATIC = 388, -     EXTERN = 389, -     EXTERNAL = 390, -     LONG = 391, -     SHORT = 392, -     DOUBLE = 393, -     HALF = 394, -     FIXED = 395, -     UNSIGNED = 396, -     INPUT = 397, -     OUPTUT = 398, -     HVEC2 = 399, -     HVEC3 = 400, -     HVEC4 = 401, -     DVEC2 = 402, -     DVEC3 = 403, -     DVEC4 = 404, -     FVEC2 = 405, -     FVEC3 = 406, -     FVEC4 = 407, -     SAMPLER2DRECT = 408, -     SAMPLER3DRECT = 409, -     SAMPLER2DRECTSHADOW = 410, -     SIZEOF = 411, -     CAST = 412, -     NAMESPACE = 413, -     USING = 414 +     SUPERP = 365, +     PRECISION = 366, +     VERSION = 367, +     EXTENSION = 368, +     LINE = 369, +     PRAGMA = 370, +     COLON = 371, +     EOL = 372, +     INTERFACE = 373, +     OUTPUT = 374, +     LAYOUT_TOK = 375, +     ASM = 376, +     CLASS = 377, +     UNION = 378, +     ENUM = 379, +     TYPEDEF = 380, +     TEMPLATE = 381, +     THIS = 382, +     PACKED = 383, +     GOTO = 384, +     INLINE_TOK = 385, +     NOINLINE = 386, +     VOLATILE = 387, +     PUBLIC_TOK = 388, +     STATIC = 389, +     EXTERN = 390, +     EXTERNAL = 391, +     LONG = 392, +     SHORT = 393, +     DOUBLE = 394, +     HALF = 395, +     FIXED = 396, +     UNSIGNED = 397, +     INPUT = 398, +     OUPTUT = 399, +     HVEC2 = 400, +     HVEC3 = 401, +     HVEC4 = 402, +     DVEC2 = 403, +     DVEC3 = 404, +     DVEC4 = 405, +     FVEC2 = 406, +     FVEC3 = 407, +     FVEC4 = 408, +     SAMPLER2DRECT = 409, +     SAMPLER3DRECT = 410, +     SAMPLER2DRECTSHADOW = 411, +     SIZEOF = 412, +     CAST = 413, +     NAMESPACE = 414, +     USING = 415, +     COMMON = 416, +     PARTITION = 417, +     ACTIVE = 418, +     SAMPLERBUFFER = 419, +     FILTER = 420, +     IMAGE1D = 421, +     IMAGE2D = 422, +     IMAGE3D = 423, +     IMAGECUBE = 424, +     IMAGE1DARRAY = 425, +     IMAGE2DARRAY = 426, +     IIMAGE1D = 427, +     IIMAGE2D = 428, +     IIMAGE3D = 429, +     IIMAGECUBE = 430, +     IIMAGE1DARRAY = 431, +     IIMAGE2DARRAY = 432, +     UIMAGE1D = 433, +     UIMAGE2D = 434, +     UIMAGE3D = 435, +     UIMAGECUBE = 436, +     UIMAGE1DARRAY = 437, +     UIMAGE2DARRAY = 438, +     IMAGE1DSHADOW = 439, +     IMAGE2DSHADOW = 440, +     IMAGEBUFFER = 441, +     IIMAGEBUFFER = 442, +     UIMAGEBUFFER = 443, +     ROW_MAJOR = 444     };  #endif @@ -205,7 +234,7 @@  typedef union YYSTYPE  { -/* Line 1676 of yacc.c  */ +/* Line 1685 of yacc.c  */  #line 45 "glsl_parser.ypp"     int n; @@ -236,8 +265,8 @@ typedef union YYSTYPE -/* Line 1676 of yacc.c  */ -#line 241 "glsl_parser.h" +/* Line 1685 of yacc.c  */ +#line 270 "glsl_parser.h"  } YYSTYPE;  # define YYSTYPE_IS_TRIVIAL 1  # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/src/glsl/glsl_parser.ypp b/src/glsl/glsl_parser.ypp index 7cabefbd34..493b74fb69 100644 --- a/src/glsl/glsl_parser.ypp +++ b/src/glsl/glsl_parser.ypp @@ -94,7 +94,7 @@  %token MOD_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN XOR_ASSIGN OR_ASSIGN  %token SUB_ASSIGN  %token INVARIANT -%token LOWP MEDIUMP HIGHP PRECISION +%token LOWP MEDIUMP HIGHP SUPERP PRECISION  %token VERSION EXTENSION LINE PRAGMA COLON EOL INTERFACE OUTPUT  %token LAYOUT_TOK @@ -108,6 +108,13 @@  %token SAMPLER2DRECT SAMPLER3DRECT SAMPLER2DRECTSHADOW  %token SIZEOF CAST NAMESPACE USING +%token COMMON PARTITION ACTIVE SAMPLERBUFFER FILTER +%token  IMAGE1D  IMAGE2D  IMAGE3D  IMAGECUBE  IMAGE1DARRAY  IMAGE2DARRAY +%token IIMAGE1D IIMAGE2D IIMAGE3D IIMAGECUBE IIMAGE1DARRAY IIMAGE2DARRAY +%token UIMAGE1D UIMAGE2D UIMAGE3D UIMAGECUBE UIMAGE1DARRAY UIMAGE2DARRAY +%token IMAGE1DSHADOW IMAGE2DSHADOW IMAGEBUFFER IIMAGEBUFFER UIMAGEBUFFER +%token ROW_MAJOR +  %type <identifier> variable_identifier  %type <node> statement  %type <node> statement_list | 
