From efff7aa980e78dc3ee1782308f0c9f3861c9992a Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 31 Aug 2009 16:43:39 -0700 Subject: NV fp: Add tracking for NV_fragment_program_option --- src/mesa/main/extensions.c | 1 + src/mesa/main/mtypes.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 195fdde346..903da99ed0 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -162,6 +162,7 @@ static const struct { { ON, "GL_MESA_window_pos", F(ARB_window_pos) }, { OFF, "GL_NV_blend_square", F(NV_blend_square) }, { OFF, "GL_NV_fragment_program", F(NV_fragment_program) }, + { OFF, "GL_NV_fragment_program_option", F(NV_fragment_program_option) }, { ON, "GL_NV_light_max_exponent", F(NV_light_max_exponent) }, { OFF, "GL_NV_point_sprite", F(NV_point_sprite) }, { OFF, "GL_NV_texture_env_combine4", F(NV_texture_env_combine4) }, diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 53dc6360ea..a99a25597f 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2553,6 +2553,7 @@ struct gl_extensions GLboolean MESA_texture_signed_rgba; GLboolean NV_blend_square; GLboolean NV_fragment_program; + GLboolean NV_fragment_program_option; GLboolean NV_light_max_exponent; GLboolean NV_point_sprite; GLboolean NV_texgen_reflection; -- cgit v1.2.3 From dc8ec05ace3d2a0284dbe47ec2d88168b1efb517 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 31 Aug 2009 16:57:49 -0700 Subject: NV fp: Parse 'OPTION NV_fragment_program' in ARB assembly shaders --- src/mesa/shader/program_parse_extra.c | 11 +++++++++++ src/mesa/shader/program_parser.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/mesa/shader/program_parse_extra.c b/src/mesa/shader/program_parse_extra.c index 8e4be606f1..79e80c54d7 100644 --- a/src/mesa/shader/program_parse_extra.c +++ b/src/mesa/shader/program_parse_extra.c @@ -102,6 +102,17 @@ _mesa_ARBfp_parse_option(struct asm_parser_state *state, const char *option) return 1; } } + } else if (strncmp(option, "NV_fragment_program", 19) == 0) { + option += 19; + + /* Other NV_fragment_program strings may be supported later. + */ + if (option[0] == '\0') { + if (state->ctx->Extensions.NV_fragment_program_option) { + state->option.NV_fragment = 1; + return 1; + } + } } else if (strncmp(option, "MESA_", 5) == 0) { option += 5; diff --git a/src/mesa/shader/program_parser.h b/src/mesa/shader/program_parser.h index fa47d84565..be32a1bed1 100644 --- a/src/mesa/shader/program_parser.h +++ b/src/mesa/shader/program_parser.h @@ -202,6 +202,7 @@ struct asm_parser_state { unsigned Shadow:1; unsigned TexRect:1; unsigned TexArray:1; + unsigned NV_fragment:1; } option; struct { -- cgit v1.2.3 From ede0cd4d8c8eb8c6c443c84905138091944d69af Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 31 Aug 2009 17:00:31 -0700 Subject: NV fp lexer: Add new opcodes --- src/mesa/shader/lex.yy.c | 1766 ++++++++++++++++++++--------------- src/mesa/shader/program_lexer.l | 36 + src/mesa/shader/program_parse.tab.c | 671 ++++++------- src/mesa/shader/program_parse.tab.h | 171 ++-- src/mesa/shader/program_parse.y | 2 +- 5 files changed, 1455 insertions(+), 1191 deletions(-) diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c index 6d661bd187..5bde12a6b7 100644 --- a/src/mesa/shader/lex.yy.c +++ b/src/mesa/shader/lex.yy.c @@ -357,8 +357,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 183 -#define YY_END_OF_BUFFER 184 +#define YY_NUM_RULES 217 +#define YY_END_OF_BUFFER 218 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -366,82 +366,93 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[675] = +static yyconst flex_int16_t yy_accept[776] = { 0, - 0, 0, 184, 182, 180, 179, 182, 182, 152, 178, - 154, 154, 154, 154, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 180, 0, 0, 181, 152, 0, - 153, 155, 175, 175, 0, 0, 0, 0, 175, 0, - 0, 0, 0, 0, 0, 0, 132, 176, 133, 134, - 166, 166, 166, 166, 0, 154, 0, 140, 141, 142, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 173, 173, 0, 0, 0, + 0, 0, 218, 216, 214, 213, 216, 216, 186, 212, + 188, 188, 188, 188, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 214, 0, 0, 215, 186, + 0, 187, 189, 209, 209, 0, 0, 0, 0, 209, + 0, 0, 0, 0, 0, 0, 0, 166, 210, 167, + 168, 200, 200, 200, 200, 0, 188, 0, 174, 175, + 176, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 207, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 172, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 163, 163, 163, 164, 164, 165, 156, - 155, 156, 0, 157, 11, 13, 152, 15, 152, 152, - 16, 18, 152, 20, 22, 24, 26, 6, 28, 30, - 31, 33, 35, 38, 36, 40, 41, 43, 45, 47, - - 49, 51, 152, 152, 152, 53, 55, 152, 57, 59, - 61, 152, 63, 65, 67, 69, 152, 71, 73, 75, - 77, 152, 152, 152, 152, 152, 152, 0, 0, 0, - 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 93, 94, 96, 0, 171, 0, 0, 0, - 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 169, 169, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 160, - 161, 162, 0, 158, 152, 152, 152, 152, 152, 152, - 152, 152, 143, 152, 152, 152, 152, 152, 152, 152, - - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 144, 152, 152, 152, 152, 152, 152, - 152, 152, 10, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 0, 177, 0, 0, 0, 86, 87, - 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, + 206, 206, 206, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 197, 197, 197, 198, 198, 199, 190, + 189, 190, 0, 191, 11, 13, 186, 15, 186, 186, + 16, 18, 186, 20, 22, 24, 26, 28, 30, 6, + + 32, 34, 35, 37, 39, 42, 40, 44, 45, 47, + 49, 51, 53, 55, 186, 186, 186, 186, 186, 65, + 67, 186, 69, 71, 73, 75, 77, 79, 81, 186, + 83, 85, 87, 89, 91, 93, 95, 186, 97, 99, + 101, 103, 186, 109, 111, 186, 186, 186, 186, 186, + 186, 0, 0, 0, 0, 189, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 127, 128, 130, 0, + 205, 0, 0, 0, 0, 0, 0, 144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 203, + 203, 156, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 194, 194, 195, 196, 0, 192, 186, 186, + 186, 186, 186, 186, 186, 186, 177, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 57, 186, 61, + 186, 186, 186, 178, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 10, + 186, 186, 186, 186, 105, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 0, 211, 0, 0, 0, 120, + 121, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, - 126, 0, 128, 0, 0, 0, 0, 0, 0, 167, - 159, 152, 152, 152, 4, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - - 152, 152, 152, 152, 152, 152, 9, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 82, 152, 152, 0, 0, 0, - 0, 0, 88, 89, 0, 0, 0, 0, 97, 0, - 0, 101, 104, 0, 0, 0, 0, 0, 0, 0, - 115, 116, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 152, 152, - 152, 152, 152, 5, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 7, 8, 152, 152, 152, 152, 152, 152, 152, - - 152, 152, 152, 152, 152, 152, 152, 152, 152, 83, - 152, 79, 0, 0, 0, 0, 137, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 107, 0, 111, 112, - 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 130, 131, 0, 0, 138, 12, 3, 14, - 148, 149, 152, 17, 19, 21, 23, 25, 27, 29, - 32, 34, 39, 37, 42, 44, 46, 48, 50, 52, - 54, 56, 58, 60, 62, 152, 152, 152, 64, 66, - 68, 70, 72, 74, 76, 78, 152, 81, 139, 0, - 0, 84, 0, 90, 0, 0, 0, 99, 0, 0, - - 0, 0, 0, 0, 113, 0, 0, 119, 106, 0, - 0, 0, 0, 0, 0, 135, 0, 152, 145, 146, - 152, 80, 0, 0, 0, 0, 92, 95, 100, 0, - 0, 105, 0, 0, 0, 118, 0, 0, 0, 0, - 127, 129, 0, 152, 152, 2, 1, 0, 91, 0, - 103, 0, 109, 117, 0, 0, 124, 125, 136, 152, - 147, 0, 102, 0, 120, 123, 152, 85, 108, 152, - 152, 150, 151, 0 + + 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, + 0, 160, 0, 162, 0, 0, 0, 0, 0, 0, + 201, 193, 186, 186, 186, 4, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 9, + 186, 59, 186, 63, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 107, 186, 186, 186, + 186, 186, 116, 186, 186, 0, 0, 0, 0, 0, + 122, 123, 0, 0, 0, 0, 131, 0, 0, 135, + + 138, 0, 0, 0, 0, 0, 0, 0, 149, 150, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 186, 186, 186, 186, 186, + 186, 5, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 7, 8, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 117, 186, 113, 0, 0, 0, + 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 141, 0, 145, 146, 0, 148, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 164, 165, 0, + 0, 172, 12, 3, 14, 182, 183, 186, 17, 19, + 21, 23, 25, 27, 29, 31, 33, 36, 38, 43, + 41, 46, 48, 50, 52, 54, 56, 186, 186, 186, + 186, 66, 68, 70, 72, 74, 76, 78, 80, 82, + 186, 186, 186, 84, 86, 88, 90, 92, 94, 96, + 98, 100, 102, 104, 186, 186, 110, 112, 186, 115, + 173, 0, 0, 118, 0, 124, 0, 0, 0, 133, + 0, 0, 0, 0, 0, 0, 147, 0, 0, 153, + + 140, 0, 0, 0, 0, 0, 0, 169, 0, 186, + 58, 186, 62, 186, 179, 180, 186, 106, 186, 114, + 0, 0, 0, 0, 126, 129, 134, 0, 0, 139, + 0, 0, 0, 152, 0, 0, 0, 0, 161, 163, + 0, 186, 60, 64, 186, 108, 2, 1, 0, 125, + 0, 137, 0, 143, 151, 0, 0, 158, 159, 170, + 186, 181, 0, 136, 0, 154, 157, 186, 119, 142, + 186, 186, 184, 185, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -487,280 +498,313 @@ static yyconst flex_int32_t yy_meta[68] = 2, 2, 2, 2, 2, 2, 2 } ; -static yyconst flex_int16_t yy_base[678] = +static yyconst flex_int16_t yy_base[779] = { 0, - 0, 0, 954, 955, 66, 955, 948, 949, 0, 69, - 85, 128, 140, 152, 151, 58, 39, 48, 75, 927, - 158, 160, 73, 59, 71, 170, 54, 920, 890, 889, - 901, 885, 899, 898, 142, 927, 939, 955, 0, 206, - 955, 189, 168, 171, 53, 27, 66, 119, 175, 899, - 885, 123, 170, 883, 895, 183, 955, 198, 225, 99, - 212, 219, 223, 227, 285, 297, 308, 955, 955, 955, - 904, 917, 911, 165, 900, 903, 899, 914, 224, 896, - 910, 194, 896, 909, 900, 913, 890, 901, 892, 294, - 893, 884, 893, 884, 883, 884, 878, 884, 895, 881, - - 878, 890, 893, 880, 873, 889, 865, 193, 139, 885, - 861, 846, 841, 858, 834, 839, 865, 167, 854, 259, - 849, 325, 282, 851, 832, 302, 842, 838, 833, 43, - 839, 825, 841, 838, 829, 305, 309, 831, 820, 834, - 837, 819, 834, 821, 818, 825, 275, 833, 254, 299, - 317, 327, 331, 810, 827, 828, 821, 803, 310, 804, - 826, 817, 316, 327, 331, 335, 339, 343, 347, 955, - 405, 416, 422, 428, 825, 240, 849, 0, 848, 831, - 821, 820, 840, 818, 817, 816, 815, 0, 814, 0, - 813, 812, 0, 811, 810, 0, 809, 808, 807, 806, - - 805, 804, 820, 813, 826, 800, 799, 805, 797, 796, - 795, 816, 793, 792, 791, 790, 800, 788, 787, 786, - 785, 777, 776, 761, 761, 760, 759, 802, 774, 762, - 434, 442, 416, 766, 186, 763, 757, 757, 751, 764, - 764, 749, 955, 955, 764, 752, 418, 759, 281, 756, - 762, 308, 757, 955, 748, 755, 754, 757, 743, 742, - 746, 741, 278, 746, 420, 428, 430, 955, 738, 736, - 736, 744, 745, 727, 421, 732, 738, 419, 426, 430, - 434, 438, 496, 502, 752, 764, 750, 749, 742, 756, - 746, 745, 0, 744, 743, 742, 741, 740, 739, 738, - - 737, 736, 735, 734, 733, 732, 731, 730, 733, 726, - 733, 726, 725, 0, 724, 723, 722, 725, 720, 719, - 718, 717, 0, 716, 715, 714, 713, 691, 685, 690, - 696, 679, 694, 315, 955, 693, 683, 687, 955, 955, - 677, 686, 672, 689, 672, 675, 669, 955, 670, 669, - 666, 673, 666, 674, 670, 680, 677, 659, 665, 672, - 656, 655, 673, 655, 667, 666, 955, 665, 655, 659, - 955, 646, 955, 651, 651, 659, 642, 643, 653, 955, - 955, 685, 667, 683, 0, 507, 681, 681, 680, 679, - 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, - - 668, 667, 666, 665, 652, 645, 0, 662, 661, 660, - 659, 658, 636, 656, 655, 654, 653, 652, 651, 650, - 649, 618, 621, 601, 0, 602, 595, 602, 601, 602, - 594, 612, 955, 955, 594, 592, 602, 595, 955, 590, - 607, 330, 955, 598, 582, 583, 592, 583, 582, 582, - 955, 581, 590, 580, 596, 593, 955, 592, 590, 579, - 580, 576, 568, 575, 570, 571, 566, 592, 592, 590, - 604, 603, 598, 0, 586, 585, 584, 583, 582, 581, - 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, - 570, 0, 0, 569, 568, 567, 566, 565, 509, 564, - - 563, 562, 561, 560, 559, 558, 557, 535, 535, 0, - 542, 0, 576, 575, 524, 542, 955, 537, 532, 525, - 521, 533, 523, 521, 517, 533, 524, 523, 955, 955, - 526, 955, 521, 514, 503, 514, 506, 510, 523, 518, - 521, 503, 955, 955, 515, 504, 955, 0, 0, 0, - 0, 0, 543, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1054, 1055, 66, 1055, 1048, 1049, 0, 69, + 85, 128, 140, 152, 151, 58, 56, 63, 76, 1027, + 158, 160, 39, 163, 173, 189, 52, 1020, 76, 990, + 989, 1001, 985, 999, 998, 105, 1027, 1039, 1055, 0, + 225, 1055, 218, 160, 157, 20, 123, 66, 119, 192, + 999, 985, 54, 162, 983, 995, 194, 1055, 200, 195, + 98, 227, 196, 231, 235, 293, 305, 316, 1055, 1055, + 1055, 1004, 1017, 1011, 223, 1000, 1003, 999, 1014, 107, + 298, 996, 1010, 246, 996, 1009, 1000, 1013, 990, 1001, + 992, 182, 993, 984, 993, 984, 983, 984, 144, 978, + + 984, 995, 986, 980, 977, 978, 982, 289, 991, 978, + 302, 985, 972, 986, 962, 65, 315, 989, 981, 980, + 956, 941, 936, 953, 929, 934, 960, 279, 949, 293, + 944, 342, 299, 946, 927, 317, 937, 933, 928, 207, + 934, 920, 936, 933, 924, 320, 324, 926, 915, 929, + 932, 914, 929, 916, 913, 920, 284, 928, 227, 288, + 327, 342, 345, 905, 922, 923, 916, 898, 318, 899, + 921, 912, 330, 341, 345, 349, 353, 357, 361, 1055, + 419, 430, 436, 442, 920, 205, 944, 0, 943, 926, + 916, 915, 935, 913, 912, 911, 910, 909, 908, 0, + + 907, 0, 906, 905, 0, 904, 903, 0, 902, 901, + 900, 899, 898, 897, 913, 906, 919, 354, 356, 893, + 892, 898, 890, 889, 888, 887, 886, 885, 884, 905, + 882, 881, 880, 879, 878, 877, 876, 886, 874, 873, + 872, 871, 357, 870, 869, 861, 860, 845, 845, 844, + 843, 886, 858, 846, 448, 456, 430, 850, 418, 847, + 841, 841, 835, 848, 848, 833, 1055, 1055, 848, 836, + 432, 843, 135, 840, 846, 433, 841, 1055, 832, 839, + 838, 841, 827, 826, 830, 825, 330, 830, 439, 442, + 451, 1055, 822, 820, 820, 828, 829, 811, 456, 816, + + 822, 441, 447, 454, 458, 462, 520, 526, 836, 848, + 834, 833, 826, 840, 830, 829, 0, 828, 827, 826, + 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, + 815, 814, 813, 812, 815, 808, 815, 800, 807, 798, + 821, 804, 803, 0, 802, 801, 800, 799, 798, 797, + 796, 799, 794, 793, 792, 791, 790, 789, 788, 0, + 787, 786, 785, 784, 775, 782, 781, 780, 758, 752, + 757, 763, 746, 761, 495, 1055, 760, 750, 754, 1055, + 1055, 744, 753, 739, 756, 739, 742, 736, 1055, 737, + 736, 733, 740, 733, 741, 737, 747, 744, 726, 732, + + 739, 723, 722, 740, 722, 734, 733, 1055, 732, 722, + 726, 1055, 713, 1055, 718, 718, 726, 709, 710, 720, + 1055, 1055, 752, 734, 750, 0, 532, 748, 748, 747, + 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, + 736, 735, 734, 733, 732, 731, 730, 717, 710, 0, + 710, 701, 708, 699, 723, 722, 721, 720, 719, 718, + 717, 716, 715, 693, 713, 712, 711, 710, 709, 708, + 707, 706, 705, 704, 703, 685, 676, 700, 699, 668, + 671, 651, 0, 652, 645, 652, 651, 652, 644, 662, + 1055, 1055, 644, 642, 652, 645, 1055, 640, 657, 345, + + 1055, 648, 632, 633, 642, 633, 632, 632, 1055, 631, + 640, 630, 646, 643, 1055, 642, 640, 629, 630, 626, + 618, 625, 620, 621, 616, 642, 642, 640, 654, 653, + 648, 0, 636, 635, 634, 633, 632, 631, 630, 629, + 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, + 618, 0, 0, 635, 617, 633, 615, 613, 612, 611, + 610, 609, 608, 607, 606, 605, 484, 604, 603, 602, + 601, 600, 599, 598, 597, 596, 595, 594, 611, 593, + 591, 590, 568, 568, 0, 575, 0, 609, 608, 557, + 575, 1055, 570, 565, 558, 554, 566, 556, 554, 550, + + 566, 557, 556, 1055, 1055, 559, 1055, 554, 547, 536, + 547, 539, 543, 556, 551, 554, 536, 1055, 1055, 548, + 537, 1055, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 539, 538, 536, 0, 0, - 0, 0, 0, 0, 0, 0, 494, 0, 0, 545, - 544, 955, 491, 955, 495, 495, 504, 955, 488, 502, - - 483, 485, 482, 490, 955, 468, 479, 955, 955, 483, - 479, 472, 470, 470, 483, 955, 467, 507, 0, 0, - 507, 0, 514, 513, 472, 433, 955, 955, 955, 435, - 435, 955, 429, 386, 377, 955, 366, 365, 323, 328, - 955, 955, 339, 348, 337, 955, 955, 307, 955, 305, - 955, 257, 955, 955, 247, 221, 955, 955, 955, 236, - 0, 213, 955, 150, 955, 955, 232, 955, 955, 162, - 138, 0, 0, 955, 541, 108, 544 + 0, 0, 0, 0, 0, 0, 0, 557, 574, 555, + 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 568, 567, 565, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 550, 567, 0, 0, 521, 0, + 0, 572, 571, 1055, 518, 1055, 522, 522, 531, 1055, + 515, 529, 517, 519, 516, 518, 1055, 496, 507, 1055, + + 1055, 511, 507, 500, 497, 497, 510, 1055, 494, 534, + 0, 518, 0, 517, 0, 0, 532, 0, 515, 0, + 67, 187, 172, 202, 1055, 1055, 1055, 219, 243, 1055, + 245, 246, 300, 1055, 292, 315, 332, 340, 1055, 1055, + 357, 406, 0, 0, 402, 0, 1055, 1055, 381, 1055, + 423, 1055, 437, 1055, 1055, 431, 429, 1055, 1055, 1055, + 460, 0, 448, 1055, 444, 1055, 1055, 534, 1055, 1055, + 496, 528, 0, 0, 1055, 565, 546, 568 } ; -static yyconst flex_int16_t yy_def[678] = +static yyconst flex_int16_t yy_def[779] = { 0, - 674, 1, 674, 674, 674, 674, 674, 675, 676, 674, - 674, 674, 674, 674, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 674, 674, 675, 674, 676, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 677, 674, 674, 674, 674, 674, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 676, 676, 676, 676, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 676, 676, 676, - 676, 676, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 676, 676, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 676, - 676, 674, 674, 674, 674, 674, 676, 674, 674, 676, - 676, 676, 676, 0, 674, 674, 674 + 775, 1, 775, 775, 775, 775, 775, 776, 777, 775, + 775, 775, 775, 775, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 775, 775, 776, 775, 777, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 778, 775, 775, 775, 775, + 775, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + + 775, 775, 775, 775, 775, 775, 775, 775, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + + 775, 775, 775, 775, 775, 775, 775, 775, 775, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 777, 777, 777, 777, 777, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 777, 777, 775, 775, 775, 775, 775, 777, 775, 775, + 777, 777, 777, 777, 0, 775, 775, 775 } ; -static yyconst flex_int16_t yy_nxt[1023] = +static yyconst flex_int16_t yy_nxt[1123] = { 0, 4, 5, 6, 5, 7, 8, 9, 4, 10, 11, 12, 13, 14, 11, 11, 15, 9, 16, 17, 18, 19, 9, 9, 9, 20, 21, 22, 9, 23, 24, - 9, 25, 26, 27, 9, 9, 9, 28, 9, 9, - 9, 9, 9, 9, 9, 9, 29, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 30, 9, 31, 32, - 33, 9, 34, 9, 9, 9, 9, 35, 79, 35, - 40, 80, 129, 108, 96, 81, 130, 41, 42, 42, - 42, 42, 42, 42, 76, 82, 77, 97, 98, 240, - 99, 109, 78, 65, 66, 66, 66, 66, 66, 66, - - 83, 241, 94, 100, 67, 127, 84, 95, 128, 39, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 131, - 132, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 67, 133, 61, 62, 63, 64, 65, 66, 66, 66, - 66, 66, 66, 35, 160, 35, 68, 67, 65, 66, - 66, 66, 66, 66, 66, 219, 673, 161, 69, 67, - 65, 66, 66, 66, 66, 66, 66, 71, 220, 72, - 70, 67, 140, 67, 134, 90, 73, 135, 141, 86, - 672, 87, 74, 91, 75, 67, 88, 101, 92, 89, - 178, 102, 103, 104, 93, 105, 179, 67, 42, 42, - - 42, 42, 42, 42, 106, 189, 107, 40, 122, 123, - 123, 142, 126, 123, 669, 123, 136, 137, 123, 217, - 124, 124, 123, 190, 147, 143, 123, 125, 125, 123, - 218, 337, 144, 123, 122, 148, 184, 185, 149, 151, - 152, 150, 670, 671, 338, 153, 186, 118, 119, 45, - 46, 47, 48, 154, 50, 51, 123, 162, 52, 53, - 54, 55, 56, 57, 120, 59, 60, 668, 155, 121, - 156, 286, 667, 157, 158, 163, 163, 163, 163, 666, - 287, 159, 164, 163, 165, 166, 167, 163, 163, 168, - 169, 163, 163, 163, 171, 171, 171, 171, 171, 171, - - 230, 665, 664, 260, 172, 65, 66, 66, 66, 66, - 66, 66, 198, 261, 154, 173, 67, 174, 174, 174, - 174, 174, 174, 233, 233, 364, 349, 257, 365, 233, - 172, 199, 231, 258, 232, 232, 232, 232, 232, 232, - 233, 350, 67, 233, 233, 236, 233, 233, 262, 233, - 247, 233, 233, 353, 263, 273, 233, 663, 233, 233, - 233, 428, 662, 233, 233, 274, 354, 233, 265, 233, - 661, 264, 266, 267, 233, 233, 660, 429, 233, 278, - 278, 278, 278, 524, 659, 233, 525, 658, 657, 233, - 278, 278, 278, 278, 279, 278, 278, 280, 281, 278, - - 278, 278, 278, 278, 278, 278, 282, 278, 278, 278, - 278, 278, 278, 278, 42, 42, 42, 42, 42, 42, - 656, 655, 654, 283, 122, 284, 284, 284, 284, 284, - 284, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 232, 232, 232, 232, 232, 232, 653, - 122, 232, 232, 232, 232, 232, 232, 335, 335, 335, - 335, 335, 335, 335, 374, 335, 375, 335, 376, 335, - 335, 367, 335, 652, 335, 335, 335, 335, 335, 651, - 650, 377, 380, 380, 380, 380, 335, 649, 335, 380, - 380, 380, 380, 381, 380, 380, 380, 380, 380, 380, - - 380, 380, 380, 380, 380, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 471, 472, 576, - 577, 648, 647, 646, 645, 644, 643, 642, 641, 640, - 639, 638, 637, 636, 635, 634, 633, 632, 631, 473, - 578, 37, 37, 37, 170, 170, 630, 629, 628, 627, - 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, - 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, - 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, + 9, 25, 26, 27, 28, 9, 9, 29, 9, 9, + 9, 9, 9, 9, 9, 9, 30, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 31, 9, 32, 33, + 34, 9, 35, 9, 9, 9, 9, 36, 96, 36, + 41, 116, 137, 97, 80, 138, 747, 42, 43, 43, + 43, 43, 43, 43, 77, 81, 78, 119, 82, 117, + 83, 238, 79, 66, 67, 67, 67, 67, 67, 67, + + 84, 85, 239, 150, 68, 120, 36, 86, 36, 151, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 141, + 142, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 68, 143, 62, 63, 64, 65, 66, 67, 67, 67, + 67, 67, 67, 170, 194, 195, 69, 68, 66, 67, + 67, 67, 67, 67, 67, 218, 171, 219, 70, 68, + 66, 67, 67, 67, 67, 67, 67, 72, 139, 73, + 71, 68, 140, 68, 144, 92, 74, 145, 98, 88, + 390, 89, 75, 93, 76, 68, 90, 99, 94, 91, + 101, 100, 102, 103, 95, 391, 748, 68, 136, 133, + + 210, 133, 133, 152, 133, 104, 105, 133, 106, 107, + 108, 109, 110, 134, 111, 133, 112, 153, 133, 211, + 135, 749, 113, 114, 154, 115, 41, 43, 43, 43, + 43, 43, 43, 146, 147, 157, 310, 132, 165, 133, + 166, 161, 162, 167, 168, 311, 158, 163, 188, 159, + 133, 169, 160, 264, 189, 164, 750, 201, 133, 174, + 173, 175, 176, 132, 751, 265, 128, 129, 46, 47, + 48, 49, 172, 51, 52, 202, 284, 53, 54, 55, + 56, 57, 58, 130, 60, 61, 285, 752, 131, 753, + 173, 173, 173, 173, 177, 173, 173, 178, 179, 173, + + 173, 173, 181, 181, 181, 181, 181, 181, 228, 754, + 196, 197, 182, 66, 67, 67, 67, 67, 67, 67, + 198, 232, 229, 183, 68, 184, 184, 184, 184, 184, + 184, 240, 134, 241, 254, 233, 281, 286, 182, 135, + 257, 257, 282, 287, 242, 755, 257, 756, 164, 255, + 68, 256, 256, 256, 256, 256, 256, 257, 257, 257, + 260, 257, 257, 297, 257, 271, 257, 257, 257, 257, + 757, 257, 340, 298, 257, 257, 338, 405, 257, 365, + 406, 288, 257, 289, 257, 257, 290, 291, 339, 257, + 341, 366, 257, 302, 302, 302, 302, 758, 599, 759, + + 257, 600, 760, 257, 302, 302, 302, 302, 303, 302, + 302, 304, 305, 302, 302, 302, 302, 302, 302, 302, + 306, 302, 302, 302, 302, 302, 302, 302, 43, 43, + 43, 43, 43, 43, 761, 762, 763, 307, 132, 308, + 308, 308, 308, 308, 308, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 256, 256, 256, + 256, 256, 256, 378, 132, 256, 256, 256, 256, 256, + 256, 376, 376, 376, 376, 764, 379, 376, 394, 376, + 376, 376, 765, 376, 376, 766, 376, 767, 376, 376, + 376, 395, 408, 376, 661, 662, 768, 376, 376, 415, + + 376, 416, 769, 417, 421, 421, 421, 421, 770, 376, + 421, 421, 421, 421, 773, 663, 418, 422, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 486, 529, 530, 771, 772, 774, 40, 746, 745, + 744, 743, 742, 741, 740, 739, 738, 487, 737, 736, + 735, 734, 733, 732, 531, 38, 38, 38, 180, 180, + 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, + 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, + 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, + + 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, + 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, + 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, + 671, 670, 669, 668, 667, 666, 665, 664, 660, 659, + 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, + 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, + 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, + 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, + 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, + 608, 607, 606, 605, 604, 603, 602, 601, 598, 597, + 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, - 586, 585, 584, 583, 582, 581, 580, 579, 575, 574, - - 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, - 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, - 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, - 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, - 533, 532, 531, 530, 529, 528, 527, 526, 523, 522, - 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, - 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, - 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, - 481, 480, 479, 478, 477, 476, 475, 474, 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, - 438, 437, 436, 435, 434, 433, 432, 431, 430, 427, - 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, - 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, - 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, - 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, - 386, 385, 384, 383, 382, 379, 378, 373, 372, 371, - 370, 369, 368, 366, 363, 362, 361, 360, 359, 358, - - 357, 356, 355, 352, 351, 348, 347, 346, 345, 344, - 343, 342, 341, 340, 339, 336, 264, 236, 334, 333, - 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, - 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, - 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, - 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, - 292, 291, 290, 289, 288, 285, 277, 276, 275, 272, - 271, 270, 269, 268, 259, 256, 255, 254, 253, 252, - 251, 250, 249, 248, 246, 245, 244, 243, 242, 239, - 238, 237, 235, 234, 162, 229, 228, 227, 226, 225, - - 224, 223, 222, 221, 216, 215, 214, 213, 212, 211, - 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, - 200, 197, 196, 195, 194, 193, 192, 191, 188, 187, - 183, 182, 181, 180, 177, 176, 175, 146, 145, 139, - 138, 38, 117, 116, 115, 114, 113, 112, 111, 110, - 85, 38, 36, 674, 3, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674 + 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, + 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, + 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, + 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, + 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, + 536, 535, 534, 533, 532, 528, 527, 526, 525, 524, + 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, + 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, + 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, + + 493, 492, 491, 490, 489, 488, 485, 484, 483, 482, + 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, + 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, + 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, + 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, + 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, + 431, 430, 429, 428, 427, 426, 425, 424, 423, 420, + 419, 414, 413, 412, 411, 410, 409, 407, 404, 403, + 402, 401, 400, 399, 398, 397, 396, 393, 392, 389, + 388, 387, 386, 385, 384, 383, 382, 381, 380, 377, + + 288, 260, 375, 374, 373, 372, 371, 370, 369, 368, + 367, 364, 363, 362, 361, 360, 359, 358, 357, 356, + 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, + 345, 344, 343, 342, 337, 336, 335, 334, 333, 332, + 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, + 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, + 309, 301, 300, 299, 296, 295, 294, 293, 292, 283, + 280, 279, 278, 277, 276, 275, 274, 273, 272, 270, + 269, 268, 267, 266, 263, 262, 261, 259, 258, 172, + 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, + + 243, 237, 236, 235, 234, 231, 230, 227, 226, 225, + 224, 223, 222, 221, 220, 217, 216, 215, 214, 213, + 212, 209, 208, 207, 206, 205, 204, 203, 200, 199, + 193, 192, 191, 190, 187, 186, 185, 156, 155, 149, + 148, 39, 127, 126, 125, 124, 123, 122, 121, 118, + 87, 39, 37, 775, 3, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775 } ; -static yyconst flex_int16_t yy_chk[1023] = +static yyconst flex_int16_t yy_chk[1123] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -768,113 +812,124 @@ static yyconst flex_int16_t yy_chk[1023] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 17, 5, - 10, 17, 46, 27, 24, 18, 46, 10, 10, 10, - 10, 10, 10, 10, 16, 18, 16, 24, 25, 130, - 25, 27, 16, 11, 11, 11, 11, 11, 11, 11, - - 19, 130, 23, 25, 11, 45, 19, 23, 45, 676, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 47, - 47, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 11, 47, 10, 10, 10, 10, 12, 12, 12, 12, - 12, 12, 12, 35, 60, 35, 12, 12, 13, 13, - 13, 13, 13, 13, 13, 109, 671, 60, 13, 13, - 14, 14, 14, 14, 14, 14, 14, 15, 109, 15, - 14, 14, 52, 12, 48, 22, 15, 48, 52, 21, - 670, 21, 15, 22, 15, 13, 21, 26, 22, 21, - 74, 26, 26, 26, 22, 26, 74, 14, 42, 42, - - 42, 42, 42, 42, 26, 82, 26, 40, 42, 43, - 43, 53, 44, 44, 664, 43, 49, 49, 44, 108, - 118, 43, 49, 82, 56, 53, 43, 118, 43, 44, - 108, 235, 53, 49, 42, 56, 79, 79, 56, 58, - 58, 56, 667, 667, 235, 58, 79, 40, 40, 40, - 40, 40, 40, 58, 40, 40, 58, 61, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 662, 59, 40, - 59, 176, 660, 59, 59, 61, 61, 61, 61, 656, - 176, 59, 62, 62, 62, 62, 63, 63, 63, 63, - 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, - - 120, 655, 652, 149, 65, 66, 66, 66, 66, 66, - 66, 66, 90, 149, 120, 67, 66, 67, 67, 67, - 67, 67, 67, 123, 123, 263, 249, 147, 263, 123, - 65, 90, 122, 147, 122, 122, 122, 122, 122, 122, - 123, 249, 66, 126, 126, 126, 136, 136, 150, 126, - 137, 137, 136, 252, 150, 159, 137, 650, 151, 151, - 126, 334, 648, 136, 151, 159, 252, 137, 152, 152, - 645, 151, 153, 153, 152, 151, 644, 334, 153, 163, - 163, 163, 163, 442, 643, 152, 442, 640, 639, 153, - 164, 164, 164, 164, 165, 165, 165, 165, 166, 166, - - 166, 166, 167, 167, 167, 167, 168, 168, 168, 168, - 169, 169, 169, 169, 171, 171, 171, 171, 171, 171, - 638, 637, 635, 172, 171, 172, 172, 172, 172, 172, - 172, 173, 173, 173, 173, 173, 173, 174, 174, 174, - 174, 174, 174, 231, 231, 231, 231, 231, 231, 634, - 171, 232, 232, 232, 232, 232, 232, 233, 233, 247, - 247, 265, 265, 233, 275, 247, 275, 265, 275, 266, - 266, 267, 267, 633, 233, 266, 247, 267, 265, 631, - 630, 275, 278, 278, 278, 278, 266, 626, 267, 279, - 279, 279, 279, 280, 280, 280, 280, 281, 281, 281, - - 281, 282, 282, 282, 282, 283, 283, 283, 283, 283, - 283, 284, 284, 284, 284, 284, 284, 386, 386, 499, - 499, 625, 624, 623, 621, 618, 617, 615, 614, 613, - 612, 611, 610, 607, 606, 604, 603, 602, 601, 386, - 499, 675, 675, 675, 677, 677, 600, 599, 597, 596, - 595, 593, 591, 590, 587, 578, 577, 576, 553, 546, - 545, 542, 541, 540, 539, 538, 537, 536, 535, 534, - 533, 531, 528, 527, 526, 525, 524, 523, 522, 521, - 520, 519, 518, 516, 515, 514, 513, 511, 509, 508, - 507, 506, 505, 504, 503, 502, 501, 500, 498, 497, - - 496, 495, 494, 491, 490, 489, 488, 487, 486, 485, - 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, + 1, 1, 1, 1, 1, 1, 1, 5, 23, 5, + 10, 27, 46, 23, 17, 46, 721, 10, 10, 10, + 10, 10, 10, 10, 16, 17, 16, 29, 17, 27, + 18, 116, 16, 11, 11, 11, 11, 11, 11, 11, + + 18, 19, 116, 53, 11, 29, 36, 19, 36, 53, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 48, + 48, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 11, 48, 10, 10, 10, 10, 12, 12, 12, 12, + 12, 12, 12, 61, 80, 80, 12, 12, 13, 13, + 13, 13, 13, 13, 13, 99, 61, 99, 13, 13, + 14, 14, 14, 14, 14, 14, 14, 15, 47, 15, + 14, 14, 47, 12, 49, 22, 15, 49, 24, 21, + 273, 21, 15, 22, 15, 13, 21, 24, 22, 21, + 25, 24, 25, 25, 22, 273, 722, 14, 45, 45, + + 92, 44, 44, 54, 45, 25, 26, 44, 26, 26, + 26, 26, 26, 44, 26, 45, 26, 54, 44, 92, + 44, 723, 26, 26, 54, 26, 41, 43, 43, 43, + 43, 43, 43, 50, 50, 57, 186, 43, 60, 50, + 60, 59, 59, 60, 60, 186, 57, 59, 75, 57, + 50, 60, 57, 140, 75, 59, 724, 84, 59, 63, + 63, 63, 63, 43, 728, 140, 41, 41, 41, 41, + 41, 41, 62, 41, 41, 84, 159, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 159, 729, 41, 731, + 62, 62, 62, 62, 64, 64, 64, 64, 65, 65, + + 65, 65, 66, 66, 66, 66, 66, 66, 108, 732, + 81, 81, 66, 67, 67, 67, 67, 67, 67, 67, + 81, 111, 108, 68, 67, 68, 68, 68, 68, 68, + 68, 117, 128, 117, 130, 111, 157, 160, 66, 128, + 133, 133, 157, 160, 117, 733, 133, 735, 130, 132, + 67, 132, 132, 132, 132, 132, 132, 133, 136, 136, + 136, 146, 146, 169, 136, 147, 147, 146, 161, 161, + 736, 147, 219, 169, 161, 136, 218, 287, 146, 243, + 287, 161, 147, 162, 162, 161, 163, 163, 218, 162, + 219, 243, 163, 173, 173, 173, 173, 737, 500, 738, + + 162, 500, 741, 163, 174, 174, 174, 174, 175, 175, + 175, 175, 176, 176, 176, 176, 177, 177, 177, 177, + 178, 178, 178, 178, 179, 179, 179, 179, 181, 181, + 181, 181, 181, 181, 742, 745, 749, 182, 181, 182, + 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, + 183, 184, 184, 184, 184, 184, 184, 255, 255, 255, + 255, 255, 255, 259, 181, 256, 256, 256, 256, 256, + 256, 257, 257, 271, 271, 751, 259, 257, 276, 271, + 289, 289, 753, 290, 290, 756, 289, 757, 257, 290, + 271, 276, 291, 291, 567, 567, 761, 289, 291, 299, + + 290, 299, 763, 299, 302, 302, 302, 302, 765, 291, + 303, 303, 303, 303, 771, 567, 299, 304, 304, 304, + 304, 305, 305, 305, 305, 306, 306, 306, 306, 307, + 307, 307, 307, 307, 307, 308, 308, 308, 308, 308, + 308, 375, 427, 427, 768, 768, 772, 777, 719, 717, + 714, 712, 710, 709, 707, 706, 705, 375, 704, 703, + 702, 699, 698, 696, 427, 776, 776, 776, 778, 778, + 695, 694, 693, 692, 691, 689, 688, 687, 685, 683, + 682, 679, 676, 675, 663, 662, 661, 651, 650, 649, + 648, 628, 621, 620, 617, 616, 615, 614, 613, 612, + + 611, 610, 609, 608, 606, 603, 602, 601, 600, 599, + 598, 597, 596, 595, 594, 593, 591, 590, 589, 588, + 586, 584, 583, 582, 581, 580, 579, 578, 577, 576, + 575, 574, 573, 572, 571, 570, 569, 568, 566, 565, + 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, + 554, 551, 550, 549, 548, 547, 546, 545, 544, 543, + 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, + 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, + 521, 520, 519, 518, 517, 516, 514, 513, 512, 511, + 510, 508, 507, 506, 505, 504, 503, 502, 499, 498, + + 496, 495, 494, 493, 490, 489, 488, 487, 486, 485, + 484, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, - 463, 462, 461, 460, 459, 458, 456, 455, 454, 453, - 452, 450, 449, 448, 447, 446, 445, 444, 441, 440, - 438, 437, 436, 435, 432, 431, 430, 429, 428, 427, - 426, 424, 423, 422, 421, 420, 419, 418, 417, 416, - 415, 414, 413, 412, 411, 410, 409, 408, 406, 405, - 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, - 394, 393, 392, 391, 390, 389, 388, 387, 384, 383, - - 382, 379, 378, 377, 376, 375, 374, 372, 370, 369, - 368, 366, 365, 364, 363, 362, 361, 360, 359, 358, - 357, 356, 355, 354, 353, 352, 351, 350, 349, 347, - 346, 345, 344, 343, 342, 341, 338, 337, 336, 333, - 332, 331, 330, 329, 328, 327, 326, 325, 324, 322, - 321, 320, 319, 318, 317, 316, 315, 313, 312, 311, - 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, - 300, 299, 298, 297, 296, 295, 294, 292, 291, 290, - 289, 288, 287, 286, 285, 277, 276, 274, 273, 272, - 271, 270, 269, 264, 262, 261, 260, 259, 258, 257, - - 256, 255, 253, 251, 250, 248, 246, 245, 242, 241, - 240, 239, 238, 237, 236, 234, 230, 229, 228, 227, - 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, - 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, - 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, - 195, 194, 192, 191, 189, 187, 186, 185, 184, 183, - 182, 181, 180, 179, 177, 175, 162, 161, 160, 158, - 157, 156, 155, 154, 148, 146, 145, 144, 143, 142, - 141, 140, 139, 138, 135, 134, 133, 132, 131, 129, - 128, 127, 125, 124, 121, 119, 117, 116, 115, 114, - - 113, 112, 111, 110, 107, 106, 105, 104, 103, 102, - 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, - 91, 89, 88, 87, 86, 85, 84, 83, 81, 80, - 78, 77, 76, 75, 73, 72, 71, 55, 54, 51, - 50, 37, 36, 34, 33, 32, 31, 30, 29, 28, - 20, 8, 7, 3, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674 + 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, + 453, 452, 451, 449, 448, 447, 446, 445, 444, 443, + 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, + 432, 431, 430, 429, 428, 425, 424, 423, 420, 419, + 418, 417, 416, 415, 413, 411, 410, 409, 407, 406, + 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, + 395, 394, 393, 392, 391, 390, 388, 387, 386, 385, + + 384, 383, 382, 379, 378, 377, 374, 373, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, + 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, + 349, 348, 347, 346, 345, 343, 342, 341, 340, 339, + 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, + 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, + 318, 316, 315, 314, 313, 312, 311, 310, 309, 301, + 300, 298, 297, 296, 295, 294, 293, 288, 286, 285, + 284, 283, 282, 281, 280, 279, 277, 275, 274, 272, + 270, 269, 266, 265, 264, 263, 262, 261, 260, 258, + + 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, + 244, 242, 241, 240, 239, 238, 237, 236, 235, 234, + 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, + 223, 222, 221, 220, 217, 216, 215, 214, 213, 212, + 211, 210, 209, 207, 206, 204, 203, 201, 199, 198, + 197, 196, 195, 194, 193, 192, 191, 190, 189, 187, + 185, 172, 171, 170, 168, 167, 166, 165, 164, 158, + 156, 155, 154, 153, 152, 151, 150, 149, 148, 145, + 144, 143, 142, 141, 139, 138, 137, 135, 134, 131, + 129, 127, 126, 125, 124, 123, 122, 121, 120, 119, + + 118, 115, 114, 113, 112, 110, 109, 107, 106, 105, + 104, 103, 102, 101, 100, 98, 97, 96, 95, 94, + 93, 91, 90, 89, 88, 87, 86, 85, 83, 82, + 79, 78, 77, 76, 74, 73, 72, 56, 55, 52, + 51, 38, 37, 35, 34, 33, 32, 31, 30, 28, + 20, 8, 7, 3, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, + 775, 775 } ; /* The intent behind this definition is that it'll catch @@ -916,6 +971,7 @@ static yyconst flex_int16_t yy_chk[1023] = #define require_ARB_vp (yyextra->mode == ARB_vertex) #define require_ARB_fp (yyextra->mode == ARB_fragment) +#define require_NV_fp (yyextra->option.NV_fragment) #define require_shadow (yyextra->option.Shadow) #define require_rect (yyextra->option.TexRect) #define require_texarray (yyextra->option.TexArray) @@ -1011,7 +1067,7 @@ swiz_from_char(char c) } while(0); #define YY_EXTRA_TYPE struct asm_parser_state * -#line 1015 "lex.yy.c" +#line 1071 "lex.yy.c" #define INITIAL 0 @@ -1257,10 +1313,10 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 135 "program_lexer.l" +#line 136 "program_lexer.l" -#line 1264 "lex.yy.c" +#line 1320 "lex.yy.c" yylval = yylval_param; @@ -1317,13 +1373,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 >= 675 ) + if ( yy_current_state >= 776 ) 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_base[yy_current_state] != 955 ); + while ( yy_base[yy_current_state] != 1055 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1349,17 +1405,17 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 137 "program_lexer.l" +#line 138 "program_lexer.l" { return ARBvp_10; } YY_BREAK case 2: YY_RULE_SETUP -#line 138 "program_lexer.l" +#line 139 "program_lexer.l" { return ARBfp_10; } YY_BREAK case 3: YY_RULE_SETUP -#line 139 "program_lexer.l" +#line 140 "program_lexer.l" { yylval->integer = at_address; return_token_or_IDENTIFIER(require_ARB_vp, ADDRESS); @@ -1367,813 +1423,983 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 143 "program_lexer.l" +#line 144 "program_lexer.l" { return ALIAS; } YY_BREAK case 5: YY_RULE_SETUP -#line 144 "program_lexer.l" +#line 145 "program_lexer.l" { return ATTRIB; } YY_BREAK case 6: YY_RULE_SETUP -#line 145 "program_lexer.l" +#line 146 "program_lexer.l" { return END; } YY_BREAK case 7: YY_RULE_SETUP -#line 146 "program_lexer.l" +#line 147 "program_lexer.l" { return OPTION; } YY_BREAK case 8: YY_RULE_SETUP -#line 147 "program_lexer.l" +#line 148 "program_lexer.l" { return OUTPUT; } YY_BREAK case 9: YY_RULE_SETUP -#line 148 "program_lexer.l" +#line 149 "program_lexer.l" { return PARAM; } YY_BREAK case 10: YY_RULE_SETUP -#line 149 "program_lexer.l" +#line 150 "program_lexer.l" { yylval->integer = at_temp; return TEMP; } YY_BREAK case 11: YY_RULE_SETUP -#line 151 "program_lexer.l" +#line 152 "program_lexer.l" { return_opcode( 1, VECTOR_OP, ABS, OFF); } YY_BREAK case 12: YY_RULE_SETUP -#line 152 "program_lexer.l" +#line 153 "program_lexer.l" { return_opcode(require_ARB_fp, VECTOR_OP, ABS, ZERO_ONE); } YY_BREAK case 13: YY_RULE_SETUP -#line 153 "program_lexer.l" +#line 154 "program_lexer.l" { return_opcode( 1, BIN_OP, ADD, OFF); } YY_BREAK case 14: YY_RULE_SETUP -#line 154 "program_lexer.l" +#line 155 "program_lexer.l" { return_opcode(require_ARB_fp, BIN_OP, ADD, ZERO_ONE); } YY_BREAK case 15: YY_RULE_SETUP -#line 155 "program_lexer.l" +#line 156 "program_lexer.l" { return_opcode(require_ARB_vp, ARL, ARL, OFF); } YY_BREAK case 16: YY_RULE_SETUP -#line 157 "program_lexer.l" +#line 158 "program_lexer.l" { return_opcode(require_ARB_fp, TRI_OP, CMP, OFF); } YY_BREAK case 17: YY_RULE_SETUP -#line 158 "program_lexer.l" +#line 159 "program_lexer.l" { return_opcode(require_ARB_fp, TRI_OP, CMP, ZERO_ONE); } YY_BREAK case 18: YY_RULE_SETUP -#line 159 "program_lexer.l" +#line 160 "program_lexer.l" { return_opcode(require_ARB_fp, SCALAR_OP, COS, OFF); } YY_BREAK case 19: YY_RULE_SETUP -#line 160 "program_lexer.l" +#line 161 "program_lexer.l" { return_opcode(require_ARB_fp, SCALAR_OP, COS, ZERO_ONE); } YY_BREAK case 20: YY_RULE_SETUP -#line 162 "program_lexer.l" -{ return_opcode( 1, BIN_OP, DP3, OFF); } +#line 163 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, DDX, OFF); } YY_BREAK case 21: YY_RULE_SETUP -#line 163 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, DP3, ZERO_ONE); } +#line 164 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, DDX, ZERO_ONE); } YY_BREAK case 22: YY_RULE_SETUP -#line 164 "program_lexer.l" -{ return_opcode( 1, BIN_OP, DP4, OFF); } +#line 165 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, DDY, OFF); } YY_BREAK case 23: YY_RULE_SETUP -#line 165 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, DP4, ZERO_ONE); } +#line 166 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, DDY, ZERO_ONE); } YY_BREAK case 24: YY_RULE_SETUP -#line 166 "program_lexer.l" -{ return_opcode( 1, BIN_OP, DPH, OFF); } +#line 167 "program_lexer.l" +{ return_opcode( 1, BIN_OP, DP3, OFF); } YY_BREAK case 25: YY_RULE_SETUP -#line 167 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, DPH, ZERO_ONE); } +#line 168 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, DP3, ZERO_ONE); } YY_BREAK case 26: YY_RULE_SETUP -#line 168 "program_lexer.l" -{ return_opcode( 1, BIN_OP, DST, OFF); } +#line 169 "program_lexer.l" +{ return_opcode( 1, BIN_OP, DP4, OFF); } YY_BREAK case 27: YY_RULE_SETUP -#line 169 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, DST, ZERO_ONE); } +#line 170 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, DP4, ZERO_ONE); } YY_BREAK case 28: YY_RULE_SETUP #line 171 "program_lexer.l" -{ return_opcode( 1, SCALAR_OP, EX2, OFF); } +{ return_opcode( 1, BIN_OP, DPH, OFF); } YY_BREAK case 29: YY_RULE_SETUP #line 172 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, EX2, ZERO_ONE); } +{ return_opcode(require_ARB_fp, BIN_OP, DPH, ZERO_ONE); } YY_BREAK case 30: YY_RULE_SETUP #line 173 "program_lexer.l" -{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, OFF); } +{ return_opcode( 1, BIN_OP, DST, OFF); } YY_BREAK case 31: YY_RULE_SETUP -#line 175 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, FLR, OFF); } +#line 174 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, DST, ZERO_ONE); } YY_BREAK case 32: YY_RULE_SETUP #line 176 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, FLR, ZERO_ONE); } +{ return_opcode( 1, SCALAR_OP, EX2, OFF); } YY_BREAK case 33: YY_RULE_SETUP #line 177 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, FRC, OFF); } +{ return_opcode(require_ARB_fp, SCALAR_OP, EX2, ZERO_ONE); } YY_BREAK case 34: YY_RULE_SETUP #line 178 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, FRC, ZERO_ONE); } +{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, OFF); } YY_BREAK case 35: YY_RULE_SETUP #line 180 "program_lexer.l" -{ return_opcode(require_ARB_fp, KIL, KIL, OFF); } +{ return_opcode( 1, VECTOR_OP, FLR, OFF); } YY_BREAK case 36: YY_RULE_SETUP -#line 182 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, LIT, OFF); } +#line 181 "program_lexer.l" +{ return_opcode(require_ARB_fp, VECTOR_OP, FLR, ZERO_ONE); } YY_BREAK case 37: YY_RULE_SETUP -#line 183 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, LIT, ZERO_ONE); } +#line 182 "program_lexer.l" +{ return_opcode( 1, VECTOR_OP, FRC, OFF); } YY_BREAK case 38: YY_RULE_SETUP -#line 184 "program_lexer.l" -{ return_opcode( 1, SCALAR_OP, LG2, OFF); } +#line 183 "program_lexer.l" +{ return_opcode(require_ARB_fp, VECTOR_OP, FRC, ZERO_ONE); } YY_BREAK case 39: YY_RULE_SETUP #line 185 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, LG2, ZERO_ONE); } +{ return_opcode(require_ARB_fp, KIL, KIL, OFF); } YY_BREAK case 40: YY_RULE_SETUP -#line 186 "program_lexer.l" -{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, OFF); } +#line 187 "program_lexer.l" +{ return_opcode( 1, VECTOR_OP, LIT, OFF); } YY_BREAK case 41: YY_RULE_SETUP -#line 187 "program_lexer.l" -{ return_opcode(require_ARB_fp, TRI_OP, LRP, OFF); } +#line 188 "program_lexer.l" +{ return_opcode(require_ARB_fp, VECTOR_OP, LIT, ZERO_ONE); } YY_BREAK case 42: YY_RULE_SETUP -#line 188 "program_lexer.l" -{ return_opcode(require_ARB_fp, TRI_OP, LRP, ZERO_ONE); } +#line 189 "program_lexer.l" +{ return_opcode( 1, SCALAR_OP, LG2, OFF); } YY_BREAK case 43: YY_RULE_SETUP #line 190 "program_lexer.l" -{ return_opcode( 1, TRI_OP, MAD, OFF); } +{ return_opcode(require_ARB_fp, SCALAR_OP, LG2, ZERO_ONE); } YY_BREAK case 44: YY_RULE_SETUP #line 191 "program_lexer.l" -{ return_opcode(require_ARB_fp, TRI_OP, MAD, ZERO_ONE); } +{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, OFF); } YY_BREAK case 45: YY_RULE_SETUP #line 192 "program_lexer.l" -{ return_opcode( 1, BIN_OP, MAX, OFF); } +{ return_opcode(require_ARB_fp, TRI_OP, LRP, OFF); } YY_BREAK case 46: YY_RULE_SETUP #line 193 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, MAX, ZERO_ONE); } +{ return_opcode(require_ARB_fp, TRI_OP, LRP, ZERO_ONE); } YY_BREAK case 47: YY_RULE_SETUP -#line 194 "program_lexer.l" -{ return_opcode( 1, BIN_OP, MIN, OFF); } +#line 195 "program_lexer.l" +{ return_opcode( 1, TRI_OP, MAD, OFF); } YY_BREAK case 48: YY_RULE_SETUP -#line 195 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, MIN, ZERO_ONE); } +#line 196 "program_lexer.l" +{ return_opcode(require_ARB_fp, TRI_OP, MAD, ZERO_ONE); } YY_BREAK case 49: YY_RULE_SETUP -#line 196 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, MOV, OFF); } +#line 197 "program_lexer.l" +{ return_opcode( 1, BIN_OP, MAX, OFF); } YY_BREAK case 50: YY_RULE_SETUP -#line 197 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, MOV, ZERO_ONE); } +#line 198 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, MAX, ZERO_ONE); } YY_BREAK case 51: YY_RULE_SETUP -#line 198 "program_lexer.l" -{ return_opcode( 1, BIN_OP, MUL, OFF); } +#line 199 "program_lexer.l" +{ return_opcode( 1, BIN_OP, MIN, OFF); } YY_BREAK case 52: YY_RULE_SETUP -#line 199 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, MUL, ZERO_ONE); } +#line 200 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, MIN, ZERO_ONE); } YY_BREAK case 53: YY_RULE_SETUP #line 201 "program_lexer.l" -{ return_opcode( 1, BINSC_OP, POW, OFF); } +{ return_opcode( 1, VECTOR_OP, MOV, OFF); } YY_BREAK case 54: YY_RULE_SETUP #line 202 "program_lexer.l" -{ return_opcode(require_ARB_fp, BINSC_OP, POW, ZERO_ONE); } +{ return_opcode(require_ARB_fp, VECTOR_OP, MOV, ZERO_ONE); } YY_BREAK case 55: YY_RULE_SETUP -#line 204 "program_lexer.l" -{ return_opcode( 1, SCALAR_OP, RCP, OFF); } +#line 203 "program_lexer.l" +{ return_opcode( 1, BIN_OP, MUL, OFF); } YY_BREAK case 56: YY_RULE_SETUP -#line 205 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, RCP, ZERO_ONE); } +#line 204 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, MUL, ZERO_ONE); } YY_BREAK case 57: YY_RULE_SETUP #line 206 "program_lexer.l" -{ return_opcode( 1, SCALAR_OP, RSQ, OFF); } +{ return_opcode(require_NV_fp, VECTOR_OP, PK2H, OFF); } YY_BREAK case 58: YY_RULE_SETUP #line 207 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, RSQ, ZERO_ONE); } +{ return_opcode(require_NV_fp, VECTOR_OP, PK2H, ZERO_ONE); } YY_BREAK case 59: YY_RULE_SETUP -#line 209 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, OFF); } +#line 208 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK2US, OFF); } YY_BREAK case 60: YY_RULE_SETUP -#line 210 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, ZERO_ONE); } +#line 209 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK2US, ZERO_ONE); } YY_BREAK case 61: YY_RULE_SETUP -#line 211 "program_lexer.l" -{ return_opcode( 1, BIN_OP, SGE, OFF); } +#line 210 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK4B, OFF); } YY_BREAK case 62: YY_RULE_SETUP -#line 212 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, SGE, ZERO_ONE); } +#line 211 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK4B, ZERO_ONE); } YY_BREAK case 63: YY_RULE_SETUP -#line 213 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, OFF); } +#line 212 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, OFF); } YY_BREAK case 64: YY_RULE_SETUP -#line 214 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, ZERO_ONE); } +#line 213 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, ZERO_ONE); } YY_BREAK case 65: YY_RULE_SETUP -#line 215 "program_lexer.l" -{ return_opcode( 1, BIN_OP, SLT, OFF); } +#line 214 "program_lexer.l" +{ return_opcode( 1, BINSC_OP, POW, OFF); } YY_BREAK case 66: YY_RULE_SETUP -#line 216 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, SLT, ZERO_ONE); } +#line 215 "program_lexer.l" +{ return_opcode(require_ARB_fp, BINSC_OP, POW, ZERO_ONE); } YY_BREAK case 67: YY_RULE_SETUP #line 217 "program_lexer.l" -{ return_opcode( 1, BIN_OP, SUB, OFF); } +{ return_opcode( 1, SCALAR_OP, RCP, OFF); } YY_BREAK case 68: YY_RULE_SETUP #line 218 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, SUB, ZERO_ONE); } +{ return_opcode(require_ARB_fp, SCALAR_OP, RCP, ZERO_ONE); } YY_BREAK case 69: YY_RULE_SETUP #line 219 "program_lexer.l" -{ return_opcode( 1, SWZ, SWZ, OFF); } +{ return_opcode(require_NV_fp, BIN_OP, RFL, OFF); } YY_BREAK case 70: YY_RULE_SETUP #line 220 "program_lexer.l" -{ return_opcode(require_ARB_fp, SWZ, SWZ, ZERO_ONE); } +{ return_opcode(require_NV_fp, BIN_OP, RFL, ZERO_ONE); } YY_BREAK case 71: YY_RULE_SETUP -#line 222 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, OFF); } +#line 221 "program_lexer.l" +{ return_opcode( 1, SCALAR_OP, RSQ, OFF); } YY_BREAK case 72: YY_RULE_SETUP -#line 223 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, ZERO_ONE); } +#line 222 "program_lexer.l" +{ return_opcode(require_ARB_fp, SCALAR_OP, RSQ, ZERO_ONE); } YY_BREAK case 73: YY_RULE_SETUP #line 224 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, OFF); } +{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, OFF); } YY_BREAK case 74: YY_RULE_SETUP #line 225 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, ZERO_ONE); } +{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, ZERO_ONE); } YY_BREAK case 75: YY_RULE_SETUP #line 226 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, OFF); } +{ return_opcode(require_NV_fp, BIN_OP, SEQ, OFF); } YY_BREAK case 76: YY_RULE_SETUP #line 227 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, ZERO_ONE); } +{ return_opcode(require_NV_fp, BIN_OP, SEQ, ZERO_ONE); } YY_BREAK case 77: YY_RULE_SETUP -#line 229 "program_lexer.l" -{ return_opcode( 1, BIN_OP, XPD, OFF); } +#line 228 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SFL, OFF); } YY_BREAK case 78: YY_RULE_SETUP -#line 230 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, XPD, ZERO_ONE); } +#line 229 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SFL, ZERO_ONE); } YY_BREAK case 79: YY_RULE_SETUP -#line 232 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } +#line 230 "program_lexer.l" +{ return_opcode( 1, BIN_OP, SGE, OFF); } YY_BREAK case 80: YY_RULE_SETUP -#line 233 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } +#line 231 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, SGE, ZERO_ONE); } YY_BREAK case 81: YY_RULE_SETUP -#line 234 "program_lexer.l" -{ return PROGRAM; } +#line 232 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SGT, OFF); } YY_BREAK case 82: YY_RULE_SETUP -#line 235 "program_lexer.l" -{ return STATE; } +#line 233 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SGT, ZERO_ONE); } YY_BREAK case 83: YY_RULE_SETUP -#line 236 "program_lexer.l" -{ return RESULT; } +#line 234 "program_lexer.l" +{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, OFF); } YY_BREAK case 84: YY_RULE_SETUP -#line 238 "program_lexer.l" -{ return AMBIENT; } +#line 235 "program_lexer.l" +{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, ZERO_ONE); } YY_BREAK case 85: YY_RULE_SETUP -#line 239 "program_lexer.l" -{ return ATTENUATION; } +#line 236 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SLE, OFF); } YY_BREAK case 86: YY_RULE_SETUP -#line 240 "program_lexer.l" -{ return BACK; } +#line 237 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SLE, ZERO_ONE); } YY_BREAK case 87: YY_RULE_SETUP -#line 241 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, CLIP); } +#line 238 "program_lexer.l" +{ return_opcode( 1, BIN_OP, SLT, OFF); } YY_BREAK case 88: YY_RULE_SETUP -#line 242 "program_lexer.l" -{ return COLOR; } +#line 239 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, SLT, ZERO_ONE); } YY_BREAK case 89: YY_RULE_SETUP -#line 243 "program_lexer.l" -{ return_token_or_DOT(require_ARB_fp, DEPTH); } +#line 240 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SNE, OFF); } YY_BREAK case 90: YY_RULE_SETUP -#line 244 "program_lexer.l" -{ return DIFFUSE; } +#line 241 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SNE, ZERO_ONE); } YY_BREAK case 91: YY_RULE_SETUP -#line 245 "program_lexer.l" -{ return DIRECTION; } +#line 242 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, STR, OFF); } YY_BREAK case 92: YY_RULE_SETUP -#line 246 "program_lexer.l" -{ return EMISSION; } +#line 243 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, STR, ZERO_ONE); } YY_BREAK case 93: YY_RULE_SETUP -#line 247 "program_lexer.l" -{ return ENV; } +#line 244 "program_lexer.l" +{ return_opcode( 1, BIN_OP, SUB, OFF); } YY_BREAK case 94: YY_RULE_SETUP -#line 248 "program_lexer.l" -{ return EYE; } +#line 245 "program_lexer.l" +{ return_opcode(require_ARB_fp, BIN_OP, SUB, ZERO_ONE); } YY_BREAK case 95: YY_RULE_SETUP -#line 249 "program_lexer.l" -{ return FOGCOORD; } +#line 246 "program_lexer.l" +{ return_opcode( 1, SWZ, SWZ, OFF); } YY_BREAK case 96: YY_RULE_SETUP -#line 250 "program_lexer.l" -{ return FOG; } +#line 247 "program_lexer.l" +{ return_opcode(require_ARB_fp, SWZ, SWZ, ZERO_ONE); } YY_BREAK case 97: YY_RULE_SETUP -#line 251 "program_lexer.l" -{ return FRONT; } +#line 249 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, OFF); } YY_BREAK case 98: YY_RULE_SETUP -#line 252 "program_lexer.l" -{ return HALF; } +#line 250 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, ZERO_ONE); } YY_BREAK case 99: YY_RULE_SETUP -#line 253 "program_lexer.l" -{ return INVERSE; } +#line 251 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, OFF); } YY_BREAK case 100: YY_RULE_SETUP -#line 254 "program_lexer.l" -{ return INVTRANS; } +#line 252 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, ZERO_ONE); } YY_BREAK case 101: YY_RULE_SETUP -#line 255 "program_lexer.l" -{ return LIGHT; } +#line 253 "program_lexer.l" +{ return_opcode(require_NV_fp, TXD_OP, TXD, OFF); } YY_BREAK case 102: YY_RULE_SETUP -#line 256 "program_lexer.l" -{ return LIGHTMODEL; } +#line 254 "program_lexer.l" +{ return_opcode(require_NV_fp, TXD_OP, TXD, ZERO_ONE); } YY_BREAK case 103: YY_RULE_SETUP -#line 257 "program_lexer.l" -{ return LIGHTPROD; } +#line 255 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, OFF); } YY_BREAK case 104: YY_RULE_SETUP -#line 258 "program_lexer.l" -{ return LOCAL; } +#line 256 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, ZERO_ONE); } YY_BREAK case 105: YY_RULE_SETUP -#line 259 "program_lexer.l" -{ return MATERIAL; } +#line 258 "program_lexer.l" +{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, OFF); } YY_BREAK case 106: YY_RULE_SETUP -#line 260 "program_lexer.l" -{ return MAT_PROGRAM; } +#line 259 "program_lexer.l" +{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, ZERO_ONE); } YY_BREAK case 107: YY_RULE_SETUP -#line 261 "program_lexer.l" -{ return MATRIX; } +#line 260 "program_lexer.l" +{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, OFF); } YY_BREAK case 108: YY_RULE_SETUP -#line 262 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); } +#line 261 "program_lexer.l" +{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, ZERO_ONE); } YY_BREAK case 109: YY_RULE_SETUP #line 263 "program_lexer.l" -{ return MODELVIEW; } +{ return_opcode(require_NV_fp, TRI_OP, X2D, OFF); } YY_BREAK case 110: YY_RULE_SETUP #line 264 "program_lexer.l" -{ return MVP; } +{ return_opcode(require_NV_fp, TRI_OP, X2D, ZERO_ONE); } YY_BREAK case 111: YY_RULE_SETUP #line 265 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, NORMAL); } +{ return_opcode( 1, BIN_OP, XPD, OFF); } YY_BREAK case 112: YY_RULE_SETUP #line 266 "program_lexer.l" -{ return OBJECT; } +{ return_opcode(require_ARB_fp, BIN_OP, XPD, ZERO_ONE); } YY_BREAK case 113: YY_RULE_SETUP -#line 267 "program_lexer.l" -{ return PALETTE; } +#line 268 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } YY_BREAK case 114: YY_RULE_SETUP -#line 268 "program_lexer.l" -{ return PARAMS; } +#line 269 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } YY_BREAK case 115: YY_RULE_SETUP -#line 269 "program_lexer.l" -{ return PLANE; } +#line 270 "program_lexer.l" +{ return PROGRAM; } YY_BREAK case 116: YY_RULE_SETUP -#line 270 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, POINT); } +#line 271 "program_lexer.l" +{ return STATE; } YY_BREAK case 117: YY_RULE_SETUP -#line 271 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, POINTSIZE); } +#line 272 "program_lexer.l" +{ return RESULT; } YY_BREAK case 118: YY_RULE_SETUP -#line 272 "program_lexer.l" -{ return POSITION; } +#line 274 "program_lexer.l" +{ return AMBIENT; } YY_BREAK case 119: YY_RULE_SETUP -#line 273 "program_lexer.l" -{ return PRIMARY; } +#line 275 "program_lexer.l" +{ return ATTENUATION; } YY_BREAK case 120: YY_RULE_SETUP -#line 274 "program_lexer.l" -{ return PROJECTION; } +#line 276 "program_lexer.l" +{ return BACK; } YY_BREAK case 121: YY_RULE_SETUP -#line 275 "program_lexer.l" -{ return_token_or_DOT(require_ARB_fp, RANGE); } +#line 277 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, CLIP); } YY_BREAK case 122: YY_RULE_SETUP -#line 276 "program_lexer.l" -{ return ROW; } +#line 278 "program_lexer.l" +{ return COLOR; } YY_BREAK case 123: YY_RULE_SETUP -#line 277 "program_lexer.l" -{ return SCENECOLOR; } +#line 279 "program_lexer.l" +{ return_token_or_DOT(require_ARB_fp, DEPTH); } YY_BREAK case 124: YY_RULE_SETUP -#line 278 "program_lexer.l" -{ return SECONDARY; } +#line 280 "program_lexer.l" +{ return DIFFUSE; } YY_BREAK case 125: YY_RULE_SETUP -#line 279 "program_lexer.l" -{ return SHININESS; } +#line 281 "program_lexer.l" +{ return DIRECTION; } YY_BREAK case 126: YY_RULE_SETUP -#line 280 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, SIZE); } +#line 282 "program_lexer.l" +{ return EMISSION; } YY_BREAK case 127: YY_RULE_SETUP -#line 281 "program_lexer.l" -{ return SPECULAR; } +#line 283 "program_lexer.l" +{ return ENV; } YY_BREAK case 128: YY_RULE_SETUP -#line 282 "program_lexer.l" -{ return SPOT; } +#line 284 "program_lexer.l" +{ return EYE; } YY_BREAK case 129: YY_RULE_SETUP -#line 283 "program_lexer.l" -{ return TEXCOORD; } +#line 285 "program_lexer.l" +{ return FOGCOORD; } YY_BREAK case 130: YY_RULE_SETUP -#line 284 "program_lexer.l" -{ return_token_or_DOT(require_ARB_fp, TEXENV); } +#line 286 "program_lexer.l" +{ return FOG; } YY_BREAK case 131: YY_RULE_SETUP -#line 285 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, TEXGEN); } +#line 287 "program_lexer.l" +{ return FRONT; } YY_BREAK case 132: YY_RULE_SETUP -#line 286 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); } +#line 288 "program_lexer.l" +{ return HALF; } YY_BREAK case 133: YY_RULE_SETUP -#line 287 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); } +#line 289 "program_lexer.l" +{ return INVERSE; } YY_BREAK case 134: YY_RULE_SETUP -#line 288 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); } +#line 290 "program_lexer.l" +{ return INVTRANS; } YY_BREAK case 135: YY_RULE_SETUP -#line 289 "program_lexer.l" -{ return TEXTURE; } +#line 291 "program_lexer.l" +{ return LIGHT; } YY_BREAK case 136: YY_RULE_SETUP -#line 290 "program_lexer.l" -{ return TRANSPOSE; } +#line 292 "program_lexer.l" +{ return LIGHTMODEL; } YY_BREAK case 137: YY_RULE_SETUP -#line 291 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); } +#line 293 "program_lexer.l" +{ return LIGHTPROD; } YY_BREAK case 138: YY_RULE_SETUP -#line 292 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, WEIGHT); } +#line 294 "program_lexer.l" +{ return LOCAL; } YY_BREAK case 139: YY_RULE_SETUP -#line 294 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); } +#line 295 "program_lexer.l" +{ return MATERIAL; } YY_BREAK case 140: YY_RULE_SETUP -#line 295 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); } +#line 296 "program_lexer.l" +{ return MAT_PROGRAM; } YY_BREAK case 141: YY_RULE_SETUP -#line 296 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); } +#line 297 "program_lexer.l" +{ return MATRIX; } YY_BREAK case 142: YY_RULE_SETUP -#line 297 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); } +#line 298 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); } YY_BREAK case 143: YY_RULE_SETUP -#line 298 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); } +#line 299 "program_lexer.l" +{ return MODELVIEW; } YY_BREAK case 144: YY_RULE_SETUP -#line 299 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); } +#line 300 "program_lexer.l" +{ return MVP; } YY_BREAK case 145: YY_RULE_SETUP -#line 300 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); } +#line 301 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, NORMAL); } YY_BREAK case 146: YY_RULE_SETUP -#line 301 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); } +#line 302 "program_lexer.l" +{ return OBJECT; } YY_BREAK case 147: YY_RULE_SETUP -#line 302 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); } +#line 303 "program_lexer.l" +{ return PALETTE; } YY_BREAK case 148: YY_RULE_SETUP -#line 303 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); } +#line 304 "program_lexer.l" +{ return PARAMS; } YY_BREAK case 149: YY_RULE_SETUP -#line 304 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); } +#line 305 "program_lexer.l" +{ return PLANE; } YY_BREAK case 150: YY_RULE_SETUP -#line 305 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); } +#line 306 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, POINT); } YY_BREAK case 151: YY_RULE_SETUP -#line 306 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); } +#line 307 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, POINTSIZE); } YY_BREAK case 152: YY_RULE_SETUP #line 308 "program_lexer.l" +{ return POSITION; } + YY_BREAK +case 153: +YY_RULE_SETUP +#line 309 "program_lexer.l" +{ return PRIMARY; } + YY_BREAK +case 154: +YY_RULE_SETUP +#line 310 "program_lexer.l" +{ return PROJECTION; } + YY_BREAK +case 155: +YY_RULE_SETUP +#line 311 "program_lexer.l" +{ return_token_or_DOT(require_ARB_fp, RANGE); } + YY_BREAK +case 156: +YY_RULE_SETUP +#line 312 "program_lexer.l" +{ return ROW; } + YY_BREAK +case 157: +YY_RULE_SETUP +#line 313 "program_lexer.l" +{ return SCENECOLOR; } + YY_BREAK +case 158: +YY_RULE_SETUP +#line 314 "program_lexer.l" +{ return SECONDARY; } + YY_BREAK +case 159: +YY_RULE_SETUP +#line 315 "program_lexer.l" +{ return SHININESS; } + YY_BREAK +case 160: +YY_RULE_SETUP +#line 316 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, SIZE); } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 317 "program_lexer.l" +{ return SPECULAR; } + YY_BREAK +case 162: +YY_RULE_SETUP +#line 318 "program_lexer.l" +{ return SPOT; } + YY_BREAK +case 163: +YY_RULE_SETUP +#line 319 "program_lexer.l" +{ return TEXCOORD; } + YY_BREAK +case 164: +YY_RULE_SETUP +#line 320 "program_lexer.l" +{ return_token_or_DOT(require_ARB_fp, TEXENV); } + YY_BREAK +case 165: +YY_RULE_SETUP +#line 321 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, TEXGEN); } + YY_BREAK +case 166: +YY_RULE_SETUP +#line 322 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); } + YY_BREAK +case 167: +YY_RULE_SETUP +#line 323 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); } + YY_BREAK +case 168: +YY_RULE_SETUP +#line 324 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); } + YY_BREAK +case 169: +YY_RULE_SETUP +#line 325 "program_lexer.l" +{ return TEXTURE; } + YY_BREAK +case 170: +YY_RULE_SETUP +#line 326 "program_lexer.l" +{ return TRANSPOSE; } + YY_BREAK +case 171: +YY_RULE_SETUP +#line 327 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); } + YY_BREAK +case 172: +YY_RULE_SETUP +#line 328 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, WEIGHT); } + YY_BREAK +case 173: +YY_RULE_SETUP +#line 330 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); } + YY_BREAK +case 174: +YY_RULE_SETUP +#line 331 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); } + YY_BREAK +case 175: +YY_RULE_SETUP +#line 332 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); } + YY_BREAK +case 176: +YY_RULE_SETUP +#line 333 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); } + YY_BREAK +case 177: +YY_RULE_SETUP +#line 334 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); } + YY_BREAK +case 178: +YY_RULE_SETUP +#line 335 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); } + YY_BREAK +case 179: +YY_RULE_SETUP +#line 336 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); } + YY_BREAK +case 180: +YY_RULE_SETUP +#line 337 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); } + YY_BREAK +case 181: +YY_RULE_SETUP +#line 338 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); } + YY_BREAK +case 182: +YY_RULE_SETUP +#line 339 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); } + YY_BREAK +case 183: +YY_RULE_SETUP +#line 340 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); } + YY_BREAK +case 184: +YY_RULE_SETUP +#line 341 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); } + YY_BREAK +case 185: +YY_RULE_SETUP +#line 342 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); } + YY_BREAK +case 186: +YY_RULE_SETUP +#line 344 "program_lexer.l" { yylval->string = strdup(yytext); return IDENTIFIER; } YY_BREAK -case 153: +case 187: YY_RULE_SETUP -#line 313 "program_lexer.l" +#line 349 "program_lexer.l" { return DOT_DOT; } YY_BREAK -case 154: +case 188: YY_RULE_SETUP -#line 315 "program_lexer.l" +#line 351 "program_lexer.l" { yylval->integer = strtol(yytext, NULL, 10); return INTEGER; } YY_BREAK -case 155: +case 189: YY_RULE_SETUP -#line 319 "program_lexer.l" +#line 355 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 156: -/* rule 156 can match eol */ +case 190: +/* rule 190 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 323 "program_lexer.l" +#line 359 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 157: +case 191: YY_RULE_SETUP -#line 327 "program_lexer.l" +#line 363 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 158: +case 192: YY_RULE_SETUP -#line 331 "program_lexer.l" +#line 367 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 159: +case 193: YY_RULE_SETUP -#line 336 "program_lexer.l" +#line 372 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; return MASK4; } YY_BREAK -case 160: +case 194: YY_RULE_SETUP -#line 342 "program_lexer.l" +#line 378 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2181,27 +2407,27 @@ YY_RULE_SETUP return MASK3; } YY_BREAK -case 161: +case 195: YY_RULE_SETUP -#line 348 "program_lexer.l" +#line 384 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; return MASK3; } YY_BREAK -case 162: +case 196: YY_RULE_SETUP -#line 353 "program_lexer.l" +#line 389 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; return MASK3; } YY_BREAK -case 163: +case 197: YY_RULE_SETUP -#line 359 "program_lexer.l" +#line 395 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2209,9 +2435,9 @@ YY_RULE_SETUP return MASK2; } YY_BREAK -case 164: +case 198: YY_RULE_SETUP -#line 365 "program_lexer.l" +#line 401 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2219,18 +2445,18 @@ YY_RULE_SETUP return MASK2; } YY_BREAK -case 165: +case 199: YY_RULE_SETUP -#line 371 "program_lexer.l" +#line 407 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; return MASK2; } YY_BREAK -case 166: +case 200: YY_RULE_SETUP -#line 377 "program_lexer.l" +#line 413 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2238,9 +2464,9 @@ YY_RULE_SETUP return MASK1; } YY_BREAK -case 167: +case 201: YY_RULE_SETUP -#line 384 "program_lexer.l" +#line 420 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2250,18 +2476,18 @@ YY_RULE_SETUP return SWIZZLE; } YY_BREAK -case 168: +case 202: YY_RULE_SETUP -#line 393 "program_lexer.l" +#line 429 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; return_token_or_DOT(require_ARB_fp, MASK4); } YY_BREAK -case 169: +case 203: YY_RULE_SETUP -#line 399 "program_lexer.l" +#line 435 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2269,27 +2495,27 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 170: +case 204: YY_RULE_SETUP -#line 405 "program_lexer.l" +#line 441 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 171: +case 205: YY_RULE_SETUP -#line 410 "program_lexer.l" +#line 446 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 172: +case 206: YY_RULE_SETUP -#line 416 "program_lexer.l" +#line 452 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2297,9 +2523,9 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 173: +case 207: YY_RULE_SETUP -#line 422 "program_lexer.l" +#line 458 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2307,18 +2533,18 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 174: +case 208: YY_RULE_SETUP -#line 428 "program_lexer.l" +#line 464 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 175: +case 209: YY_RULE_SETUP -#line 434 "program_lexer.l" +#line 470 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2326,9 +2552,9 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK1); } YY_BREAK -case 176: +case 210: YY_RULE_SETUP -#line 442 "program_lexer.l" +#line 478 "program_lexer.l" { if (require_ARB_vp) { return TEXGEN_R; @@ -2340,9 +2566,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 211: YY_RULE_SETUP -#line 453 "program_lexer.l" +#line 489 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2352,15 +2578,15 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, SWIZZLE); } YY_BREAK -case 178: +case 212: YY_RULE_SETUP -#line 462 "program_lexer.l" +#line 498 "program_lexer.l" { return DOT; } YY_BREAK -case 179: -/* rule 179 can match eol */ +case 213: +/* rule 213 can match eol */ YY_RULE_SETUP -#line 464 "program_lexer.l" +#line 500 "program_lexer.l" { yylloc->first_line++; yylloc->first_column = 1; @@ -2369,30 +2595,30 @@ YY_RULE_SETUP yylloc->position++; } YY_BREAK -case 180: +case 214: YY_RULE_SETUP -#line 471 "program_lexer.l" +#line 507 "program_lexer.l" /* eat whitespace */ ; YY_BREAK -case 181: +case 215: *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 472 "program_lexer.l" +#line 508 "program_lexer.l" /* eat comments */ ; YY_BREAK -case 182: +case 216: YY_RULE_SETUP -#line 473 "program_lexer.l" +#line 509 "program_lexer.l" { return yytext[0]; } YY_BREAK -case 183: +case 217: YY_RULE_SETUP -#line 474 "program_lexer.l" +#line 510 "program_lexer.l" ECHO; YY_BREAK -#line 2396 "lex.yy.c" +#line 2622 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2686,7 +2912,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 >= 675 ) + if ( yy_current_state >= 776 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2715,11 +2941,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 >= 675 ) + if ( yy_current_state >= 776 ) 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 == 674); + yy_is_jam = (yy_current_state == 775); return yy_is_jam ? 0 : yy_current_state; } @@ -3567,7 +3793,7 @@ void yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 474 "program_lexer.l" +#line 510 "program_lexer.l" diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l index c50c7c5739..62ca9b6db6 100644 --- a/src/mesa/shader/program_lexer.l +++ b/src/mesa/shader/program_lexer.l @@ -29,6 +29,7 @@ #define require_ARB_vp (yyextra->mode == ARB_vertex) #define require_ARB_fp (yyextra->mode == ARB_fragment) +#define require_NV_fp (yyextra->option.NV_fragment) #define require_shadow (yyextra->option.Shadow) #define require_rect (yyextra->option.TexRect) #define require_texarray (yyextra->option.TexArray) @@ -159,6 +160,10 @@ CMP_SAT { return_opcode(require_ARB_fp, TRI_OP, CMP, ZERO_ONE); } COS { return_opcode(require_ARB_fp, SCALAR_OP, COS, OFF); } COS_SAT { return_opcode(require_ARB_fp, SCALAR_OP, COS, ZERO_ONE); } +DDX { return_opcode(require_NV_fp, VECTOR_OP, DDX, OFF); } +DDX_SAT { return_opcode(require_NV_fp, VECTOR_OP, DDX, ZERO_ONE); } +DDY { return_opcode(require_NV_fp, VECTOR_OP, DDY, OFF); } +DDY_SAT { return_opcode(require_NV_fp, VECTOR_OP, DDY, ZERO_ONE); } DP3 { return_opcode( 1, BIN_OP, DP3, OFF); } DP3_SAT { return_opcode(require_ARB_fp, BIN_OP, DP3, ZERO_ONE); } DP4 { return_opcode( 1, BIN_OP, DP4, OFF); } @@ -198,22 +203,44 @@ MOV_SAT { return_opcode(require_ARB_fp, VECTOR_OP, MOV, ZERO_ONE); } MUL { return_opcode( 1, BIN_OP, MUL, OFF); } MUL_SAT { return_opcode(require_ARB_fp, BIN_OP, MUL, ZERO_ONE); } +PK2H { return_opcode(require_NV_fp, VECTOR_OP, PK2H, OFF); } +PK2H_SAT { return_opcode(require_NV_fp, VECTOR_OP, PK2H, ZERO_ONE); } +PK2US { return_opcode(require_NV_fp, VECTOR_OP, PK2US, OFF); } +PK2US_SAT { return_opcode(require_NV_fp, VECTOR_OP, PK2US, ZERO_ONE); } +PK4B { return_opcode(require_NV_fp, VECTOR_OP, PK4B, OFF); } +PK4B_SAT { return_opcode(require_NV_fp, VECTOR_OP, PK4B, ZERO_ONE); } +PK4UB { return_opcode(require_NV_fp, VECTOR_OP, PK4UB, OFF); } +PK4UB_SAT { return_opcode(require_NV_fp, VECTOR_OP, PK4UB, ZERO_ONE); } POW { return_opcode( 1, BINSC_OP, POW, OFF); } POW_SAT { return_opcode(require_ARB_fp, BINSC_OP, POW, ZERO_ONE); } RCP { return_opcode( 1, SCALAR_OP, RCP, OFF); } RCP_SAT { return_opcode(require_ARB_fp, SCALAR_OP, RCP, ZERO_ONE); } +RFL { return_opcode(require_NV_fp, BIN_OP, RFL, OFF); } +RFL_SAT { return_opcode(require_NV_fp, BIN_OP, RFL, ZERO_ONE); } RSQ { return_opcode( 1, SCALAR_OP, RSQ, OFF); } RSQ_SAT { return_opcode(require_ARB_fp, SCALAR_OP, RSQ, ZERO_ONE); } SCS { return_opcode(require_ARB_fp, SCALAR_OP, SCS, OFF); } SCS_SAT { return_opcode(require_ARB_fp, SCALAR_OP, SCS, ZERO_ONE); } +SEQ { return_opcode(require_NV_fp, BIN_OP, SEQ, OFF); } +SEQ_SAT { return_opcode(require_NV_fp, BIN_OP, SEQ, ZERO_ONE); } +SFL { return_opcode(require_NV_fp, BIN_OP, SFL, OFF); } +SFL_SAT { return_opcode(require_NV_fp, BIN_OP, SFL, ZERO_ONE); } SGE { return_opcode( 1, BIN_OP, SGE, OFF); } SGE_SAT { return_opcode(require_ARB_fp, BIN_OP, SGE, ZERO_ONE); } +SGT { return_opcode(require_NV_fp, BIN_OP, SGT, OFF); } +SGT_SAT { return_opcode(require_NV_fp, BIN_OP, SGT, ZERO_ONE); } SIN { return_opcode(require_ARB_fp, SCALAR_OP, SIN, OFF); } SIN_SAT { return_opcode(require_ARB_fp, SCALAR_OP, SIN, ZERO_ONE); } +SLE { return_opcode(require_NV_fp, BIN_OP, SLE, OFF); } +SLE_SAT { return_opcode(require_NV_fp, BIN_OP, SLE, ZERO_ONE); } SLT { return_opcode( 1, BIN_OP, SLT, OFF); } SLT_SAT { return_opcode(require_ARB_fp, BIN_OP, SLT, ZERO_ONE); } +SNE { return_opcode(require_NV_fp, BIN_OP, SNE, OFF); } +SNE_SAT { return_opcode(require_NV_fp, BIN_OP, SNE, ZERO_ONE); } +STR { return_opcode(require_NV_fp, BIN_OP, STR, OFF); } +STR_SAT { return_opcode(require_NV_fp, BIN_OP, STR, ZERO_ONE); } SUB { return_opcode( 1, BIN_OP, SUB, OFF); } SUB_SAT { return_opcode(require_ARB_fp, BIN_OP, SUB, ZERO_ONE); } SWZ { return_opcode( 1, SWZ, SWZ, OFF); } @@ -223,9 +250,18 @@ TEX { return_opcode(require_ARB_fp, SAMPLE_OP, TEX, OFF); } TEX_SAT { return_opcode(require_ARB_fp, SAMPLE_OP, TEX, ZERO_ONE); } TXB { return_opcode(require_ARB_fp, SAMPLE_OP, TXB, OFF); } TXB_SAT { return_opcode(require_ARB_fp, SAMPLE_OP, TXB, ZERO_ONE); } +TXD { return_opcode(require_NV_fp, TXD_OP, TXD, OFF); } +TXD_SAT { return_opcode(require_NV_fp, TXD_OP, TXD, ZERO_ONE); } TXP { return_opcode(require_ARB_fp, SAMPLE_OP, TXP, OFF); } TXP_SAT { return_opcode(require_ARB_fp, SAMPLE_OP, TXP, ZERO_ONE); } +UP2H { return_opcode(require_NV_fp, SCALAR_OP, UP2H, OFF); } +UP2H_SAT { return_opcode(require_NV_fp, SCALAR_OP, UP2H, ZERO_ONE); } +UP2US { return_opcode(require_NV_fp, SCALAR_OP, UP2US, OFF); } +UP2US_SAT { return_opcode(require_NV_fp, SCALAR_OP, UP2US, ZERO_ONE); } + +X2D { return_opcode(require_NV_fp, TRI_OP, X2D, OFF); } +X2D_SAT { return_opcode(require_NV_fp, TRI_OP, X2D, ZERO_ONE); } XPD { return_opcode( 1, BIN_OP, XPD, OFF); } XPD_SAT { return_opcode(require_ARB_fp, BIN_OP, XPD, ZERO_ONE); } diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 5c604c2fd1..4108374652 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -216,90 +216,91 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op, ARL = 274, KIL = 275, SWZ = 276, - INTEGER = 277, - REAL = 278, - AMBIENT = 279, - ATTENUATION = 280, - BACK = 281, - CLIP = 282, - COLOR = 283, - DEPTH = 284, - DIFFUSE = 285, - DIRECTION = 286, - EMISSION = 287, - ENV = 288, - EYE = 289, - FOG = 290, - FOGCOORD = 291, - FRAGMENT = 292, - FRONT = 293, - HALF = 294, - INVERSE = 295, - INVTRANS = 296, - LIGHT = 297, - LIGHTMODEL = 298, - LIGHTPROD = 299, - LOCAL = 300, - MATERIAL = 301, - MAT_PROGRAM = 302, - MATRIX = 303, - MATRIXINDEX = 304, - MODELVIEW = 305, - MVP = 306, - NORMAL = 307, - OBJECT = 308, - PALETTE = 309, - PARAMS = 310, - PLANE = 311, - POINT = 312, - POINTSIZE = 313, - POSITION = 314, - PRIMARY = 315, - PROGRAM = 316, - PROJECTION = 317, - RANGE = 318, - RESULT = 319, - ROW = 320, - SCENECOLOR = 321, - SECONDARY = 322, - SHININESS = 323, - SIZE = 324, - SPECULAR = 325, - SPOT = 326, - STATE = 327, - TEXCOORD = 328, - TEXENV = 329, - TEXGEN = 330, - TEXGEN_Q = 331, - TEXGEN_R = 332, - TEXGEN_S = 333, - TEXGEN_T = 334, - TEXTURE = 335, - TRANSPOSE = 336, - TEXTURE_UNIT = 337, - TEX_1D = 338, - TEX_2D = 339, - TEX_3D = 340, - TEX_CUBE = 341, - TEX_RECT = 342, - TEX_SHADOW1D = 343, - TEX_SHADOW2D = 344, - TEX_SHADOWRECT = 345, - TEX_ARRAY1D = 346, - TEX_ARRAY2D = 347, - TEX_ARRAYSHADOW1D = 348, - TEX_ARRAYSHADOW2D = 349, - VERTEX = 350, - VTXATTRIB = 351, - WEIGHT = 352, - IDENTIFIER = 353, - MASK4 = 354, - MASK3 = 355, - MASK2 = 356, - MASK1 = 357, - SWIZZLE = 358, - DOT_DOT = 359, - DOT = 360 + TXD_OP = 277, + INTEGER = 278, + REAL = 279, + AMBIENT = 280, + ATTENUATION = 281, + BACK = 282, + CLIP = 283, + COLOR = 284, + DEPTH = 285, + DIFFUSE = 286, + DIRECTION = 287, + EMISSION = 288, + ENV = 289, + EYE = 290, + FOG = 291, + FOGCOORD = 292, + FRAGMENT = 293, + FRONT = 294, + HALF = 295, + INVERSE = 296, + INVTRANS = 297, + LIGHT = 298, + LIGHTMODEL = 299, + LIGHTPROD = 300, + LOCAL = 301, + MATERIAL = 302, + MAT_PROGRAM = 303, + MATRIX = 304, + MATRIXINDEX = 305, + MODELVIEW = 306, + MVP = 307, + NORMAL = 308, + OBJECT = 309, + PALETTE = 310, + PARAMS = 311, + PLANE = 312, + POINT = 313, + POINTSIZE = 314, + POSITION = 315, + PRIMARY = 316, + PROGRAM = 317, + PROJECTION = 318, + RANGE = 319, + RESULT = 320, + ROW = 321, + SCENECOLOR = 322, + SECONDARY = 323, + SHININESS = 324, + SIZE = 325, + SPECULAR = 326, + SPOT = 327, + STATE = 328, + TEXCOORD = 329, + TEXENV = 330, + TEXGEN = 331, + TEXGEN_Q = 332, + TEXGEN_R = 333, + TEXGEN_S = 334, + TEXGEN_T = 335, + TEXTURE = 336, + TRANSPOSE = 337, + TEXTURE_UNIT = 338, + TEX_1D = 339, + TEX_2D = 340, + TEX_3D = 341, + TEX_CUBE = 342, + TEX_RECT = 343, + TEX_SHADOW1D = 344, + TEX_SHADOW2D = 345, + TEX_SHADOWRECT = 346, + TEX_ARRAY1D = 347, + TEX_ARRAY2D = 348, + TEX_ARRAYSHADOW1D = 349, + TEX_ARRAYSHADOW2D = 350, + VERTEX = 351, + VTXATTRIB = 352, + WEIGHT = 353, + IDENTIFIER = 354, + MASK4 = 355, + MASK3 = 356, + MASK2 = 357, + MASK1 = 358, + SWIZZLE = 359, + DOT_DOT = 360, + DOT = 361 }; #endif @@ -339,7 +340,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 343 "program_parse.tab.c" +#line 344 "program_parse.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -370,7 +371,7 @@ extern int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, /* Line 264 of yacc.c */ -#line 374 "program_parse.tab.c" +#line 375 "program_parse.tab.c" #ifdef short # undef short @@ -590,7 +591,7 @@ union yyalloc #define YYLAST 340 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 115 +#define YYNTOKENS 116 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 134 /* YYNRULES -- Number of rules. */ @@ -600,7 +601,7 @@ union yyalloc /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 360 +#define YYMAXUTOK 361 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -612,15 +613,15 @@ static const yytype_uint8 yytranslate[] = 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, 110, 107, 111, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 106, - 2, 112, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 111, 108, 112, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 107, + 2, 113, 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, 108, 2, 109, 2, 2, 2, 2, 2, 2, + 2, 109, 2, 110, 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, 113, 2, 114, 2, 2, 2, 2, + 2, 2, 2, 114, 2, 115, 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, 2, @@ -644,7 +645,7 @@ static const yytype_uint8 yytranslate[] = 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105 + 105, 106 }; #if YYDEBUG @@ -684,80 +685,80 @@ static const yytype_uint16 yyprhs[] = /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 116, 0, -1, 117, 118, 120, 12, -1, 3, -1, - 4, -1, 118, 119, -1, -1, 8, 98, 106, -1, - 120, 121, -1, -1, 122, 106, -1, 158, 106, -1, - 123, -1, 124, -1, 125, -1, 126, -1, 127, -1, - 128, -1, 129, -1, 130, -1, 135, -1, 131, -1, - 132, -1, 19, 139, 107, 136, -1, 18, 138, 107, - 137, -1, 16, 138, 107, 136, -1, 14, 138, 107, - 136, 107, 136, -1, 13, 138, 107, 137, 107, 137, - -1, 17, 138, 107, 137, 107, 137, 107, 137, -1, - 15, 138, 107, 137, 107, 133, 107, 134, -1, 20, - 137, -1, 82, 243, -1, 83, -1, 84, -1, 85, - -1, 86, -1, 87, -1, 88, -1, 89, -1, 90, - -1, 91, -1, 92, -1, 93, -1, 94, -1, 21, - 138, 107, 143, 107, 140, -1, 229, 143, 155, -1, - 229, 143, 156, -1, 144, 157, -1, 152, 154, -1, - 141, 107, 141, 107, 141, 107, 141, -1, 229, 142, - -1, 22, -1, 98, -1, 98, -1, 160, -1, 145, - 108, 146, 109, -1, 174, -1, 236, -1, 98, -1, - 98, -1, 147, -1, 148, -1, 22, -1, 152, 153, - 149, -1, -1, 110, 150, -1, 111, 151, -1, 22, - -1, 22, -1, 98, -1, 102, -1, 102, -1, 102, - -1, 102, -1, 99, -1, 103, -1, -1, 99, -1, - 100, -1, 101, -1, 102, -1, -1, 159, -1, 166, - -1, 230, -1, 232, -1, 235, -1, 248, -1, 7, - 98, 112, 160, -1, 95, 161, -1, 37, 165, -1, - 59, -1, 97, 163, -1, 52, -1, 28, 241, -1, - 36, -1, 73, 242, -1, 49, 108, 164, 109, -1, - 96, 108, 162, 109, -1, 22, -1, -1, 108, 164, - 109, -1, 22, -1, 59, -1, 28, 241, -1, 36, - -1, 73, 242, -1, 167, -1, 168, -1, 10, 98, - 170, -1, 10, 98, 108, 169, 109, 171, -1, -1, - 22, -1, 112, 173, -1, 112, 113, 172, 114, -1, - 175, -1, 172, 107, 175, -1, 177, -1, 213, -1, - 223, -1, 177, -1, 213, -1, 224, -1, 176, -1, - 214, -1, 223, -1, 177, -1, 72, 201, -1, 72, - 178, -1, 72, 180, -1, 72, 183, -1, 72, 185, - -1, 72, 191, -1, 72, 187, -1, 72, 194, -1, - 72, 196, -1, 72, 198, -1, 72, 200, -1, 72, - 212, -1, 46, 240, 179, -1, 189, -1, 32, -1, - 68, -1, 42, 108, 190, 109, 181, -1, 189, -1, - 59, -1, 25, -1, 71, 182, -1, 39, -1, 31, - -1, 43, 184, -1, 24, -1, 240, 66, -1, 44, - 108, 190, 109, 240, 186, -1, 189, -1, 74, 244, - 188, -1, 28, -1, 24, -1, 30, -1, 70, -1, - 22, -1, 75, 242, 192, 193, -1, 34, -1, 53, - -1, 78, -1, 79, -1, 77, -1, 76, -1, 35, - 195, -1, 28, -1, 55, -1, 27, 108, 197, 109, - 56, -1, 22, -1, 57, 199, -1, 69, -1, 25, - -1, 203, 65, 108, 206, 109, -1, 203, 202, -1, - -1, 65, 108, 206, 104, 206, 109, -1, 48, 207, - 204, -1, -1, 205, -1, 40, -1, 81, -1, 41, - -1, 22, -1, 50, 208, -1, 62, -1, 51, -1, - 80, 242, -1, 54, 108, 210, 109, -1, 47, 108, - 211, 109, -1, -1, 209, -1, 22, -1, 22, -1, - 22, -1, 29, 63, -1, 217, -1, 220, -1, 215, - -1, 218, -1, 61, 33, 108, 216, 109, -1, 221, - -1, 221, 104, 221, -1, 61, 33, 108, 221, 109, - -1, 61, 45, 108, 219, 109, -1, 222, -1, 222, - 104, 222, -1, 61, 45, 108, 222, 109, -1, 22, - -1, 22, -1, 225, -1, 227, -1, 226, -1, 227, - -1, 228, -1, 23, -1, 22, -1, 113, 228, 114, - -1, 113, 228, 107, 228, 114, -1, 113, 228, 107, - 228, 107, 228, 114, -1, 113, 228, 107, 228, 107, - 228, 107, 228, 114, -1, 229, 23, -1, 229, 22, - -1, 110, -1, 111, -1, -1, -1, 11, 231, 234, - -1, -1, 5, 233, 234, -1, 234, 107, 98, -1, - 98, -1, 9, 98, 112, 236, -1, 64, 59, -1, - 64, 36, -1, 64, 237, -1, 64, 58, -1, 64, - 73, 242, -1, 64, 29, -1, 28, 238, 239, -1, - -1, 38, -1, 26, -1, -1, 60, -1, 67, -1, - -1, 38, -1, 26, -1, -1, 60, -1, 67, -1, - -1, 108, 245, 109, -1, -1, 108, 246, 109, -1, - -1, 108, 247, 109, -1, 22, -1, 22, -1, 22, - -1, 6, 98, 112, 98, -1 + 117, 0, -1, 118, 119, 121, 12, -1, 3, -1, + 4, -1, 119, 120, -1, -1, 8, 99, 107, -1, + 121, 122, -1, -1, 123, 107, -1, 159, 107, -1, + 124, -1, 125, -1, 126, -1, 127, -1, 128, -1, + 129, -1, 130, -1, 131, -1, 136, -1, 132, -1, + 133, -1, 19, 140, 108, 137, -1, 18, 139, 108, + 138, -1, 16, 139, 108, 137, -1, 14, 139, 108, + 137, 108, 137, -1, 13, 139, 108, 138, 108, 138, + -1, 17, 139, 108, 138, 108, 138, 108, 138, -1, + 15, 139, 108, 138, 108, 134, 108, 135, -1, 20, + 138, -1, 83, 244, -1, 84, -1, 85, -1, 86, + -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, + -1, 92, -1, 93, -1, 94, -1, 95, -1, 21, + 139, 108, 144, 108, 141, -1, 230, 144, 156, -1, + 230, 144, 157, -1, 145, 158, -1, 153, 155, -1, + 142, 108, 142, 108, 142, 108, 142, -1, 230, 143, + -1, 23, -1, 99, -1, 99, -1, 161, -1, 146, + 109, 147, 110, -1, 175, -1, 237, -1, 99, -1, + 99, -1, 148, -1, 149, -1, 23, -1, 153, 154, + 150, -1, -1, 111, 151, -1, 112, 152, -1, 23, + -1, 23, -1, 99, -1, 103, -1, 103, -1, 103, + -1, 103, -1, 100, -1, 104, -1, -1, 100, -1, + 101, -1, 102, -1, 103, -1, -1, 160, -1, 167, + -1, 231, -1, 233, -1, 236, -1, 249, -1, 7, + 99, 113, 161, -1, 96, 162, -1, 38, 166, -1, + 60, -1, 98, 164, -1, 53, -1, 29, 242, -1, + 37, -1, 74, 243, -1, 50, 109, 165, 110, -1, + 97, 109, 163, 110, -1, 23, -1, -1, 109, 165, + 110, -1, 23, -1, 60, -1, 29, 242, -1, 37, + -1, 74, 243, -1, 168, -1, 169, -1, 10, 99, + 171, -1, 10, 99, 109, 170, 110, 172, -1, -1, + 23, -1, 113, 174, -1, 113, 114, 173, 115, -1, + 176, -1, 173, 108, 176, -1, 178, -1, 214, -1, + 224, -1, 178, -1, 214, -1, 225, -1, 177, -1, + 215, -1, 224, -1, 178, -1, 73, 202, -1, 73, + 179, -1, 73, 181, -1, 73, 184, -1, 73, 186, + -1, 73, 192, -1, 73, 188, -1, 73, 195, -1, + 73, 197, -1, 73, 199, -1, 73, 201, -1, 73, + 213, -1, 47, 241, 180, -1, 190, -1, 33, -1, + 69, -1, 43, 109, 191, 110, 182, -1, 190, -1, + 60, -1, 26, -1, 72, 183, -1, 40, -1, 32, + -1, 44, 185, -1, 25, -1, 241, 67, -1, 45, + 109, 191, 110, 241, 187, -1, 190, -1, 75, 245, + 189, -1, 29, -1, 25, -1, 31, -1, 71, -1, + 23, -1, 76, 243, 193, 194, -1, 35, -1, 54, + -1, 79, -1, 80, -1, 78, -1, 77, -1, 36, + 196, -1, 29, -1, 56, -1, 28, 109, 198, 110, + 57, -1, 23, -1, 58, 200, -1, 70, -1, 26, + -1, 204, 66, 109, 207, 110, -1, 204, 203, -1, + -1, 66, 109, 207, 105, 207, 110, -1, 49, 208, + 205, -1, -1, 206, -1, 41, -1, 82, -1, 42, + -1, 23, -1, 51, 209, -1, 63, -1, 52, -1, + 81, 243, -1, 55, 109, 211, 110, -1, 48, 109, + 212, 110, -1, -1, 210, -1, 23, -1, 23, -1, + 23, -1, 30, 64, -1, 218, -1, 221, -1, 216, + -1, 219, -1, 62, 34, 109, 217, 110, -1, 222, + -1, 222, 105, 222, -1, 62, 34, 109, 222, 110, + -1, 62, 46, 109, 220, 110, -1, 223, -1, 223, + 105, 223, -1, 62, 46, 109, 223, 110, -1, 23, + -1, 23, -1, 226, -1, 228, -1, 227, -1, 228, + -1, 229, -1, 24, -1, 23, -1, 114, 229, 115, + -1, 114, 229, 108, 229, 115, -1, 114, 229, 108, + 229, 108, 229, 115, -1, 114, 229, 108, 229, 108, + 229, 108, 229, 115, -1, 230, 24, -1, 230, 23, + -1, 111, -1, 112, -1, -1, -1, 11, 232, 235, + -1, -1, 5, 234, 235, -1, 235, 108, 99, -1, + 99, -1, 9, 99, 113, 237, -1, 65, 60, -1, + 65, 37, -1, 65, 238, -1, 65, 59, -1, 65, + 74, 243, -1, 65, 30, -1, 29, 239, 240, -1, + -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, + -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, + -1, 109, 246, 110, -1, -1, 109, 247, 110, -1, + -1, 109, 248, 110, -1, 23, -1, 23, -1, 23, + -1, 6, 99, 113, 99, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -801,9 +802,9 @@ static const char *const yytname[] = "$end", "error", "$undefined", "ARBvp_10", "ARBfp_10", "ADDRESS", "ALIAS", "ATTRIB", "OPTION", "OUTPUT", "PARAM", "TEMP", "END", "BIN_OP", "BINSC_OP", "SAMPLE_OP", "SCALAR_OP", "TRI_OP", "VECTOR_OP", "ARL", - "KIL", "SWZ", "INTEGER", "REAL", "AMBIENT", "ATTENUATION", "BACK", - "CLIP", "COLOR", "DEPTH", "DIFFUSE", "DIRECTION", "EMISSION", "ENV", - "EYE", "FOG", "FOGCOORD", "FRAGMENT", "FRONT", "HALF", "INVERSE", + "KIL", "SWZ", "TXD_OP", "INTEGER", "REAL", "AMBIENT", "ATTENUATION", + "BACK", "CLIP", "COLOR", "DEPTH", "DIFFUSE", "DIRECTION", "EMISSION", + "ENV", "EYE", "FOG", "FOGCOORD", "FRAGMENT", "FRONT", "HALF", "INVERSE", "INVTRANS", "LIGHT", "LIGHTMODEL", "LIGHTPROD", "LOCAL", "MATERIAL", "MAT_PROGRAM", "MATRIX", "MATRIXINDEX", "MODELVIEW", "MVP", "NORMAL", "OBJECT", "PALETTE", "PARAMS", "PLANE", "POINT", "POINTSIZE", "POSITION", @@ -875,41 +876,41 @@ static const yytype_uint16 yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 59, 44, 91, 93, - 43, 45, 61, 123, 125 + 355, 356, 357, 358, 359, 360, 361, 59, 44, 91, + 93, 43, 45, 61, 123, 125 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 115, 116, 117, 117, 118, 118, 119, 120, 120, - 121, 121, 122, 122, 123, 123, 123, 123, 123, 123, - 123, 124, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 142, 143, 143, 143, 143, 144, 144, 145, - 146, 146, 147, 148, 149, 149, 149, 150, 151, 152, - 153, 154, 155, 156, 156, 156, 156, 157, 157, 157, - 157, 157, 158, 158, 158, 158, 158, 158, 159, 160, - 160, 161, 161, 161, 161, 161, 161, 161, 161, 162, - 163, 163, 164, 165, 165, 165, 165, 166, 166, 167, - 168, 169, 169, 170, 171, 172, 172, 173, 173, 173, - 174, 174, 174, 175, 175, 175, 176, 176, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 178, - 179, 179, 179, 180, 181, 181, 181, 181, 181, 182, - 183, 184, 184, 185, 186, 187, 188, 189, 189, 189, - 190, 191, 192, 192, 193, 193, 193, 193, 194, 195, - 195, 196, 197, 198, 199, 199, 200, 201, 202, 202, - 203, 204, 204, 205, 205, 205, 206, 207, 207, 207, - 207, 207, 207, 208, 208, 209, 210, 211, 212, 213, - 213, 214, 214, 215, 216, 216, 217, 218, 219, 219, - 220, 221, 222, 223, 223, 224, 224, 225, 226, 226, - 227, 227, 227, 227, 228, 228, 229, 229, 229, 231, - 230, 233, 232, 234, 234, 235, 236, 236, 236, 236, - 236, 236, 237, 238, 238, 238, 239, 239, 239, 240, - 240, 240, 241, 241, 241, 242, 242, 243, 243, 244, - 244, 245, 246, 247, 248 + 0, 116, 117, 118, 118, 119, 119, 120, 121, 121, + 122, 122, 123, 123, 124, 124, 124, 124, 124, 124, + 124, 125, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 143, 144, 144, 144, 144, 145, 145, 146, + 147, 147, 148, 149, 150, 150, 150, 151, 152, 153, + 154, 155, 156, 157, 157, 157, 157, 158, 158, 158, + 158, 158, 159, 159, 159, 159, 159, 159, 160, 161, + 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, + 164, 164, 165, 166, 166, 166, 166, 167, 167, 168, + 169, 170, 170, 171, 172, 173, 173, 174, 174, 174, + 175, 175, 175, 176, 176, 176, 177, 177, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, + 180, 180, 180, 181, 182, 182, 182, 182, 182, 183, + 184, 185, 185, 186, 187, 188, 189, 190, 190, 190, + 191, 192, 193, 193, 194, 194, 194, 194, 195, 196, + 196, 197, 198, 199, 200, 200, 201, 202, 203, 203, + 204, 205, 205, 206, 206, 206, 207, 208, 208, 208, + 208, 208, 208, 209, 209, 210, 211, 212, 213, 214, + 214, 215, 215, 216, 217, 217, 218, 219, 220, 220, + 221, 222, 223, 224, 224, 225, 225, 226, 227, 227, + 228, 228, 228, 228, 229, 229, 230, 230, 230, 232, + 231, 234, 233, 235, 235, 236, 237, 237, 237, 237, + 237, 237, 238, 239, 239, 239, 240, 240, 240, 241, + 241, 241, 242, 242, 242, 243, 243, 244, 244, 245, + 245, 246, 247, 248, 249 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1019,50 +1020,50 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -334 static const yytype_int16 yypact[] = { - 134, -334, -334, 41, -334, -334, 47, -49, -334, 169, - 20, -334, 34, 61, 75, 115, -334, -334, -19, -19, - -19, -19, -19, -19, 116, 44, -19, -334, 109, -334, + 134, -334, -334, 41, -334, -334, 47, -50, -334, 169, + 19, -334, 33, 60, 74, 114, -334, -334, -20, -20, + -20, -20, -20, -20, 115, 43, -20, -334, 108, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, - 110, -334, -334, -334, -334, -334, -334, -334, -334, -334, - 119, 106, 107, 111, -22, 119, 4, -334, 5, 104, - -334, 113, 114, 117, 118, 120, -334, 121, 124, -334, - -334, -334, -15, 122, -334, -334, -334, 123, 133, -14, - 158, 210, -11, -334, 123, 21, -334, -334, -334, -334, - 127, -334, 44, -334, -334, -334, -334, -334, 44, 44, - 44, 44, 44, 44, -334, -334, -334, -334, 1, 68, - 87, -1, 132, 44, 65, 135, -334, -334, -334, -334, - -334, -334, -334, -334, -334, -15, 141, -334, -334, -334, - -334, 136, -334, -334, -334, -334, -334, -334, -334, 149, - -334, -334, 58, 219, -334, 137, 139, -15, 140, -334, - 142, -334, -334, 74, -334, -334, 127, -334, 143, 144, - 145, 179, 15, 146, 81, 147, 83, 89, 0, 148, - 127, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -334, 183, -334, 74, -334, 150, -334, -334, 127, 151, - 152, -334, 43, -334, -334, -334, -334, -10, 155, -334, - 138, -334, -334, -334, -334, -334, -334, 154, 44, 44, - 162, 175, 44, -334, -334, -334, -334, 243, 245, 246, - -334, -334, -334, -334, 247, -334, -334, -334, -334, 204, - 247, -4, 163, 250, -334, 165, -334, 127, 27, -334, - -334, -334, 252, 248, 18, 167, -334, 255, -334, 256, - 255, -334, 44, -334, -334, 170, -334, -334, 178, 44, - 168, -334, -334, -334, -334, -334, -334, 174, 176, 177, - -334, 180, -334, 181, -334, 182, -334, 184, -334, 185, + 109, -334, -334, -334, -334, -334, -334, -334, -334, -334, + 118, 105, 106, 110, -23, 118, 3, -334, 4, 103, + -334, 112, 113, 116, 117, 119, -334, 120, 123, -334, + -334, -334, -16, 121, -334, -334, -334, 122, 132, -15, + 157, 209, -12, -334, 122, 20, -334, -334, -334, -334, + 131, -334, 43, -334, -334, -334, -334, -334, 43, 43, + 43, 43, 43, 43, -334, -334, -334, -334, 0, 67, + 86, -2, 133, 43, 64, 135, -334, -334, -334, -334, + -334, -334, -334, -334, -334, -16, 136, -334, -334, -334, + -334, 129, -334, -334, -334, -334, -334, -334, -334, 148, + -334, -334, 57, 218, -334, 137, 138, -16, 139, -334, + 140, -334, -334, 73, -334, -334, 131, -334, 141, 142, + 143, 179, 14, 144, 80, 145, 82, 88, -1, 146, + 131, -334, -334, -334, -334, -334, -334, -334, -334, -334, + -334, 183, -334, 73, -334, 147, -334, -334, 131, 149, + 150, -334, 42, -334, -334, -334, -334, -11, 152, -334, + 151, -334, -334, -334, -334, -334, -334, 153, 43, 43, + 154, 182, 43, -334, -334, -334, -334, 239, 244, 245, + -334, -334, -334, -334, 246, -334, -334, -334, -334, 203, + 246, -5, 162, 249, -334, 164, -334, 131, 26, -334, + -334, -334, 251, 247, 17, 166, -334, 254, -334, 255, + 254, -334, 43, -334, -334, 170, -334, -334, 176, 43, + 167, -334, -334, -334, -334, -334, -334, 173, 175, 177, + -334, 174, -334, 178, -334, 180, -334, 181, -334, 184, -334, -334, -334, -334, -334, -334, -334, 263, -334, -334, - -334, 264, -334, -334, -334, -334, -334, -334, -334, 186, - -334, -334, -334, -334, 131, 265, -334, 188, -334, 189, - 190, 46, -334, -334, 101, -334, 193, -5, -7, 266, - -334, 108, 44, -334, -334, 236, 14, 83, -334, 192, - -334, 194, -334, -334, -334, -334, -334, -334, -334, 195, - -334, -334, -334, 44, -334, 280, 283, -334, 44, -334, - -334, -334, 78, 87, 49, -334, -334, -334, -334, -334, - -334, -334, -334, 197, -334, -334, -334, -334, -334, -334, + -334, 264, -334, -334, -334, -334, -334, -334, -334, 185, + -334, -334, -334, -334, 130, 266, -334, 187, -334, 188, + 189, 45, -334, -334, 100, -334, 192, -6, -8, 269, + -334, 107, 43, -334, -334, 236, 13, 82, -334, 191, + -334, 193, -334, -334, -334, -334, -334, -334, -334, 194, + -334, -334, -334, 43, -334, 279, 282, -334, 43, -334, + -334, -334, 77, 86, 48, -334, -334, -334, -334, -334, + -334, -334, -334, 196, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -334, -334, 276, -334, -334, 6, -334, -334, -334, 51, - -334, -334, -334, -334, 201, 202, 203, -334, 244, -7, - -334, -334, -334, -334, -334, -334, 44, -334, 44, 243, - 245, 205, -334, -334, 198, 207, 206, 212, 211, 217, - 265, -334, 44, -334, 243, -334, 245, -17, -334, -334, - -334, 265, 213, -334 + -334, -334, 275, -334, -334, 5, -334, -334, -334, 50, + -334, -334, -334, -334, 200, 201, 202, -334, 243, -8, + -334, -334, -334, -334, -334, -334, 43, -334, 43, 239, + 244, 204, -334, -334, 197, 206, 205, 211, 210, 216, + 266, -334, 43, -334, 239, -334, 244, -18, -334, -334, + -334, 266, 212, -334 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1072,15 +1073,15 @@ static const yytype_int16 yypgoto[] = -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -94, -88, 126, -334, -334, -333, -334, -91, -334, -334, -334, -334, -334, -334, -334, -334, 128, -334, -334, - -334, -334, -334, -334, -334, 249, -334, -334, -334, 73, + -334, -334, -334, -334, -334, 248, -334, -334, -334, 78, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -72, -334, -81, -334, -334, -334, -334, -334, -334, -334, + -76, -334, -81, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -307, 99, -334, -334, -334, -334, - -334, -334, -334, -334, -334, -334, -334, -334, -23, -334, - -334, -303, -334, -334, -334, -334, -334, -334, 251, -334, - -334, -334, -334, -334, -334, -334, -327, -316, 253, -334, - -334, -334, -80, -110, -82, -334, -334, -334, -334, 277, - -334, 254, -334, -334, -334, -161, 153, -146, -334, -334, + -334, -334, -334, -334, -334, -334, -334, -334, -22, -334, + -334, -303, -334, -334, -334, -334, -334, -334, 250, -334, + -334, -334, -334, -334, -334, -334, -327, -316, 252, -334, + -334, -334, -80, -110, -82, -334, -334, -334, -334, 278, + -334, 256, -334, -334, -334, -161, 155, -146, -334, -334, -334, -334, -334, -334 }; @@ -1114,56 +1115,56 @@ static const yytype_int16 yytable[] = 373, 374, 375, 93, 94, 95, 96, 333, 334, 335, 336, 345, 346, 54, 66, 74, 75, 76, 78, 79, 98, 99, 56, 80, 100, 101, 104, 102, 103, 125, - 126, 127, 130, 389, 377, 143, 139, 357, 137, 199, - -59, 206, 220, 197, 208, 200, 209, 211, 245, 212, - 260, 217, 218, 219, 224, 230, 242, 267, 247, 249, - 250, 139, 259, 262, 265, 270, 317, 272, 274, 276, - 278, 287, 288, 291, 298, 305, 300, 306, 308, 312, - 313, 318, 319, 321, 322, 328, 330, 338, 362, 323, - 324, 325, 378, 326, 327, 332, 414, 340, 341, 342, + 126, 127, 130, 389, 377, 199, 139, 357, 137, 200, + 143, 206, -59, 220, 197, 208, 209, 211, 212, 245, + 217, 218, 219, 224, 230, 242, 247, 265, 249, 250, + 259, 139, 270, 262, 260, 267, 317, 272, 274, 276, + 278, 287, 288, 291, 298, 305, 300, 306, 308, 313, + 312, 318, 319, 321, 323, 322, 328, 330, 324, 338, + 325, 326, 362, 378, 327, 332, 414, 340, 341, 342, 348, 386, 390, 387, 388, 392, 401, 402, 408, 411, 409, 410, 421, 420, 422, 423, 424, 139, 357, 137, - 425, 426, 433, 310, 139, 258, 317, 413, 128, 279, - 398, 0, 84, 134, 129, 135, 246, 0, 0, 0, + 425, 426, 433, 413, 139, 258, 317, 128, 310, 279, + 0, 398, 134, 84, 135, 0, 129, 0, 246, 0, 317 }; static const yytype_int16 yycheck[] = { - 82, 82, 82, 113, 92, 166, 100, 22, 23, 103, - 156, 99, 22, 101, 102, 348, 98, 22, 100, 326, - 24, 103, 37, 37, 170, 25, 30, 28, 32, 28, - 24, 113, 28, 29, 125, 36, 30, 36, 24, 25, - 36, 0, 188, 28, 30, 64, 61, 26, 49, 98, - 61, 52, 34, 39, 61, 8, 147, 72, 59, 38, - 59, 72, 58, 59, 68, 72, 70, 40, 41, 69, - 55, 53, 73, 59, 73, 408, 70, 73, 385, 98, - 95, 95, 409, 98, 70, 71, 108, 104, 98, 422, - 112, 237, 109, 98, 410, 96, 97, 424, 113, 110, - 111, 33, 113, 110, 111, 24, 113, 26, 81, 26, - 426, 33, 107, 45, 27, 209, 29, 420, 60, 38, - 208, 38, 35, 45, 212, 67, 106, 209, 431, 42, - 43, 44, 98, 46, 60, 48, 47, 3, 4, 50, - 51, 67, 252, 54, 57, 19, 20, 21, 22, 23, - 107, 62, 26, 107, 110, 111, 107, 114, 107, 98, - 114, 74, 75, 114, 99, 114, 327, 102, 103, 80, - 252, 22, 23, 98, 5, 6, 7, 259, 9, 10, + 82, 82, 82, 113, 92, 166, 100, 23, 24, 103, + 156, 99, 23, 101, 102, 348, 98, 23, 100, 326, + 25, 103, 38, 38, 170, 26, 31, 29, 33, 29, + 25, 113, 29, 30, 125, 37, 31, 37, 25, 26, + 37, 0, 188, 29, 31, 65, 62, 27, 50, 99, + 62, 53, 35, 40, 62, 8, 147, 73, 60, 39, + 60, 73, 59, 60, 69, 73, 71, 41, 42, 70, + 56, 54, 74, 60, 74, 408, 71, 74, 385, 99, + 96, 96, 409, 99, 71, 72, 109, 105, 99, 422, + 113, 237, 110, 99, 410, 97, 98, 424, 114, 111, + 112, 34, 114, 111, 112, 25, 114, 27, 82, 27, + 426, 34, 108, 46, 28, 209, 30, 420, 61, 39, + 208, 39, 36, 46, 212, 68, 107, 209, 431, 43, + 44, 45, 99, 47, 61, 49, 48, 3, 4, 51, + 52, 68, 252, 55, 58, 19, 20, 21, 22, 23, + 108, 63, 26, 108, 111, 112, 108, 115, 108, 99, + 115, 75, 76, 115, 100, 115, 327, 103, 104, 81, + 252, 23, 24, 99, 5, 6, 7, 259, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 99, 100, 101, 102, 76, 77, 78, - 79, 110, 111, 98, 98, 106, 106, 98, 112, 112, - 107, 107, 64, 112, 107, 107, 102, 107, 107, 107, - 107, 98, 22, 343, 322, 108, 318, 318, 318, 98, - 108, 22, 63, 108, 107, 109, 107, 107, 65, 107, - 112, 108, 108, 108, 108, 108, 108, 82, 108, 108, - 108, 343, 107, 109, 102, 22, 348, 22, 22, 22, - 66, 108, 22, 108, 22, 108, 28, 22, 22, 109, - 102, 113, 108, 107, 107, 22, 22, 22, 22, 109, - 109, 109, 56, 109, 109, 109, 406, 109, 109, 109, - 107, 109, 22, 109, 109, 22, 109, 31, 107, 65, - 108, 108, 114, 108, 107, 109, 104, 399, 399, 399, - 109, 104, 109, 250, 406, 197, 408, 399, 79, 230, - 353, -1, 55, 82, 80, 82, 183, -1, -1, -1, + 21, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 100, 101, 102, 103, 77, 78, 79, + 80, 111, 112, 99, 99, 107, 107, 99, 113, 113, + 108, 108, 65, 113, 108, 108, 103, 108, 108, 108, + 108, 99, 23, 343, 322, 99, 318, 318, 318, 110, + 109, 23, 109, 64, 109, 108, 108, 108, 108, 66, + 109, 109, 109, 109, 109, 109, 109, 103, 109, 109, + 108, 343, 23, 110, 113, 83, 348, 23, 23, 23, + 67, 109, 23, 109, 23, 109, 29, 23, 23, 103, + 110, 114, 109, 108, 110, 108, 23, 23, 110, 23, + 110, 110, 23, 57, 110, 110, 406, 110, 110, 110, + 108, 110, 23, 110, 110, 23, 110, 32, 108, 66, + 109, 109, 115, 109, 108, 110, 105, 399, 399, 399, + 110, 105, 110, 399, 406, 197, 408, 79, 250, 230, + -1, 353, 82, 55, 82, -1, 80, -1, 183, -1, 422 }; @@ -1171,50 +1172,50 @@ static const yytype_int16 yycheck[] = symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 4, 116, 117, 0, 118, 8, 119, 120, - 98, 5, 6, 7, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 135, - 158, 159, 166, 167, 168, 230, 232, 235, 248, 106, - 233, 98, 98, 98, 98, 231, 64, 98, 138, 144, - 236, 138, 138, 138, 138, 138, 98, 139, 152, 110, - 111, 137, 229, 138, 106, 106, 98, 234, 112, 112, - 112, 108, 112, 170, 234, 28, 29, 36, 58, 59, - 73, 237, 107, 99, 100, 101, 102, 157, 107, 107, - 107, 107, 107, 107, 102, 154, 22, 23, 37, 61, - 72, 95, 98, 113, 143, 145, 160, 174, 177, 213, - 217, 220, 224, 226, 227, 107, 107, 98, 160, 236, - 22, 169, 173, 177, 213, 223, 225, 227, 228, 229, - 26, 38, 238, 108, 242, 137, 136, 229, 137, 136, - 137, 137, 136, 28, 36, 59, 73, 165, 33, 45, - 27, 29, 35, 42, 43, 44, 46, 48, 57, 74, - 75, 178, 180, 183, 185, 187, 191, 194, 196, 198, - 200, 203, 212, 28, 36, 49, 52, 59, 73, 96, - 97, 161, 228, 99, 102, 103, 156, 108, 143, 98, - 109, 22, 23, 60, 67, 239, 22, 245, 107, 107, - 143, 107, 107, 60, 67, 241, 242, 108, 108, 108, - 63, 28, 55, 195, 108, 24, 26, 38, 184, 240, - 108, 240, 47, 50, 51, 54, 62, 80, 207, 25, - 69, 199, 108, 244, 242, 65, 241, 108, 242, 108, - 108, 163, 107, 114, 22, 146, 147, 148, 152, 107, - 112, 171, 109, 137, 136, 102, 155, 82, 133, 137, - 22, 221, 22, 222, 22, 197, 22, 190, 66, 190, - 24, 30, 32, 68, 70, 179, 189, 108, 22, 208, - 209, 108, 242, 40, 41, 81, 204, 205, 22, 247, - 28, 188, 34, 53, 192, 108, 22, 164, 22, 162, - 164, 228, 109, 102, 153, 140, 141, 229, 113, 108, - 243, 107, 107, 109, 109, 109, 109, 109, 22, 211, - 22, 210, 109, 76, 77, 78, 79, 193, 22, 206, - 109, 109, 109, 107, 114, 110, 111, 149, 107, 22, - 98, 142, 61, 72, 172, 175, 176, 177, 214, 215, - 218, 223, 22, 246, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 134, 137, 56, 25, - 39, 59, 71, 181, 189, 240, 109, 109, 109, 228, - 22, 150, 22, 151, 141, 33, 45, 201, 203, 107, - 114, 109, 31, 182, 186, 189, 107, 114, 107, 108, - 108, 65, 202, 175, 228, 141, 216, 221, 219, 222, - 108, 114, 107, 109, 104, 109, 104, 206, 141, 221, - 222, 104, 206, 109 + 0, 3, 4, 117, 118, 0, 119, 8, 120, 121, + 99, 5, 6, 7, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 136, + 159, 160, 167, 168, 169, 231, 233, 236, 249, 107, + 234, 99, 99, 99, 99, 232, 65, 99, 139, 145, + 237, 139, 139, 139, 139, 139, 99, 140, 153, 111, + 112, 138, 230, 139, 107, 107, 99, 235, 113, 113, + 113, 109, 113, 171, 235, 29, 30, 37, 59, 60, + 74, 238, 108, 100, 101, 102, 103, 158, 108, 108, + 108, 108, 108, 108, 103, 155, 23, 24, 38, 62, + 73, 96, 99, 114, 144, 146, 161, 175, 178, 214, + 218, 221, 225, 227, 228, 108, 108, 99, 161, 237, + 23, 170, 174, 178, 214, 224, 226, 228, 229, 230, + 27, 39, 239, 109, 243, 138, 137, 230, 138, 137, + 138, 138, 137, 29, 37, 60, 74, 166, 34, 46, + 28, 30, 36, 43, 44, 45, 47, 49, 58, 75, + 76, 179, 181, 184, 186, 188, 192, 195, 197, 199, + 201, 204, 213, 29, 37, 50, 53, 60, 74, 97, + 98, 162, 229, 100, 103, 104, 157, 109, 144, 99, + 110, 23, 24, 61, 68, 240, 23, 246, 108, 108, + 144, 108, 108, 61, 68, 242, 243, 109, 109, 109, + 64, 29, 56, 196, 109, 25, 27, 39, 185, 241, + 109, 241, 48, 51, 52, 55, 63, 81, 208, 26, + 70, 200, 109, 245, 243, 66, 242, 109, 243, 109, + 109, 164, 108, 115, 23, 147, 148, 149, 153, 108, + 113, 172, 110, 138, 137, 103, 156, 83, 134, 138, + 23, 222, 23, 223, 23, 198, 23, 191, 67, 191, + 25, 31, 33, 69, 71, 180, 190, 109, 23, 209, + 210, 109, 243, 41, 42, 82, 205, 206, 23, 248, + 29, 189, 35, 54, 193, 109, 23, 165, 23, 163, + 165, 229, 110, 103, 154, 141, 142, 230, 114, 109, + 244, 108, 108, 110, 110, 110, 110, 110, 23, 212, + 23, 211, 110, 77, 78, 79, 80, 194, 23, 207, + 110, 110, 110, 108, 115, 111, 112, 150, 108, 23, + 99, 143, 62, 73, 173, 176, 177, 178, 215, 216, + 219, 224, 23, 247, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 135, 138, 57, 26, + 40, 60, 72, 182, 190, 241, 110, 110, 110, 229, + 23, 151, 23, 152, 142, 34, 46, 202, 204, 108, + 115, 110, 32, 183, 187, 190, 108, 115, 108, 109, + 109, 66, 203, 176, 229, 142, 217, 222, 220, 223, + 109, 115, 108, 110, 105, 110, 105, 207, 142, 222, + 223, 105, 207, 110 }; #define yyerrok (yyerrstatus = 0) @@ -4573,7 +4574,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 4577 "program_parse.tab.c" +#line 4578 "program_parse.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/src/mesa/shader/program_parse.tab.h b/src/mesa/shader/program_parse.tab.h index de08fb747f..7ab6f6b23e 100644 --- a/src/mesa/shader/program_parse.tab.h +++ b/src/mesa/shader/program_parse.tab.h @@ -58,90 +58,91 @@ ARL = 274, KIL = 275, SWZ = 276, - INTEGER = 277, - REAL = 278, - AMBIENT = 279, - ATTENUATION = 280, - BACK = 281, - CLIP = 282, - COLOR = 283, - DEPTH = 284, - DIFFUSE = 285, - DIRECTION = 286, - EMISSION = 287, - ENV = 288, - EYE = 289, - FOG = 290, - FOGCOORD = 291, - FRAGMENT = 292, - FRONT = 293, - HALF = 294, - INVERSE = 295, - INVTRANS = 296, - LIGHT = 297, - LIGHTMODEL = 298, - LIGHTPROD = 299, - LOCAL = 300, - MATERIAL = 301, - MAT_PROGRAM = 302, - MATRIX = 303, - MATRIXINDEX = 304, - MODELVIEW = 305, - MVP = 306, - NORMAL = 307, - OBJECT = 308, - PALETTE = 309, - PARAMS = 310, - PLANE = 311, - POINT = 312, - POINTSIZE = 313, - POSITION = 314, - PRIMARY = 315, - PROGRAM = 316, - PROJECTION = 317, - RANGE = 318, - RESULT = 319, - ROW = 320, - SCENECOLOR = 321, - SECONDARY = 322, - SHININESS = 323, - SIZE = 324, - SPECULAR = 325, - SPOT = 326, - STATE = 327, - TEXCOORD = 328, - TEXENV = 329, - TEXGEN = 330, - TEXGEN_Q = 331, - TEXGEN_R = 332, - TEXGEN_S = 333, - TEXGEN_T = 334, - TEXTURE = 335, - TRANSPOSE = 336, - TEXTURE_UNIT = 337, - TEX_1D = 338, - TEX_2D = 339, - TEX_3D = 340, - TEX_CUBE = 341, - TEX_RECT = 342, - TEX_SHADOW1D = 343, - TEX_SHADOW2D = 344, - TEX_SHADOWRECT = 345, - TEX_ARRAY1D = 346, - TEX_ARRAY2D = 347, - TEX_ARRAYSHADOW1D = 348, - TEX_ARRAYSHADOW2D = 349, - VERTEX = 350, - VTXATTRIB = 351, - WEIGHT = 352, - IDENTIFIER = 353, - MASK4 = 354, - MASK3 = 355, - MASK2 = 356, - MASK1 = 357, - SWIZZLE = 358, - DOT_DOT = 359, - DOT = 360 + TXD_OP = 277, + INTEGER = 278, + REAL = 279, + AMBIENT = 280, + ATTENUATION = 281, + BACK = 282, + CLIP = 283, + COLOR = 284, + DEPTH = 285, + DIFFUSE = 286, + DIRECTION = 287, + EMISSION = 288, + ENV = 289, + EYE = 290, + FOG = 291, + FOGCOORD = 292, + FRAGMENT = 293, + FRONT = 294, + HALF = 295, + INVERSE = 296, + INVTRANS = 297, + LIGHT = 298, + LIGHTMODEL = 299, + LIGHTPROD = 300, + LOCAL = 301, + MATERIAL = 302, + MAT_PROGRAM = 303, + MATRIX = 304, + MATRIXINDEX = 305, + MODELVIEW = 306, + MVP = 307, + NORMAL = 308, + OBJECT = 309, + PALETTE = 310, + PARAMS = 311, + PLANE = 312, + POINT = 313, + POINTSIZE = 314, + POSITION = 315, + PRIMARY = 316, + PROGRAM = 317, + PROJECTION = 318, + RANGE = 319, + RESULT = 320, + ROW = 321, + SCENECOLOR = 322, + SECONDARY = 323, + SHININESS = 324, + SIZE = 325, + SPECULAR = 326, + SPOT = 327, + STATE = 328, + TEXCOORD = 329, + TEXENV = 330, + TEXGEN = 331, + TEXGEN_Q = 332, + TEXGEN_R = 333, + TEXGEN_S = 334, + TEXGEN_T = 335, + TEXTURE = 336, + TRANSPOSE = 337, + TEXTURE_UNIT = 338, + TEX_1D = 339, + TEX_2D = 340, + TEX_3D = 341, + TEX_CUBE = 342, + TEX_RECT = 343, + TEX_SHADOW1D = 344, + TEX_SHADOW2D = 345, + TEX_SHADOWRECT = 346, + TEX_ARRAY1D = 347, + TEX_ARRAY2D = 348, + TEX_ARRAYSHADOW1D = 349, + TEX_ARRAYSHADOW2D = 350, + VERTEX = 351, + VTXATTRIB = 352, + WEIGHT = 353, + IDENTIFIER = 354, + MASK4 = 355, + MASK3 = 356, + MASK2 = 357, + MASK1 = 358, + SWIZZLE = 359, + DOT_DOT = 360, + DOT = 361 }; #endif @@ -181,7 +182,7 @@ typedef union YYSTYPE /* Line 1676 of yacc.c */ -#line 185 "program_parse.tab.h" +#line 186 "program_parse.tab.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index e2e83e484f..9dab00c385 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -142,7 +142,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op, /* Tokens for instructions */ %token BIN_OP BINSC_OP SAMPLE_OP SCALAR_OP TRI_OP VECTOR_OP -%token ARL KIL SWZ +%token ARL KIL SWZ TXD_OP %token INTEGER %token REAL -- cgit v1.2.3 From 8ca6fd8a83412e3a76746f0ee61027b796516f95 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 1 Sep 2009 14:16:03 -0700 Subject: NV fp parser: Parse TXD instruction --- src/mesa/shader/program_parse.tab.c | 1735 ++++++++++++++++++----------------- src/mesa/shader/program_parse.y | 48 +- 2 files changed, 941 insertions(+), 842 deletions(-) diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 4108374652..06aefd073f 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -588,16 +588,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 340 +#define YYLAST 349 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 116 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 134 +#define YYNNTS 135 /* YYNRULES -- Number of rules. */ -#define YYNRULES 264 +#define YYNRULES 266 /* YYNRULES -- Number of states. */ -#define YYNSTATES 434 +#define YYNSTATES 447 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -655,31 +655,31 @@ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 8, 10, 12, 15, 16, 20, 23, 24, 27, 30, 32, 34, 36, 38, 40, 42, 44, - 46, 48, 50, 52, 57, 62, 67, 74, 81, 90, - 99, 102, 105, 107, 109, 111, 113, 115, 117, 119, - 121, 123, 125, 127, 129, 136, 140, 144, 147, 150, - 158, 161, 163, 165, 167, 169, 174, 176, 178, 180, - 182, 184, 186, 188, 192, 193, 196, 199, 201, 203, - 205, 207, 209, 211, 213, 215, 217, 218, 220, 222, - 224, 226, 227, 229, 231, 233, 235, 237, 239, 244, - 247, 250, 252, 255, 257, 260, 262, 265, 270, 275, - 277, 278, 282, 284, 286, 289, 291, 294, 296, 298, - 302, 309, 310, 312, 315, 320, 322, 326, 328, 330, - 332, 334, 336, 338, 340, 342, 344, 346, 349, 352, - 355, 358, 361, 364, 367, 370, 373, 376, 379, 382, - 386, 388, 390, 392, 398, 400, 402, 404, 407, 409, - 411, 414, 416, 419, 426, 428, 432, 434, 436, 438, - 440, 442, 447, 449, 451, 453, 455, 457, 459, 462, - 464, 466, 472, 474, 477, 479, 481, 487, 490, 491, - 498, 502, 503, 505, 507, 509, 511, 513, 516, 518, - 520, 523, 528, 533, 534, 536, 538, 540, 542, 545, - 547, 549, 551, 553, 559, 561, 565, 571, 577, 579, - 583, 589, 591, 593, 595, 597, 599, 601, 603, 605, - 607, 611, 617, 625, 635, 638, 641, 643, 645, 646, - 647, 651, 652, 656, 660, 662, 667, 670, 673, 676, - 679, 683, 686, 690, 691, 693, 695, 696, 698, 700, - 701, 703, 705, 706, 708, 710, 711, 715, 716, 720, - 721, 725, 727, 729, 731 + 46, 48, 50, 52, 54, 59, 64, 69, 76, 83, + 92, 101, 104, 117, 120, 122, 124, 126, 128, 130, + 132, 134, 136, 138, 140, 142, 144, 151, 155, 159, + 162, 165, 173, 176, 178, 180, 182, 184, 189, 191, + 193, 195, 197, 199, 201, 203, 207, 208, 211, 214, + 216, 218, 220, 222, 224, 226, 228, 230, 232, 233, + 235, 237, 239, 241, 242, 244, 246, 248, 250, 252, + 254, 259, 262, 265, 267, 270, 272, 275, 277, 280, + 285, 290, 292, 293, 297, 299, 301, 304, 306, 309, + 311, 313, 317, 324, 325, 327, 330, 335, 337, 341, + 343, 345, 347, 349, 351, 353, 355, 357, 359, 361, + 364, 367, 370, 373, 376, 379, 382, 385, 388, 391, + 394, 397, 401, 403, 405, 407, 413, 415, 417, 419, + 422, 424, 426, 429, 431, 434, 441, 443, 447, 449, + 451, 453, 455, 457, 462, 464, 466, 468, 470, 472, + 474, 477, 479, 481, 487, 489, 492, 494, 496, 502, + 505, 506, 513, 517, 518, 520, 522, 524, 526, 528, + 531, 533, 535, 538, 543, 548, 549, 551, 553, 555, + 557, 560, 562, 564, 566, 568, 574, 576, 580, 586, + 592, 594, 598, 604, 606, 608, 610, 612, 614, 616, + 618, 620, 622, 626, 632, 640, 650, 653, 656, 658, + 660, 661, 662, 666, 667, 671, 675, 677, 682, 685, + 688, 691, 694, 698, 701, 705, 706, 708, 710, 711, + 713, 715, 716, 718, 720, 721, 723, 725, 726, 730, + 731, 735, 736, 740, 742, 744, 746 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -687,78 +687,80 @@ static const yytype_int16 yyrhs[] = { 117, 0, -1, 118, 119, 121, 12, -1, 3, -1, 4, -1, 119, 120, -1, -1, 8, 99, 107, -1, - 121, 122, -1, -1, 123, 107, -1, 159, 107, -1, + 121, 122, -1, -1, 123, 107, -1, 160, 107, -1, 124, -1, 125, -1, 126, -1, 127, -1, 128, -1, - 129, -1, 130, -1, 131, -1, 136, -1, 132, -1, - 133, -1, 19, 140, 108, 137, -1, 18, 139, 108, - 138, -1, 16, 139, 108, 137, -1, 14, 139, 108, - 137, 108, 137, -1, 13, 139, 108, 138, 108, 138, - -1, 17, 139, 108, 138, 108, 138, 108, 138, -1, - 15, 139, 108, 138, 108, 134, 108, 135, -1, 20, - 138, -1, 83, 244, -1, 84, -1, 85, -1, 86, - -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, - -1, 92, -1, 93, -1, 94, -1, 95, -1, 21, - 139, 108, 144, 108, 141, -1, 230, 144, 156, -1, - 230, 144, 157, -1, 145, 158, -1, 153, 155, -1, - 142, 108, 142, 108, 142, 108, 142, -1, 230, 143, - -1, 23, -1, 99, -1, 99, -1, 161, -1, 146, - 109, 147, 110, -1, 175, -1, 237, -1, 99, -1, - 99, -1, 148, -1, 149, -1, 23, -1, 153, 154, - 150, -1, -1, 111, 151, -1, 112, 152, -1, 23, - -1, 23, -1, 99, -1, 103, -1, 103, -1, 103, - -1, 103, -1, 100, -1, 104, -1, -1, 100, -1, - 101, -1, 102, -1, 103, -1, -1, 160, -1, 167, - -1, 231, -1, 233, -1, 236, -1, 249, -1, 7, - 99, 113, 161, -1, 96, 162, -1, 38, 166, -1, - 60, -1, 98, 164, -1, 53, -1, 29, 242, -1, - 37, -1, 74, 243, -1, 50, 109, 165, 110, -1, - 97, 109, 163, 110, -1, 23, -1, -1, 109, 165, - 110, -1, 23, -1, 60, -1, 29, 242, -1, 37, - -1, 74, 243, -1, 168, -1, 169, -1, 10, 99, - 171, -1, 10, 99, 109, 170, 110, 172, -1, -1, - 23, -1, 113, 174, -1, 113, 114, 173, 115, -1, - 176, -1, 173, 108, 176, -1, 178, -1, 214, -1, - 224, -1, 178, -1, 214, -1, 225, -1, 177, -1, - 215, -1, 224, -1, 178, -1, 73, 202, -1, 73, - 179, -1, 73, 181, -1, 73, 184, -1, 73, 186, - -1, 73, 192, -1, 73, 188, -1, 73, 195, -1, - 73, 197, -1, 73, 199, -1, 73, 201, -1, 73, - 213, -1, 47, 241, 180, -1, 190, -1, 33, -1, - 69, -1, 43, 109, 191, 110, 182, -1, 190, -1, - 60, -1, 26, -1, 72, 183, -1, 40, -1, 32, - -1, 44, 185, -1, 25, -1, 241, 67, -1, 45, - 109, 191, 110, 241, 187, -1, 190, -1, 75, 245, - 189, -1, 29, -1, 25, -1, 31, -1, 71, -1, - 23, -1, 76, 243, 193, 194, -1, 35, -1, 54, - -1, 79, -1, 80, -1, 78, -1, 77, -1, 36, - 196, -1, 29, -1, 56, -1, 28, 109, 198, 110, - 57, -1, 23, -1, 58, 200, -1, 70, -1, 26, - -1, 204, 66, 109, 207, 110, -1, 204, 203, -1, - -1, 66, 109, 207, 105, 207, 110, -1, 49, 208, - 205, -1, -1, 206, -1, 41, -1, 82, -1, 42, - -1, 23, -1, 51, 209, -1, 63, -1, 52, -1, - 81, 243, -1, 55, 109, 211, 110, -1, 48, 109, - 212, 110, -1, -1, 210, -1, 23, -1, 23, -1, - 23, -1, 30, 64, -1, 218, -1, 221, -1, 216, - -1, 219, -1, 62, 34, 109, 217, 110, -1, 222, - -1, 222, 105, 222, -1, 62, 34, 109, 222, 110, - -1, 62, 46, 109, 220, 110, -1, 223, -1, 223, - 105, 223, -1, 62, 46, 109, 223, 110, -1, 23, - -1, 23, -1, 226, -1, 228, -1, 227, -1, 228, - -1, 229, -1, 24, -1, 23, -1, 114, 229, 115, - -1, 114, 229, 108, 229, 115, -1, 114, 229, 108, - 229, 108, 229, 115, -1, 114, 229, 108, 229, 108, - 229, 108, 229, 115, -1, 230, 24, -1, 230, 23, - -1, 111, -1, 112, -1, -1, -1, 11, 232, 235, - -1, -1, 5, 234, 235, -1, 235, 108, 99, -1, - 99, -1, 9, 99, 113, 237, -1, 65, 60, -1, - 65, 37, -1, 65, 238, -1, 65, 59, -1, 65, - 74, 243, -1, 65, 30, -1, 29, 239, 240, -1, - -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, - -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, - -1, 109, 246, 110, -1, -1, 109, 247, 110, -1, - -1, 109, 248, 110, -1, 23, -1, 23, -1, 23, - -1, 6, 99, 113, 99, -1 + 129, -1, 130, -1, 131, -1, 137, -1, 132, -1, + 133, -1, 134, -1, 19, 141, 108, 138, -1, 18, + 140, 108, 139, -1, 16, 140, 108, 138, -1, 14, + 140, 108, 138, 108, 138, -1, 13, 140, 108, 139, + 108, 139, -1, 17, 140, 108, 139, 108, 139, 108, + 139, -1, 15, 140, 108, 139, 108, 135, 108, 136, + -1, 20, 139, -1, 22, 140, 108, 139, 108, 139, + 108, 139, 108, 135, 108, 136, -1, 83, 245, -1, + 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, + 89, -1, 90, -1, 91, -1, 92, -1, 93, -1, + 94, -1, 95, -1, 21, 140, 108, 145, 108, 142, + -1, 231, 145, 157, -1, 231, 145, 158, -1, 146, + 159, -1, 154, 156, -1, 143, 108, 143, 108, 143, + 108, 143, -1, 231, 144, -1, 23, -1, 99, -1, + 99, -1, 162, -1, 147, 109, 148, 110, -1, 176, + -1, 238, -1, 99, -1, 99, -1, 149, -1, 150, + -1, 23, -1, 154, 155, 151, -1, -1, 111, 152, + -1, 112, 153, -1, 23, -1, 23, -1, 99, -1, + 103, -1, 103, -1, 103, -1, 103, -1, 100, -1, + 104, -1, -1, 100, -1, 101, -1, 102, -1, 103, + -1, -1, 161, -1, 168, -1, 232, -1, 234, -1, + 237, -1, 250, -1, 7, 99, 113, 162, -1, 96, + 163, -1, 38, 167, -1, 60, -1, 98, 165, -1, + 53, -1, 29, 243, -1, 37, -1, 74, 244, -1, + 50, 109, 166, 110, -1, 97, 109, 164, 110, -1, + 23, -1, -1, 109, 166, 110, -1, 23, -1, 60, + -1, 29, 243, -1, 37, -1, 74, 244, -1, 169, + -1, 170, -1, 10, 99, 172, -1, 10, 99, 109, + 171, 110, 173, -1, -1, 23, -1, 113, 175, -1, + 113, 114, 174, 115, -1, 177, -1, 174, 108, 177, + -1, 179, -1, 215, -1, 225, -1, 179, -1, 215, + -1, 226, -1, 178, -1, 216, -1, 225, -1, 179, + -1, 73, 203, -1, 73, 180, -1, 73, 182, -1, + 73, 185, -1, 73, 187, -1, 73, 193, -1, 73, + 189, -1, 73, 196, -1, 73, 198, -1, 73, 200, + -1, 73, 202, -1, 73, 214, -1, 47, 242, 181, + -1, 191, -1, 33, -1, 69, -1, 43, 109, 192, + 110, 183, -1, 191, -1, 60, -1, 26, -1, 72, + 184, -1, 40, -1, 32, -1, 44, 186, -1, 25, + -1, 242, 67, -1, 45, 109, 192, 110, 242, 188, + -1, 191, -1, 75, 246, 190, -1, 29, -1, 25, + -1, 31, -1, 71, -1, 23, -1, 76, 244, 194, + 195, -1, 35, -1, 54, -1, 79, -1, 80, -1, + 78, -1, 77, -1, 36, 197, -1, 29, -1, 56, + -1, 28, 109, 199, 110, 57, -1, 23, -1, 58, + 201, -1, 70, -1, 26, -1, 205, 66, 109, 208, + 110, -1, 205, 204, -1, -1, 66, 109, 208, 105, + 208, 110, -1, 49, 209, 206, -1, -1, 207, -1, + 41, -1, 82, -1, 42, -1, 23, -1, 51, 210, + -1, 63, -1, 52, -1, 81, 244, -1, 55, 109, + 212, 110, -1, 48, 109, 213, 110, -1, -1, 211, + -1, 23, -1, 23, -1, 23, -1, 30, 64, -1, + 219, -1, 222, -1, 217, -1, 220, -1, 62, 34, + 109, 218, 110, -1, 223, -1, 223, 105, 223, -1, + 62, 34, 109, 223, 110, -1, 62, 46, 109, 221, + 110, -1, 224, -1, 224, 105, 224, -1, 62, 46, + 109, 224, 110, -1, 23, -1, 23, -1, 227, -1, + 229, -1, 228, -1, 229, -1, 230, -1, 24, -1, + 23, -1, 114, 230, 115, -1, 114, 230, 108, 230, + 115, -1, 114, 230, 108, 230, 108, 230, 115, -1, + 114, 230, 108, 230, 108, 230, 108, 230, 115, -1, + 231, 24, -1, 231, 23, -1, 111, -1, 112, -1, + -1, -1, 11, 233, 236, -1, -1, 5, 235, 236, + -1, 236, 108, 99, -1, 99, -1, 9, 99, 113, + 238, -1, 65, 60, -1, 65, 37, -1, 65, 239, + -1, 65, 59, -1, 65, 74, 244, -1, 65, 30, + -1, 29, 240, 241, -1, -1, 39, -1, 27, -1, + -1, 61, -1, 68, -1, -1, 39, -1, 27, -1, + -1, 61, -1, 68, -1, -1, 109, 247, 110, -1, + -1, 109, 248, 110, -1, -1, 109, 249, 110, -1, + 23, -1, 23, -1, 23, -1, 6, 99, 113, 99, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -766,31 +768,31 @@ static const yytype_uint16 yyrline[] = { 0, 256, 256, 259, 267, 279, 280, 283, 305, 306, 309, 324, 327, 332, 339, 340, 341, 342, 343, 344, - 345, 348, 349, 352, 358, 365, 372, 380, 387, 395, - 440, 447, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 467, 480, 493, 506, 528, 537, - 570, 577, 592, 642, 684, 695, 716, 726, 732, 763, - 780, 780, 782, 789, 801, 802, 803, 806, 818, 830, - 848, 859, 871, 873, 874, 875, 876, 879, 879, 879, - 879, 880, 883, 884, 885, 886, 887, 888, 891, 909, - 913, 919, 923, 927, 931, 940, 949, 953, 958, 964, - 975, 975, 976, 978, 982, 986, 990, 996, 996, 998, - 1014, 1037, 1040, 1051, 1057, 1063, 1064, 1071, 1077, 1083, - 1091, 1097, 1103, 1111, 1117, 1123, 1131, 1132, 1135, 1136, - 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1148, - 1157, 1161, 1165, 1171, 1180, 1184, 1188, 1197, 1201, 1207, - 1213, 1220, 1225, 1233, 1243, 1245, 1253, 1259, 1263, 1267, - 1273, 1284, 1293, 1297, 1302, 1306, 1310, 1314, 1320, 1327, - 1331, 1337, 1345, 1356, 1363, 1367, 1373, 1383, 1394, 1398, - 1416, 1425, 1428, 1434, 1438, 1442, 1448, 1459, 1464, 1469, - 1474, 1479, 1484, 1492, 1495, 1500, 1513, 1521, 1532, 1540, - 1540, 1542, 1542, 1544, 1554, 1559, 1566, 1576, 1585, 1590, - 1597, 1607, 1617, 1629, 1629, 1630, 1630, 1632, 1642, 1650, - 1660, 1668, 1676, 1685, 1696, 1700, 1706, 1707, 1708, 1711, - 1711, 1714, 1714, 1717, 1723, 1731, 1744, 1753, 1762, 1766, - 1775, 1784, 1795, 1802, 1807, 1816, 1828, 1831, 1840, 1851, - 1852, 1853, 1856, 1857, 1858, 1861, 1862, 1865, 1866, 1869, - 1870, 1873, 1884, 1895, 1906 + 345, 348, 349, 350, 353, 359, 366, 373, 381, 388, + 396, 441, 448, 493, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 513, 526, 539, 552, + 574, 583, 616, 623, 638, 688, 730, 741, 762, 772, + 778, 809, 826, 826, 828, 835, 847, 848, 849, 852, + 864, 876, 894, 905, 917, 919, 920, 921, 922, 925, + 925, 925, 925, 926, 929, 930, 931, 932, 933, 934, + 937, 955, 959, 965, 969, 973, 977, 986, 995, 999, + 1004, 1010, 1021, 1021, 1022, 1024, 1028, 1032, 1036, 1042, + 1042, 1044, 1060, 1083, 1086, 1097, 1103, 1109, 1110, 1117, + 1123, 1129, 1137, 1143, 1149, 1157, 1163, 1169, 1177, 1178, + 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, + 1191, 1194, 1203, 1207, 1211, 1217, 1226, 1230, 1234, 1243, + 1247, 1253, 1259, 1266, 1271, 1279, 1289, 1291, 1299, 1305, + 1309, 1313, 1319, 1330, 1339, 1343, 1348, 1352, 1356, 1360, + 1366, 1373, 1377, 1383, 1391, 1402, 1409, 1413, 1419, 1429, + 1440, 1444, 1462, 1471, 1474, 1480, 1484, 1488, 1494, 1505, + 1510, 1515, 1520, 1525, 1530, 1538, 1541, 1546, 1559, 1567, + 1578, 1586, 1586, 1588, 1588, 1590, 1600, 1605, 1612, 1622, + 1631, 1636, 1643, 1653, 1663, 1675, 1675, 1676, 1676, 1678, + 1688, 1696, 1706, 1714, 1722, 1731, 1742, 1746, 1752, 1753, + 1754, 1757, 1757, 1760, 1760, 1763, 1769, 1777, 1790, 1799, + 1808, 1812, 1821, 1830, 1841, 1848, 1853, 1862, 1874, 1877, + 1886, 1897, 1898, 1899, 1902, 1903, 1904, 1907, 1908, 1911, + 1912, 1915, 1916, 1919, 1930, 1941, 1952 }; #endif @@ -822,24 +824,24 @@ static const char *const yytname[] = "TexInstruction", "ARL_instruction", "VECTORop_instruction", "SCALARop_instruction", "BINSCop_instruction", "BINop_instruction", "TRIop_instruction", "SAMPLE_instruction", "KIL_instruction", - "texImageUnit", "texTarget", "SWZ_instruction", "scalarSrcReg", - "swizzleSrcReg", "maskedDstReg", "maskedAddrReg", "extendedSwizzle", - "extSwizComp", "extSwizSel", "srcReg", "dstReg", "progParamArray", - "progParamArrayMem", "progParamArrayAbs", "progParamArrayRel", - "addrRegRelOffset", "addrRegPosOffset", "addrRegNegOffset", "addrReg", - "addrComponent", "addrWriteMask", "scalarSuffix", "swizzleSuffix", - "optionalMask", "namingStatement", "ATTRIB_statement", "attribBinding", - "vtxAttribItem", "vtxAttribNum", "vtxOptWeightNum", "vtxWeightNum", - "fragAttribItem", "PARAM_statement", "PARAM_singleStmt", - "PARAM_multipleStmt", "optArraySize", "paramSingleInit", - "paramMultipleInit", "paramMultInitList", "paramSingleItemDecl", - "paramSingleItemUse", "paramMultipleItem", "stateMultipleItem", - "stateSingleItem", "stateMaterialItem", "stateMatProperty", - "stateLightItem", "stateLightProperty", "stateSpotProperty", - "stateLightModelItem", "stateLModProperty", "stateLightProdItem", - "stateLProdProperty", "stateTexEnvItem", "stateTexEnvProperty", - "ambDiffSpecProperty", "stateLightNumber", "stateTexGenItem", - "stateTexGenType", "stateTexGenCoord", "stateFogItem", + "TXD_instruction", "texImageUnit", "texTarget", "SWZ_instruction", + "scalarSrcReg", "swizzleSrcReg", "maskedDstReg", "maskedAddrReg", + "extendedSwizzle", "extSwizComp", "extSwizSel", "srcReg", "dstReg", + "progParamArray", "progParamArrayMem", "progParamArrayAbs", + "progParamArrayRel", "addrRegRelOffset", "addrRegPosOffset", + "addrRegNegOffset", "addrReg", "addrComponent", "addrWriteMask", + "scalarSuffix", "swizzleSuffix", "optionalMask", "namingStatement", + "ATTRIB_statement", "attribBinding", "vtxAttribItem", "vtxAttribNum", + "vtxOptWeightNum", "vtxWeightNum", "fragAttribItem", "PARAM_statement", + "PARAM_singleStmt", "PARAM_multipleStmt", "optArraySize", + "paramSingleInit", "paramMultipleInit", "paramMultInitList", + "paramSingleItemDecl", "paramSingleItemUse", "paramMultipleItem", + "stateMultipleItem", "stateSingleItem", "stateMaterialItem", + "stateMatProperty", "stateLightItem", "stateLightProperty", + "stateSpotProperty", "stateLightModelItem", "stateLModProperty", + "stateLightProdItem", "stateLProdProperty", "stateTexEnvItem", + "stateTexEnvProperty", "ambDiffSpecProperty", "stateLightNumber", + "stateTexGenItem", "stateTexGenType", "stateTexGenCoord", "stateFogItem", "stateFogProperty", "stateClipPlaneItem", "stateClipPlaneNum", "statePointItem", "statePointProperty", "stateMatrixRow", "stateMatrixRows", "optMatrixRows", "stateMatrixItem", @@ -886,31 +888,31 @@ static const yytype_uint8 yyr1[] = { 0, 116, 117, 118, 118, 119, 119, 120, 121, 121, 122, 122, 123, 123, 124, 124, 124, 124, 124, 124, - 124, 125, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 143, 144, 144, 144, 144, 145, 145, 146, - 147, 147, 148, 149, 150, 150, 150, 151, 152, 153, - 154, 155, 156, 157, 157, 157, 157, 158, 158, 158, - 158, 158, 159, 159, 159, 159, 159, 159, 160, 161, - 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, - 164, 164, 165, 166, 166, 166, 166, 167, 167, 168, - 169, 170, 170, 171, 172, 173, 173, 174, 174, 174, - 175, 175, 175, 176, 176, 176, 177, 177, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, - 180, 180, 180, 181, 182, 182, 182, 182, 182, 183, - 184, 185, 185, 186, 187, 188, 189, 190, 190, 190, - 191, 192, 193, 193, 194, 194, 194, 194, 195, 196, - 196, 197, 198, 199, 200, 200, 201, 202, 203, 203, - 204, 205, 205, 206, 206, 206, 207, 208, 208, 208, - 208, 208, 208, 209, 209, 210, 211, 212, 213, 214, - 214, 215, 215, 216, 217, 217, 218, 219, 220, 220, - 221, 222, 223, 224, 224, 225, 225, 226, 227, 227, - 228, 228, 228, 228, 229, 229, 230, 230, 230, 232, - 231, 234, 233, 235, 235, 236, 237, 237, 237, 237, - 237, 237, 238, 239, 239, 239, 240, 240, 240, 241, - 241, 241, 242, 242, 242, 243, 243, 244, 244, 245, - 245, 246, 247, 248, 249 + 124, 125, 125, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 144, 145, 145, 145, 145, 146, + 146, 147, 148, 148, 149, 150, 151, 151, 151, 152, + 153, 154, 155, 156, 157, 158, 158, 158, 158, 159, + 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, + 161, 162, 162, 163, 163, 163, 163, 163, 163, 163, + 163, 164, 165, 165, 166, 167, 167, 167, 167, 168, + 168, 169, 170, 171, 171, 172, 173, 174, 174, 175, + 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 180, 181, 181, 181, 182, 183, 183, 183, 183, + 183, 184, 185, 186, 186, 187, 188, 189, 190, 191, + 191, 191, 192, 193, 194, 194, 195, 195, 195, 195, + 196, 197, 197, 198, 199, 200, 201, 201, 202, 203, + 204, 204, 205, 206, 206, 207, 207, 207, 208, 209, + 209, 209, 209, 209, 209, 210, 210, 211, 212, 213, + 214, 215, 215, 216, 216, 217, 218, 218, 219, 220, + 221, 221, 222, 223, 224, 225, 225, 226, 226, 227, + 228, 228, 229, 229, 229, 229, 230, 230, 231, 231, + 231, 233, 232, 235, 234, 236, 236, 237, 238, 238, + 238, 238, 238, 238, 239, 240, 240, 240, 241, 241, + 241, 242, 242, 242, 243, 243, 243, 244, 244, 245, + 245, 246, 246, 247, 248, 249, 250 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -918,31 +920,31 @@ static const yytype_uint8 yyr2[] = { 0, 2, 4, 1, 1, 2, 0, 3, 2, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 4, 4, 4, 6, 6, 8, 8, - 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 6, 3, 3, 2, 2, 7, - 2, 1, 1, 1, 1, 4, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 4, 2, - 2, 1, 2, 1, 2, 1, 2, 4, 4, 1, - 0, 3, 1, 1, 2, 1, 2, 1, 1, 3, - 6, 0, 1, 2, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 1, 1, 1, 5, 1, 1, 1, 2, 1, 1, - 2, 1, 2, 6, 1, 3, 1, 1, 1, 1, - 1, 4, 1, 1, 1, 1, 1, 1, 2, 1, - 1, 5, 1, 2, 1, 1, 5, 2, 0, 6, - 3, 0, 1, 1, 1, 1, 1, 2, 1, 1, - 2, 4, 4, 0, 1, 1, 1, 1, 2, 1, - 1, 1, 1, 5, 1, 3, 5, 5, 1, 3, - 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 5, 7, 9, 2, 2, 1, 1, 0, 0, - 3, 0, 3, 3, 1, 4, 2, 2, 2, 2, - 3, 2, 3, 0, 1, 1, 0, 1, 1, 0, - 1, 1, 0, 1, 1, 0, 3, 0, 3, 0, - 3, 1, 1, 1, 4 + 1, 1, 1, 1, 4, 4, 4, 6, 6, 8, + 8, 2, 12, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 6, 3, 3, 2, + 2, 7, 2, 1, 1, 1, 1, 4, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, + 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, + 4, 2, 2, 1, 2, 1, 2, 1, 2, 4, + 4, 1, 0, 3, 1, 1, 2, 1, 2, 1, + 1, 3, 6, 0, 1, 2, 4, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 1, 1, 1, 5, 1, 1, 1, 2, + 1, 1, 2, 1, 2, 6, 1, 3, 1, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 5, 1, 2, 1, 1, 5, 2, + 0, 6, 3, 0, 1, 1, 1, 1, 1, 2, + 1, 1, 2, 4, 4, 0, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 5, 1, 3, 5, 5, + 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 5, 7, 9, 2, 2, 1, 1, + 0, 0, 3, 0, 3, 3, 1, 4, 2, 2, + 2, 2, 3, 2, 3, 0, 1, 1, 0, 1, + 1, 0, 1, 1, 0, 1, 1, 0, 3, 0, + 3, 0, 3, 1, 1, 1, 4 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -951,221 +953,223 @@ static const yytype_uint8 yyr2[] = static const yytype_uint16 yydefact[] = { 0, 3, 4, 0, 6, 1, 9, 0, 5, 0, - 0, 231, 0, 0, 0, 0, 229, 2, 0, 0, - 0, 0, 0, 0, 0, 228, 0, 8, 0, 12, - 13, 14, 15, 16, 17, 18, 19, 21, 22, 20, - 0, 82, 83, 107, 108, 84, 85, 86, 87, 7, - 0, 0, 0, 0, 0, 0, 0, 58, 0, 81, - 57, 0, 0, 0, 0, 0, 69, 0, 0, 226, - 227, 30, 0, 0, 10, 11, 234, 232, 0, 0, - 0, 111, 228, 109, 230, 243, 241, 237, 239, 236, - 255, 238, 228, 77, 78, 79, 80, 47, 228, 228, - 228, 228, 228, 228, 71, 48, 219, 218, 0, 0, - 0, 0, 53, 228, 76, 0, 54, 56, 120, 121, - 199, 200, 122, 215, 216, 0, 0, 264, 88, 235, - 112, 0, 113, 117, 118, 119, 213, 214, 217, 0, - 245, 244, 246, 0, 240, 0, 0, 0, 0, 25, - 0, 24, 23, 252, 105, 103, 255, 90, 0, 0, - 0, 0, 0, 0, 249, 0, 249, 0, 0, 259, - 255, 128, 129, 130, 131, 133, 132, 134, 135, 136, - 137, 0, 138, 252, 95, 0, 93, 91, 255, 0, - 100, 89, 0, 74, 73, 75, 46, 0, 0, 233, - 0, 225, 224, 247, 248, 242, 261, 0, 228, 228, - 0, 0, 228, 253, 254, 104, 106, 0, 0, 0, - 198, 169, 170, 168, 0, 151, 251, 250, 150, 0, - 0, 0, 0, 193, 189, 0, 188, 255, 181, 175, - 174, 173, 0, 0, 0, 0, 94, 0, 96, 0, - 0, 92, 228, 220, 62, 0, 60, 61, 0, 228, - 0, 110, 256, 27, 26, 72, 45, 257, 0, 0, - 211, 0, 212, 0, 172, 0, 160, 0, 152, 0, - 157, 158, 141, 142, 159, 139, 140, 0, 195, 187, - 194, 0, 190, 183, 185, 184, 180, 182, 263, 0, - 156, 155, 162, 163, 0, 0, 102, 0, 99, 0, - 0, 0, 55, 70, 64, 44, 0, 0, 228, 0, - 31, 0, 228, 206, 210, 0, 0, 249, 197, 0, - 196, 0, 260, 167, 166, 164, 165, 161, 186, 0, - 97, 98, 101, 228, 221, 0, 0, 63, 228, 51, - 52, 50, 0, 0, 0, 115, 123, 126, 124, 201, - 202, 125, 262, 0, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 29, 28, 171, 146, - 148, 145, 0, 143, 144, 0, 192, 191, 176, 0, - 67, 65, 68, 66, 0, 0, 0, 127, 178, 228, - 114, 258, 149, 147, 153, 154, 228, 222, 228, 0, - 0, 0, 177, 116, 0, 0, 0, 204, 0, 208, - 0, 223, 228, 203, 0, 207, 0, 0, 49, 205, - 209, 0, 0, 179 + 0, 233, 0, 0, 0, 0, 231, 2, 0, 0, + 0, 0, 0, 0, 0, 230, 0, 0, 8, 0, + 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, + 23, 20, 0, 84, 85, 109, 110, 86, 87, 88, + 89, 7, 0, 0, 0, 0, 0, 0, 0, 60, + 0, 83, 59, 0, 0, 0, 0, 0, 71, 0, + 0, 228, 229, 31, 0, 0, 0, 10, 11, 236, + 234, 0, 0, 0, 113, 230, 111, 232, 245, 243, + 239, 241, 238, 257, 240, 230, 79, 80, 81, 82, + 49, 230, 230, 230, 230, 230, 230, 73, 50, 221, + 220, 0, 0, 0, 0, 55, 230, 78, 0, 56, + 58, 122, 123, 201, 202, 124, 217, 218, 0, 230, + 0, 266, 90, 237, 114, 0, 115, 119, 120, 121, + 215, 216, 219, 0, 247, 246, 248, 0, 242, 0, + 0, 0, 0, 26, 0, 25, 24, 254, 107, 105, + 257, 92, 0, 0, 0, 0, 0, 0, 251, 0, + 251, 0, 0, 261, 257, 130, 131, 132, 133, 135, + 134, 136, 137, 138, 139, 0, 140, 254, 97, 0, + 95, 93, 257, 0, 102, 91, 0, 76, 75, 77, + 48, 0, 0, 0, 235, 0, 227, 226, 249, 250, + 244, 263, 0, 230, 230, 0, 0, 230, 255, 256, + 106, 108, 0, 0, 0, 200, 171, 172, 170, 0, + 153, 253, 252, 152, 0, 0, 0, 0, 195, 191, + 0, 190, 257, 183, 177, 176, 175, 0, 0, 0, + 0, 96, 0, 98, 0, 0, 94, 230, 222, 64, + 0, 62, 63, 0, 230, 230, 0, 112, 258, 28, + 27, 74, 47, 259, 0, 0, 213, 0, 214, 0, + 174, 0, 162, 0, 154, 0, 159, 160, 143, 144, + 161, 141, 142, 0, 197, 189, 196, 0, 192, 185, + 187, 186, 182, 184, 265, 0, 158, 157, 164, 165, + 0, 0, 104, 0, 101, 0, 0, 0, 57, 72, + 66, 46, 0, 0, 0, 230, 0, 33, 0, 230, + 208, 212, 0, 0, 251, 199, 0, 198, 0, 262, + 169, 168, 166, 167, 163, 188, 0, 99, 100, 103, + 230, 223, 0, 0, 65, 230, 53, 54, 52, 230, + 0, 0, 0, 117, 125, 128, 126, 203, 204, 127, + 264, 0, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 30, 29, 173, 148, 150, 147, + 0, 145, 146, 0, 194, 193, 178, 0, 69, 67, + 70, 68, 0, 0, 0, 0, 129, 180, 230, 116, + 260, 151, 149, 155, 156, 230, 224, 230, 0, 0, + 0, 0, 179, 118, 0, 0, 0, 0, 206, 0, + 210, 0, 225, 230, 0, 205, 0, 209, 0, 0, + 51, 32, 207, 211, 0, 0, 181 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 3, 4, 6, 8, 9, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 268, 376, - 39, 146, 71, 58, 67, 315, 316, 351, 114, 59, - 115, 255, 256, 257, 347, 391, 393, 68, 314, 105, - 266, 196, 97, 40, 41, 116, 191, 309, 251, 307, - 157, 42, 43, 44, 131, 83, 261, 354, 132, 117, - 355, 356, 118, 171, 285, 172, 383, 403, 173, 228, - 174, 404, 175, 301, 286, 277, 176, 304, 337, 177, - 223, 178, 275, 179, 241, 180, 397, 412, 181, 296, - 297, 339, 238, 289, 290, 331, 329, 182, 119, 358, - 359, 416, 120, 360, 418, 121, 271, 273, 361, 122, - 136, 123, 124, 138, 72, 45, 55, 46, 50, 77, - 47, 60, 91, 142, 205, 229, 215, 144, 320, 243, - 207, 363, 299, 48 + -1, 3, 4, 6, 8, 9, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 274, + 384, 41, 150, 73, 60, 69, 321, 322, 358, 117, + 61, 118, 260, 261, 262, 354, 399, 401, 70, 320, + 108, 272, 200, 100, 42, 43, 119, 195, 315, 256, + 313, 161, 44, 45, 46, 135, 86, 267, 362, 136, + 120, 363, 364, 121, 175, 291, 176, 391, 412, 177, + 233, 178, 413, 179, 307, 292, 283, 180, 310, 344, + 181, 228, 182, 281, 183, 246, 184, 406, 422, 185, + 302, 303, 346, 243, 295, 296, 338, 336, 186, 122, + 366, 367, 427, 123, 368, 429, 124, 277, 279, 369, + 125, 140, 126, 127, 142, 74, 47, 57, 48, 52, + 80, 49, 62, 94, 146, 210, 234, 220, 148, 327, + 248, 212, 371, 305, 50 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -334 +#define YYPACT_NINF -384 static const yytype_int16 yypact[] = { - 134, -334, -334, 41, -334, -334, 47, -50, -334, 169, - 19, -334, 33, 60, 74, 114, -334, -334, -20, -20, - -20, -20, -20, -20, 115, 43, -20, -334, 108, -334, - -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, - 109, -334, -334, -334, -334, -334, -334, -334, -334, -334, - 118, 105, 106, 110, -23, 118, 3, -334, 4, 103, - -334, 112, 113, 116, 117, 119, -334, 120, 123, -334, - -334, -334, -16, 121, -334, -334, -334, 122, 132, -15, - 157, 209, -12, -334, 122, 20, -334, -334, -334, -334, - 131, -334, 43, -334, -334, -334, -334, -334, 43, 43, - 43, 43, 43, 43, -334, -334, -334, -334, 0, 67, - 86, -2, 133, 43, 64, 135, -334, -334, -334, -334, - -334, -334, -334, -334, -334, -16, 136, -334, -334, -334, - -334, 129, -334, -334, -334, -334, -334, -334, -334, 148, - -334, -334, 57, 218, -334, 137, 138, -16, 139, -334, - 140, -334, -334, 73, -334, -334, 131, -334, 141, 142, - 143, 179, 14, 144, 80, 145, 82, 88, -1, 146, - 131, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -334, 183, -334, 73, -334, 147, -334, -334, 131, 149, - 150, -334, 42, -334, -334, -334, -334, -11, 152, -334, - 151, -334, -334, -334, -334, -334, -334, 153, 43, 43, - 154, 182, 43, -334, -334, -334, -334, 239, 244, 245, - -334, -334, -334, -334, 246, -334, -334, -334, -334, 203, - 246, -5, 162, 249, -334, 164, -334, 131, 26, -334, - -334, -334, 251, 247, 17, 166, -334, 254, -334, 255, - 254, -334, 43, -334, -334, 170, -334, -334, 176, 43, - 167, -334, -334, -334, -334, -334, -334, 173, 175, 177, - -334, 174, -334, 178, -334, 180, -334, 181, -334, 184, - -334, -334, -334, -334, -334, -334, -334, 263, -334, -334, - -334, 264, -334, -334, -334, -334, -334, -334, -334, 185, - -334, -334, -334, -334, 130, 266, -334, 187, -334, 188, - 189, 45, -334, -334, 100, -334, 192, -6, -8, 269, - -334, 107, 43, -334, -334, 236, 13, 82, -334, 191, - -334, 193, -334, -334, -334, -334, -334, -334, -334, 194, - -334, -334, -334, 43, -334, 279, 282, -334, 43, -334, - -334, -334, 77, 86, 48, -334, -334, -334, -334, -334, - -334, -334, -334, 196, -334, -334, -334, -334, -334, -334, - -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -334, -334, 275, -334, -334, 5, -334, -334, -334, 50, - -334, -334, -334, -334, 200, 201, 202, -334, 243, -8, - -334, -334, -334, -334, -334, -334, 43, -334, 43, 239, - 244, 204, -334, -334, 197, 206, 205, 211, 210, 216, - 266, -334, 43, -334, 239, -334, 244, -18, -334, -334, - -334, 266, 212, -334 + 167, -384, -384, 37, -384, -384, 60, -70, -384, 171, + -23, -384, -13, 9, 12, 63, -384, -384, -33, -33, + -33, -33, -33, -33, 67, 104, -33, -33, -384, 66, + -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, + -384, -384, 68, -384, -384, -384, -384, -384, -384, -384, + -384, -384, 115, 109, 111, 112, -4, 115, 22, -384, + 113, 106, -384, 118, 120, 121, 122, 123, -384, 124, + 130, -384, -384, -384, -16, 126, 127, -384, -384, -384, + 128, 140, -18, 158, 204, -39, -384, 128, 26, -384, + -384, -384, -384, 134, -384, 104, -384, -384, -384, -384, + -384, 104, 104, 104, 104, 104, 104, -384, -384, -384, + -384, 73, 84, 76, -10, 135, 104, 64, 136, -384, + -384, -384, -384, -384, -384, -384, -384, -384, -16, 104, + 147, -384, -384, -384, -384, 137, -384, -384, -384, -384, + -384, -384, -384, 194, -384, -384, 46, 225, -384, 141, + 142, -16, 143, -384, 144, -384, -384, 87, -384, -384, + 134, -384, 145, 146, 148, 189, 15, 149, 88, 150, + 97, 80, 0, 151, 134, -384, -384, -384, -384, -384, + -384, -384, -384, -384, -384, 190, -384, 87, -384, 152, + -384, -384, 134, 153, 154, -384, 42, -384, -384, -384, + -384, -8, 156, 159, -384, 160, -384, -384, -384, -384, + -384, -384, 161, 104, 104, 163, 186, 104, -384, -384, + -384, -384, 249, 251, 252, -384, -384, -384, -384, 253, + -384, -384, -384, -384, 210, 253, 8, 169, 256, -384, + 172, -384, 134, 21, -384, -384, -384, 257, 254, -7, + 173, -384, 261, -384, 262, 261, -384, 104, -384, -384, + 176, -384, -384, 184, 104, 104, 174, -384, -384, -384, + -384, -384, -384, 180, 182, 183, -384, 185, -384, 187, + -384, 188, -384, 191, -384, 193, -384, -384, -384, -384, + -384, -384, -384, 269, -384, -384, -384, 270, -384, -384, + -384, -384, -384, -384, -384, 195, -384, -384, -384, -384, + 133, 271, -384, 196, -384, 197, 198, 45, -384, -384, + 108, -384, 192, -6, 201, -17, 273, -384, 110, 104, + -384, -384, 242, 29, 97, -384, 200, -384, 202, -384, + -384, -384, -384, -384, -384, -384, 203, -384, -384, -384, + 104, -384, 281, 288, -384, 104, -384, -384, -384, 104, + 103, 76, 48, -384, -384, -384, -384, -384, -384, -384, + -384, 205, -384, -384, -384, -384, -384, -384, -384, -384, + -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, + 282, -384, -384, 5, -384, -384, -384, 50, -384, -384, + -384, -384, 208, 209, 211, 212, -384, 260, -17, -384, + -384, -384, -384, -384, -384, 104, -384, 104, 186, 249, + 251, 213, -384, -384, 214, 219, 220, 221, 228, 224, + 230, 271, -384, 104, 110, -384, 249, -384, 251, 49, + -384, -384, -384, -384, 271, 226, -384 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -334, -94, -88, 126, -334, -334, -333, -334, -91, -334, - -334, -334, -334, -334, -334, -334, -334, 128, -334, -334, - -334, -334, -334, -334, -334, 248, -334, -334, -334, 78, - -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, - -76, -334, -81, -334, -334, -334, -334, -334, -334, -334, - -334, -334, -334, -334, -307, 99, -334, -334, -334, -334, - -334, -334, -334, -334, -334, -334, -334, -334, -22, -334, - -334, -303, -334, -334, -334, -334, -334, -334, 250, -334, - -334, -334, -334, -334, -334, -334, -327, -316, 252, -334, - -334, -334, -80, -110, -82, -334, -334, -334, -334, 278, - -334, 256, -334, -334, -334, -161, 155, -146, -334, -334, - -334, -334, -334, -334 + -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, + -384, -384, -384, -384, -384, -384, -384, -384, -384, -100, + -115, -384, -97, -91, 119, -384, -384, -343, -384, -93, + -384, -384, -384, -384, -384, -384, -384, -384, 138, -384, + -384, -384, -384, -384, -384, -384, 255, -384, -384, -384, + 83, -384, -384, -384, -384, -384, -384, -384, -384, -384, + -384, -68, -384, -84, -384, -384, -384, -384, -384, -384, + -384, -384, -384, -384, -384, -308, 107, -384, -384, -384, + -384, -384, -384, -384, -384, -384, -384, -384, -384, -20, + -384, -384, -383, -384, -384, -384, -384, -384, -384, 258, + -384, -384, -384, -384, -384, -384, -384, -320, -371, 259, + -384, -384, -384, -83, -113, -85, -384, -384, -384, -384, + 289, -384, 264, -384, -384, -384, -165, 162, -150, -384, + -384, -384, -384, -384, -384 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -60 +#define YYTABLE_NINF -62 static const yytype_int16 yytable[] = { - 139, 133, 137, 192, 145, 231, 149, 106, 107, 152, - 216, 148, 254, 150, 151, 394, 147, 349, 147, 384, - 280, 147, 108, 108, 244, 239, 281, 183, 282, 153, - 280, 139, 85, 86, 198, 184, 281, 154, 280, 379, - 87, 5, 248, 221, 281, 56, 109, 140, 185, 10, - 109, 186, 302, 380, 352, 7, 210, 110, 187, 141, - 155, 110, 88, 89, 283, 353, 284, 293, 294, 240, - 222, 303, 188, 381, 156, 415, 284, 90, 405, 57, - 111, 111, 417, 112, 284, 382, 81, 431, 66, 428, - 82, 292, 388, 350, 419, 189, 190, 429, 113, 69, - 70, 158, 113, 69, 70, 225, 113, 226, 295, 226, - 430, 395, 92, 159, 160, 264, 161, 427, 203, 227, - 263, 227, 162, 396, 269, 204, 49, 147, 432, 163, - 164, 165, 51, 166, 213, 167, 232, 1, 2, 233, - 234, 214, 311, 235, 168, 61, 62, 63, 64, 65, - 252, 236, 73, 343, 69, 70, 399, 253, 406, 52, - 344, 169, 170, 400, 193, 407, 385, 194, 195, 237, - 139, 201, 202, 53, 11, 12, 13, 317, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 93, 94, 95, 96, 333, 334, 335, - 336, 345, 346, 54, 66, 74, 75, 76, 78, 79, - 98, 99, 56, 80, 100, 101, 104, 102, 103, 125, - 126, 127, 130, 389, 377, 199, 139, 357, 137, 200, - 143, 206, -59, 220, 197, 208, 209, 211, 212, 245, - 217, 218, 219, 224, 230, 242, 247, 265, 249, 250, - 259, 139, 270, 262, 260, 267, 317, 272, 274, 276, - 278, 287, 288, 291, 298, 305, 300, 306, 308, 313, - 312, 318, 319, 321, 323, 322, 328, 330, 324, 338, - 325, 326, 362, 378, 327, 332, 414, 340, 341, 342, - 348, 386, 390, 387, 388, 392, 401, 402, 408, 411, - 409, 410, 421, 420, 422, 423, 424, 139, 357, 137, - 425, 426, 433, 413, 139, 258, 317, 128, 310, 279, - 0, 398, 134, 84, 135, 0, 129, 0, 246, 0, - 317 + 143, 137, 141, 196, 149, 236, 153, 109, 110, 156, + 221, 152, 402, 154, 155, 259, 151, 356, 151, 187, + 111, 151, 111, 112, 249, 392, 244, 188, 308, 10, + 286, 143, 58, 286, 113, 202, 287, 5, 203, 287, + 189, 288, 253, 190, 226, 360, 112, 309, 439, 430, + 191, 88, 89, 144, 286, 387, 361, 113, 215, 90, + 287, 445, 299, 300, 192, 145, 59, 443, 7, 388, + 245, 227, 71, 72, 425, 116, 290, 289, 114, 290, + 114, 91, 92, 115, 51, 414, 53, 193, 194, 389, + 440, 68, 298, 357, 71, 72, 93, 116, 116, 428, + 290, 390, 157, 301, 164, 84, 165, 208, 54, 85, + 158, 55, 166, 230, 209, 231, 442, 270, 162, 167, + 168, 169, 269, 170, 231, 171, 275, 232, 237, 151, + 163, 238, 239, 159, 172, 240, 232, 404, 63, 64, + 65, 66, 67, 241, 317, 75, 76, 160, 218, 405, + 257, 173, 174, 350, 444, 219, 408, 258, 415, 396, + 351, 242, 56, 409, 197, 416, 68, 198, 199, 393, + 1, 2, 143, 77, 324, 78, 11, 12, 13, 323, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 96, 97, 98, 99, + 340, 341, 342, 343, 79, 71, 72, 206, 207, 352, + 353, 95, 81, 58, 82, 83, 101, 134, 102, 103, + 104, 105, 106, 107, 128, 129, 130, 397, 385, 131, + 143, 365, 141, 147, -61, 201, 204, 205, 211, 213, + 214, 216, 217, 225, 222, 223, 250, 224, 229, 235, + 247, 252, 254, 255, 264, 143, 271, 265, 403, 273, + 323, 268, 276, 266, 278, 280, 282, 284, 293, 294, + 304, 297, 311, 306, 312, 314, 318, 319, 325, 326, + 328, 329, 335, 337, 345, 330, 370, 331, 332, 386, + 355, 333, 424, 334, 398, 339, 347, 348, 349, 359, + 394, 400, 395, 396, 411, 410, 417, 418, 426, 441, + 419, 420, 431, 143, 365, 141, 421, 433, 434, 432, + 143, 435, 323, 436, 437, 438, 446, 132, 316, 263, + 423, 407, 285, 138, 139, 0, 87, 133, 323, 251 }; static const yytype_int16 yycheck[] = { - 82, 82, 82, 113, 92, 166, 100, 23, 24, 103, - 156, 99, 23, 101, 102, 348, 98, 23, 100, 326, - 25, 103, 38, 38, 170, 26, 31, 29, 33, 29, - 25, 113, 29, 30, 125, 37, 31, 37, 25, 26, - 37, 0, 188, 29, 31, 65, 62, 27, 50, 99, - 62, 53, 35, 40, 62, 8, 147, 73, 60, 39, - 60, 73, 59, 60, 69, 73, 71, 41, 42, 70, - 56, 54, 74, 60, 74, 408, 71, 74, 385, 99, - 96, 96, 409, 99, 71, 72, 109, 105, 99, 422, - 113, 237, 110, 99, 410, 97, 98, 424, 114, 111, - 112, 34, 114, 111, 112, 25, 114, 27, 82, 27, - 426, 34, 108, 46, 28, 209, 30, 420, 61, 39, - 208, 39, 36, 46, 212, 68, 107, 209, 431, 43, - 44, 45, 99, 47, 61, 49, 48, 3, 4, 51, - 52, 68, 252, 55, 58, 19, 20, 21, 22, 23, - 108, 63, 26, 108, 111, 112, 108, 115, 108, 99, - 115, 75, 76, 115, 100, 115, 327, 103, 104, 81, - 252, 23, 24, 99, 5, 6, 7, 259, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 100, 101, 102, 103, 77, 78, 79, - 80, 111, 112, 99, 99, 107, 107, 99, 113, 113, - 108, 108, 65, 113, 108, 108, 103, 108, 108, 108, - 108, 99, 23, 343, 322, 99, 318, 318, 318, 110, - 109, 23, 109, 64, 109, 108, 108, 108, 108, 66, - 109, 109, 109, 109, 109, 109, 109, 103, 109, 109, - 108, 343, 23, 110, 113, 83, 348, 23, 23, 23, - 67, 109, 23, 109, 23, 109, 29, 23, 23, 103, - 110, 114, 109, 108, 110, 108, 23, 23, 110, 23, - 110, 110, 23, 57, 110, 110, 406, 110, 110, 110, - 108, 110, 23, 110, 110, 23, 110, 32, 108, 66, - 109, 109, 115, 109, 108, 110, 105, 399, 399, 399, - 110, 105, 110, 399, 406, 197, 408, 79, 250, 230, - -1, 353, 82, 55, 82, -1, 80, -1, 183, -1, - 422 + 85, 85, 85, 116, 95, 170, 103, 23, 24, 106, + 160, 102, 355, 104, 105, 23, 101, 23, 103, 29, + 38, 106, 38, 62, 174, 333, 26, 37, 35, 99, + 25, 116, 65, 25, 73, 128, 31, 0, 129, 31, + 50, 33, 192, 53, 29, 62, 62, 54, 431, 420, + 60, 29, 30, 27, 25, 26, 73, 73, 151, 37, + 31, 444, 41, 42, 74, 39, 99, 438, 8, 40, + 70, 56, 111, 112, 417, 114, 71, 69, 96, 71, + 96, 59, 60, 99, 107, 393, 99, 97, 98, 60, + 433, 99, 242, 99, 111, 112, 74, 114, 114, 419, + 71, 72, 29, 82, 28, 109, 30, 61, 99, 113, + 37, 99, 36, 25, 68, 27, 436, 214, 34, 43, + 44, 45, 213, 47, 27, 49, 217, 39, 48, 214, + 46, 51, 52, 60, 58, 55, 39, 34, 19, 20, + 21, 22, 23, 63, 257, 26, 27, 74, 61, 46, + 108, 75, 76, 108, 105, 68, 108, 115, 108, 110, + 115, 81, 99, 115, 100, 115, 99, 103, 104, 334, + 3, 4, 257, 107, 265, 107, 5, 6, 7, 264, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 100, 101, 102, 103, + 77, 78, 79, 80, 99, 111, 112, 23, 24, 111, + 112, 108, 113, 65, 113, 113, 108, 23, 108, 108, + 108, 108, 108, 103, 108, 108, 108, 350, 329, 99, + 325, 325, 325, 109, 109, 109, 99, 110, 23, 108, + 108, 108, 108, 64, 109, 109, 66, 109, 109, 109, + 109, 109, 109, 109, 108, 350, 103, 108, 359, 83, + 355, 110, 23, 113, 23, 23, 23, 67, 109, 23, + 23, 109, 109, 29, 23, 23, 110, 103, 114, 109, + 108, 108, 23, 23, 23, 110, 23, 110, 110, 57, + 108, 110, 415, 110, 23, 110, 110, 110, 110, 108, + 110, 23, 110, 110, 32, 110, 108, 108, 418, 434, + 109, 109, 109, 408, 408, 408, 66, 108, 108, 115, + 415, 110, 417, 105, 110, 105, 110, 82, 255, 201, + 408, 361, 235, 85, 85, -1, 57, 83, 433, 187 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1174,48 +1178,49 @@ static const yytype_uint8 yystos[] = { 0, 3, 4, 117, 118, 0, 119, 8, 120, 121, 99, 5, 6, 7, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 136, - 159, 160, 167, 168, 169, 231, 233, 236, 249, 107, - 234, 99, 99, 99, 99, 232, 65, 99, 139, 145, - 237, 139, 139, 139, 139, 139, 99, 140, 153, 111, - 112, 138, 230, 139, 107, 107, 99, 235, 113, 113, - 113, 109, 113, 171, 235, 29, 30, 37, 59, 60, - 74, 238, 108, 100, 101, 102, 103, 158, 108, 108, - 108, 108, 108, 108, 103, 155, 23, 24, 38, 62, - 73, 96, 99, 114, 144, 146, 161, 175, 178, 214, - 218, 221, 225, 227, 228, 108, 108, 99, 161, 237, - 23, 170, 174, 178, 214, 224, 226, 228, 229, 230, - 27, 39, 239, 109, 243, 138, 137, 230, 138, 137, - 138, 138, 137, 29, 37, 60, 74, 166, 34, 46, - 28, 30, 36, 43, 44, 45, 47, 49, 58, 75, - 76, 179, 181, 184, 186, 188, 192, 195, 197, 199, - 201, 204, 213, 29, 37, 50, 53, 60, 74, 97, - 98, 162, 229, 100, 103, 104, 157, 109, 144, 99, - 110, 23, 24, 61, 68, 240, 23, 246, 108, 108, - 144, 108, 108, 61, 68, 242, 243, 109, 109, 109, - 64, 29, 56, 196, 109, 25, 27, 39, 185, 241, - 109, 241, 48, 51, 52, 55, 63, 81, 208, 26, - 70, 200, 109, 245, 243, 66, 242, 109, 243, 109, - 109, 164, 108, 115, 23, 147, 148, 149, 153, 108, - 113, 172, 110, 138, 137, 103, 156, 83, 134, 138, - 23, 222, 23, 223, 23, 198, 23, 191, 67, 191, - 25, 31, 33, 69, 71, 180, 190, 109, 23, 209, - 210, 109, 243, 41, 42, 82, 205, 206, 23, 248, - 29, 189, 35, 54, 193, 109, 23, 165, 23, 163, - 165, 229, 110, 103, 154, 141, 142, 230, 114, 109, - 244, 108, 108, 110, 110, 110, 110, 110, 23, 212, - 23, 211, 110, 77, 78, 79, 80, 194, 23, 207, - 110, 110, 110, 108, 115, 111, 112, 150, 108, 23, - 99, 143, 62, 73, 173, 176, 177, 178, 215, 216, - 219, 224, 23, 247, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 135, 138, 57, 26, - 40, 60, 72, 182, 190, 241, 110, 110, 110, 229, - 23, 151, 23, 152, 142, 34, 46, 202, 204, 108, - 115, 110, 32, 183, 187, 190, 108, 115, 108, 109, - 109, 66, 203, 176, 229, 142, 217, 222, 220, 223, - 109, 115, 108, 110, 105, 110, 105, 207, 142, 222, - 223, 105, 207, 110 + 15, 16, 17, 18, 19, 20, 21, 22, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 137, 160, 161, 168, 169, 170, 232, 234, 237, + 250, 107, 235, 99, 99, 99, 99, 233, 65, 99, + 140, 146, 238, 140, 140, 140, 140, 140, 99, 141, + 154, 111, 112, 139, 231, 140, 140, 107, 107, 99, + 236, 113, 113, 113, 109, 113, 172, 236, 29, 30, + 37, 59, 60, 74, 239, 108, 100, 101, 102, 103, + 159, 108, 108, 108, 108, 108, 108, 103, 156, 23, + 24, 38, 62, 73, 96, 99, 114, 145, 147, 162, + 176, 179, 215, 219, 222, 226, 228, 229, 108, 108, + 108, 99, 162, 238, 23, 171, 175, 179, 215, 225, + 227, 229, 230, 231, 27, 39, 240, 109, 244, 139, + 138, 231, 139, 138, 139, 139, 138, 29, 37, 60, + 74, 167, 34, 46, 28, 30, 36, 43, 44, 45, + 47, 49, 58, 75, 76, 180, 182, 185, 187, 189, + 193, 196, 198, 200, 202, 205, 214, 29, 37, 50, + 53, 60, 74, 97, 98, 163, 230, 100, 103, 104, + 158, 109, 145, 139, 99, 110, 23, 24, 61, 68, + 241, 23, 247, 108, 108, 145, 108, 108, 61, 68, + 243, 244, 109, 109, 109, 64, 29, 56, 197, 109, + 25, 27, 39, 186, 242, 109, 242, 48, 51, 52, + 55, 63, 81, 209, 26, 70, 201, 109, 246, 244, + 66, 243, 109, 244, 109, 109, 165, 108, 115, 23, + 148, 149, 150, 154, 108, 108, 113, 173, 110, 139, + 138, 103, 157, 83, 135, 139, 23, 223, 23, 224, + 23, 199, 23, 192, 67, 192, 25, 31, 33, 69, + 71, 181, 191, 109, 23, 210, 211, 109, 244, 41, + 42, 82, 206, 207, 23, 249, 29, 190, 35, 54, + 194, 109, 23, 166, 23, 164, 166, 230, 110, 103, + 155, 142, 143, 231, 139, 114, 109, 245, 108, 108, + 110, 110, 110, 110, 110, 23, 213, 23, 212, 110, + 77, 78, 79, 80, 195, 23, 208, 110, 110, 110, + 108, 115, 111, 112, 151, 108, 23, 99, 144, 108, + 62, 73, 174, 177, 178, 179, 216, 217, 220, 225, + 23, 248, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 136, 139, 57, 26, 40, 60, + 72, 183, 191, 242, 110, 110, 110, 230, 23, 152, + 23, 153, 143, 139, 34, 46, 203, 205, 108, 115, + 110, 32, 184, 188, 191, 108, 115, 108, 108, 109, + 109, 66, 204, 177, 230, 143, 135, 218, 223, 221, + 224, 109, 115, 108, 108, 110, 105, 110, 105, 208, + 143, 136, 223, 224, 105, 208, 110 }; #define yyerrok (yyerrstatus = 0) @@ -2159,69 +2164,69 @@ yyreduce: ;} break; - case 23: + case 24: /* Line 1455 of yacc.c */ -#line 353 "program_parse.y" +#line 354 "program_parse.y" { (yyval.inst) = asm_instruction_ctor(OPCODE_ARL, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} break; - case 24: + case 25: /* Line 1455 of yacc.c */ -#line 359 "program_parse.y" +#line 360 "program_parse.y" { (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (4)].temp_inst).Opcode, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (4)].temp_inst).SaturateMode; ;} break; - case 25: + case 26: /* Line 1455 of yacc.c */ -#line 366 "program_parse.y" +#line 367 "program_parse.y" { (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (4)].temp_inst).Opcode, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (4)].temp_inst).SaturateMode; ;} break; - case 26: + case 27: /* Line 1455 of yacc.c */ -#line 373 "program_parse.y" +#line 374 "program_parse.y" { (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (6)].temp_inst).Opcode, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode; ;} break; - case 27: + case 28: /* Line 1455 of yacc.c */ -#line 381 "program_parse.y" +#line 382 "program_parse.y" { (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (6)].temp_inst).Opcode, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode; ;} break; - case 28: + case 29: /* Line 1455 of yacc.c */ -#line 389 "program_parse.y" +#line 390 "program_parse.y" { (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (8)].temp_inst).Opcode, & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), & (yyvsp[(6) - (8)].src_reg), & (yyvsp[(8) - (8)].src_reg)); (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (8)].temp_inst).SaturateMode; ;} break; - case 29: + case 30: /* Line 1455 of yacc.c */ -#line 396 "program_parse.y" +#line 397 "program_parse.y" { (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (8)].temp_inst).Opcode, & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), NULL, NULL); if ((yyval.inst) != NULL) { @@ -2266,113 +2271,161 @@ yyreduce: ;} break; - case 30: + case 31: /* Line 1455 of yacc.c */ -#line 441 "program_parse.y" +#line 442 "program_parse.y" { (yyval.inst) = asm_instruction_ctor(OPCODE_KIL, NULL, & (yyvsp[(2) - (2)].src_reg), NULL, NULL); state->fragment.UsesKill = 1; ;} break; - case 31: + case 32: + +/* Line 1455 of yacc.c */ +#line 449 "program_parse.y" + { + (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (12)].temp_inst).Opcode, & (yyvsp[(2) - (12)].dst_reg), & (yyvsp[(4) - (12)].src_reg), & (yyvsp[(6) - (12)].src_reg), & (yyvsp[(8) - (12)].src_reg)); + if ((yyval.inst) != NULL) { + const GLbitfield tex_mask = (1U << (yyvsp[(10) - (12)].integer)); + GLbitfield shadow_tex = 0; + GLbitfield target_mask = 0; + + + (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (12)].temp_inst).SaturateMode; + (yyval.inst)->Base.TexSrcUnit = (yyvsp[(10) - (12)].integer); + + if ((yyvsp[(12) - (12)].integer) < 0) { + shadow_tex = tex_mask; + + (yyval.inst)->Base.TexSrcTarget = -(yyvsp[(12) - (12)].integer); + (yyval.inst)->Base.TexShadow = 1; + } else { + (yyval.inst)->Base.TexSrcTarget = (yyvsp[(12) - (12)].integer); + } + + target_mask = (1U << (yyval.inst)->Base.TexSrcTarget); + + /* If this texture unit was previously accessed and that access + * had a different texture target, generate an error. + * + * If this texture unit was previously accessed and that access + * had a different shadow mode, generate an error. + */ + if ((state->prog->TexturesUsed[(yyvsp[(10) - (12)].integer)] != 0) + && ((state->prog->TexturesUsed[(yyvsp[(10) - (12)].integer)] != target_mask) + || ((state->prog->ShadowSamplers & tex_mask) + != shadow_tex))) { + yyerror(& (yylsp[(12) - (12)]), state, + "multiple targets used on one texture image unit"); + YYERROR; + } + + + state->prog->TexturesUsed[(yyvsp[(10) - (12)].integer)] |= target_mask; + state->prog->ShadowSamplers |= shadow_tex; + } + ;} + break; + + case 33: /* Line 1455 of yacc.c */ -#line 448 "program_parse.y" +#line 494 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 32: + case 34: /* Line 1455 of yacc.c */ -#line 453 "program_parse.y" +#line 499 "program_parse.y" { (yyval.integer) = TEXTURE_1D_INDEX; ;} break; - case 33: + case 35: /* Line 1455 of yacc.c */ -#line 454 "program_parse.y" +#line 500 "program_parse.y" { (yyval.integer) = TEXTURE_2D_INDEX; ;} break; - case 34: + case 36: /* Line 1455 of yacc.c */ -#line 455 "program_parse.y" +#line 501 "program_parse.y" { (yyval.integer) = TEXTURE_3D_INDEX; ;} break; - case 35: + case 37: /* Line 1455 of yacc.c */ -#line 456 "program_parse.y" +#line 502 "program_parse.y" { (yyval.integer) = TEXTURE_CUBE_INDEX; ;} break; - case 36: + case 38: /* Line 1455 of yacc.c */ -#line 457 "program_parse.y" +#line 503 "program_parse.y" { (yyval.integer) = TEXTURE_RECT_INDEX; ;} break; - case 37: + case 39: /* Line 1455 of yacc.c */ -#line 458 "program_parse.y" +#line 504 "program_parse.y" { (yyval.integer) = -TEXTURE_1D_INDEX; ;} break; - case 38: + case 40: /* Line 1455 of yacc.c */ -#line 459 "program_parse.y" +#line 505 "program_parse.y" { (yyval.integer) = -TEXTURE_2D_INDEX; ;} break; - case 39: + case 41: /* Line 1455 of yacc.c */ -#line 460 "program_parse.y" +#line 506 "program_parse.y" { (yyval.integer) = -TEXTURE_RECT_INDEX; ;} break; - case 40: + case 42: /* Line 1455 of yacc.c */ -#line 461 "program_parse.y" +#line 507 "program_parse.y" { (yyval.integer) = TEXTURE_1D_ARRAY_INDEX; ;} break; - case 41: + case 43: /* Line 1455 of yacc.c */ -#line 462 "program_parse.y" +#line 508 "program_parse.y" { (yyval.integer) = TEXTURE_2D_ARRAY_INDEX; ;} break; - case 42: + case 44: /* Line 1455 of yacc.c */ -#line 463 "program_parse.y" +#line 509 "program_parse.y" { (yyval.integer) = -TEXTURE_1D_ARRAY_INDEX; ;} break; - case 43: + case 45: /* Line 1455 of yacc.c */ -#line 464 "program_parse.y" +#line 510 "program_parse.y" { (yyval.integer) = -TEXTURE_2D_ARRAY_INDEX; ;} break; - case 44: + case 46: /* Line 1455 of yacc.c */ -#line 468 "program_parse.y" +#line 514 "program_parse.y" { /* FIXME: Is this correct? Should the extenedSwizzle be applied * FIXME: to the existing swizzle? @@ -2385,10 +2438,10 @@ yyreduce: ;} break; - case 45: + case 47: /* Line 1455 of yacc.c */ -#line 481 "program_parse.y" +#line 527 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (3)].src_reg); @@ -2401,10 +2454,10 @@ yyreduce: ;} break; - case 46: + case 48: /* Line 1455 of yacc.c */ -#line 494 "program_parse.y" +#line 540 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (3)].src_reg); @@ -2417,10 +2470,10 @@ yyreduce: ;} break; - case 47: + case 49: /* Line 1455 of yacc.c */ -#line 507 "program_parse.y" +#line 553 "program_parse.y" { (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg); (yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask; @@ -2442,10 +2495,10 @@ yyreduce: ;} break; - case 48: + case 50: /* Line 1455 of yacc.c */ -#line 529 "program_parse.y" +#line 575 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_ADDRESS; @@ -2454,10 +2507,10 @@ yyreduce: ;} break; - case 49: + case 51: /* Line 1455 of yacc.c */ -#line 538 "program_parse.y" +#line 584 "program_parse.y" { const unsigned xyzw_valid = ((yyvsp[(1) - (7)].ext_swizzle).xyzw_valid << 0) @@ -2490,20 +2543,20 @@ yyreduce: ;} break; - case 50: + case 52: /* Line 1455 of yacc.c */ -#line 571 "program_parse.y" +#line 617 "program_parse.y" { (yyval.ext_swizzle) = (yyvsp[(2) - (2)].ext_swizzle); (yyval.ext_swizzle).negate = ((yyvsp[(1) - (2)].negate)) ? 1 : 0; ;} break; - case 51: + case 53: /* Line 1455 of yacc.c */ -#line 578 "program_parse.y" +#line 624 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2520,10 +2573,10 @@ yyreduce: ;} break; - case 52: + case 54: /* Line 1455 of yacc.c */ -#line 593 "program_parse.y" +#line 639 "program_parse.y" { if (strlen((yyvsp[(1) - (1)].string)) > 1) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2573,10 +2626,10 @@ yyreduce: ;} break; - case 53: + case 55: /* Line 1455 of yacc.c */ -#line 643 "program_parse.y" +#line 689 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2620,10 +2673,10 @@ yyreduce: ;} break; - case 54: + case 56: /* Line 1455 of yacc.c */ -#line 685 "program_parse.y" +#line 731 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = PROGRAM_INPUT; @@ -2636,10 +2689,10 @@ yyreduce: ;} break; - case 55: + case 57: /* Line 1455 of yacc.c */ -#line 696 "program_parse.y" +#line 742 "program_parse.y" { if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr && ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) { @@ -2662,10 +2715,10 @@ yyreduce: ;} break; - case 56: + case 58: /* Line 1455 of yacc.c */ -#line 717 "program_parse.y" +#line 763 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL) @@ -2675,10 +2728,10 @@ yyreduce: ;} break; - case 57: + case 59: /* Line 1455 of yacc.c */ -#line 727 "program_parse.y" +#line 773 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_OUTPUT; @@ -2686,10 +2739,10 @@ yyreduce: ;} break; - case 58: + case 60: /* Line 1455 of yacc.c */ -#line 733 "program_parse.y" +#line 779 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2720,10 +2773,10 @@ yyreduce: ;} break; - case 59: + case 61: /* Line 1455 of yacc.c */ -#line 764 "program_parse.y" +#line 810 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2740,20 +2793,20 @@ yyreduce: ;} break; - case 62: + case 64: /* Line 1455 of yacc.c */ -#line 783 "program_parse.y" +#line 829 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer); ;} break; - case 63: + case 65: /* Line 1455 of yacc.c */ -#line 790 "program_parse.y" +#line 836 "program_parse.y" { /* FINISHME: Add support for multiple address registers. */ @@ -2765,31 +2818,31 @@ yyreduce: ;} break; - case 64: + case 66: /* Line 1455 of yacc.c */ -#line 801 "program_parse.y" +#line 847 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 65: + case 67: /* Line 1455 of yacc.c */ -#line 802 "program_parse.y" +#line 848 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 66: + case 68: /* Line 1455 of yacc.c */ -#line 803 "program_parse.y" +#line 849 "program_parse.y" { (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;} break; - case 67: + case 69: /* Line 1455 of yacc.c */ -#line 807 "program_parse.y" +#line 853 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2801,10 +2854,10 @@ yyreduce: ;} break; - case 68: + case 70: /* Line 1455 of yacc.c */ -#line 819 "program_parse.y" +#line 865 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2816,10 +2869,10 @@ yyreduce: ;} break; - case 69: + case 71: /* Line 1455 of yacc.c */ -#line 831 "program_parse.y" +#line 877 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2837,10 +2890,10 @@ yyreduce: ;} break; - case 70: + case 72: /* Line 1455 of yacc.c */ -#line 849 "program_parse.y" +#line 895 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector"); @@ -2851,10 +2904,10 @@ yyreduce: ;} break; - case 71: + case 73: /* Line 1455 of yacc.c */ -#line 860 "program_parse.y" +#line 906 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2866,24 +2919,24 @@ yyreduce: ;} break; - case 76: + case 78: /* Line 1455 of yacc.c */ -#line 876 "program_parse.y" +#line 922 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; - case 81: + case 83: /* Line 1455 of yacc.c */ -#line 880 "program_parse.y" +#line 926 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; - case 88: + case 90: /* Line 1455 of yacc.c */ -#line 892 "program_parse.y" +#line 938 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)])); @@ -2901,55 +2954,55 @@ yyreduce: ;} break; - case 89: + case 91: /* Line 1455 of yacc.c */ -#line 910 "program_parse.y" +#line 956 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} break; - case 90: + case 92: /* Line 1455 of yacc.c */ -#line 914 "program_parse.y" +#line 960 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} break; - case 91: + case 93: /* Line 1455 of yacc.c */ -#line 920 "program_parse.y" +#line 966 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_POS; ;} break; - case 92: + case 94: /* Line 1455 of yacc.c */ -#line 924 "program_parse.y" +#line 970 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_WEIGHT; ;} break; - case 93: + case 95: /* Line 1455 of yacc.c */ -#line 928 "program_parse.y" +#line 974 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_NORMAL; ;} break; - case 94: + case 96: /* Line 1455 of yacc.c */ -#line 932 "program_parse.y" +#line 978 "program_parse.y" { if (!state->ctx->Extensions.EXT_secondary_color) { yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported"); @@ -2960,10 +3013,10 @@ yyreduce: ;} break; - case 95: + case 97: /* Line 1455 of yacc.c */ -#line 941 "program_parse.y" +#line 987 "program_parse.y" { if (!state->ctx->Extensions.EXT_fog_coord) { yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported"); @@ -2974,38 +3027,38 @@ yyreduce: ;} break; - case 96: + case 98: /* Line 1455 of yacc.c */ -#line 950 "program_parse.y" +#line 996 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} break; - case 97: + case 99: /* Line 1455 of yacc.c */ -#line 954 "program_parse.y" +#line 1000 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; ;} break; - case 98: + case 100: /* Line 1455 of yacc.c */ -#line 959 "program_parse.y" +#line 1005 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer); ;} break; - case 99: + case 101: /* Line 1455 of yacc.c */ -#line 965 "program_parse.y" +#line 1011 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference"); @@ -3016,46 +3069,46 @@ yyreduce: ;} break; - case 103: + case 105: /* Line 1455 of yacc.c */ -#line 979 "program_parse.y" +#line 1025 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_WPOS; ;} break; - case 104: + case 106: /* Line 1455 of yacc.c */ -#line 983 "program_parse.y" +#line 1029 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer); ;} break; - case 105: + case 107: /* Line 1455 of yacc.c */ -#line 987 "program_parse.y" +#line 1033 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_FOGC; ;} break; - case 106: + case 108: /* Line 1455 of yacc.c */ -#line 991 "program_parse.y" +#line 1037 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} break; - case 109: + case 111: /* Line 1455 of yacc.c */ -#line 999 "program_parse.y" +#line 1045 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)])); @@ -3071,10 +3124,10 @@ yyreduce: ;} break; - case 110: + case 112: /* Line 1455 of yacc.c */ -#line 1015 "program_parse.y" +#line 1061 "program_parse.y" { if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) { yyerror(& (yylsp[(4) - (6)]), state, @@ -3096,19 +3149,19 @@ yyreduce: ;} break; - case 111: + case 113: /* Line 1455 of yacc.c */ -#line 1037 "program_parse.y" +#line 1083 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 112: + case 114: /* Line 1455 of yacc.c */ -#line 1041 "program_parse.y" +#line 1087 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size"); @@ -3119,38 +3172,38 @@ yyreduce: ;} break; - case 113: + case 115: /* Line 1455 of yacc.c */ -#line 1052 "program_parse.y" +#line 1098 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym); ;} break; - case 114: + case 116: /* Line 1455 of yacc.c */ -#line 1058 "program_parse.y" +#line 1104 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym); ;} break; - case 116: + case 118: /* Line 1455 of yacc.c */ -#line 1065 "program_parse.y" +#line 1111 "program_parse.y" { (yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length; (yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym); ;} break; - case 117: + case 119: /* Line 1455 of yacc.c */ -#line 1072 "program_parse.y" +#line 1118 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3158,10 +3211,10 @@ yyreduce: ;} break; - case 118: + case 120: /* Line 1455 of yacc.c */ -#line 1078 "program_parse.y" +#line 1124 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3169,10 +3222,10 @@ yyreduce: ;} break; - case 119: + case 121: /* Line 1455 of yacc.c */ -#line 1084 "program_parse.y" +#line 1130 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3180,10 +3233,10 @@ yyreduce: ;} break; - case 120: + case 122: /* Line 1455 of yacc.c */ -#line 1092 "program_parse.y" +#line 1138 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3191,10 +3244,10 @@ yyreduce: ;} break; - case 121: + case 123: /* Line 1455 of yacc.c */ -#line 1098 "program_parse.y" +#line 1144 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3202,10 +3255,10 @@ yyreduce: ;} break; - case 122: + case 124: /* Line 1455 of yacc.c */ -#line 1104 "program_parse.y" +#line 1150 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3213,10 +3266,10 @@ yyreduce: ;} break; - case 123: + case 125: /* Line 1455 of yacc.c */ -#line 1112 "program_parse.y" +#line 1158 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3224,10 +3277,10 @@ yyreduce: ;} break; - case 124: + case 126: /* Line 1455 of yacc.c */ -#line 1118 "program_parse.y" +#line 1164 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3235,10 +3288,10 @@ yyreduce: ;} break; - case 125: + case 127: /* Line 1455 of yacc.c */ -#line 1124 "program_parse.y" +#line 1170 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3246,101 +3299,101 @@ yyreduce: ;} break; - case 126: - -/* Line 1455 of yacc.c */ -#line 1131 "program_parse.y" - { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;} - break; - - case 127: - -/* Line 1455 of yacc.c */ -#line 1132 "program_parse.y" - { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} - break; - case 128: /* Line 1455 of yacc.c */ -#line 1135 "program_parse.y" - { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} +#line 1177 "program_parse.y" + { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;} break; case 129: /* Line 1455 of yacc.c */ -#line 1136 "program_parse.y" +#line 1178 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 130: /* Line 1455 of yacc.c */ -#line 1137 "program_parse.y" +#line 1181 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 131: /* Line 1455 of yacc.c */ -#line 1138 "program_parse.y" +#line 1182 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 132: /* Line 1455 of yacc.c */ -#line 1139 "program_parse.y" +#line 1183 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 133: /* Line 1455 of yacc.c */ -#line 1140 "program_parse.y" +#line 1184 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 134: /* Line 1455 of yacc.c */ -#line 1141 "program_parse.y" +#line 1185 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 135: /* Line 1455 of yacc.c */ -#line 1142 "program_parse.y" +#line 1186 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 136: /* Line 1455 of yacc.c */ -#line 1143 "program_parse.y" +#line 1187 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 137: /* Line 1455 of yacc.c */ -#line 1144 "program_parse.y" +#line 1188 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 138: /* Line 1455 of yacc.c */ -#line 1145 "program_parse.y" +#line 1189 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 139: /* Line 1455 of yacc.c */ -#line 1149 "program_parse.y" +#line 1190 "program_parse.y" + { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} + break; + + case 140: + +/* Line 1455 of yacc.c */ +#line 1191 "program_parse.y" + { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} + break; + + case 141: + +/* Line 1455 of yacc.c */ +#line 1195 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_MATERIAL; @@ -3349,37 +3402,37 @@ yyreduce: ;} break; - case 140: + case 142: /* Line 1455 of yacc.c */ -#line 1158 "program_parse.y" +#line 1204 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 141: + case 143: /* Line 1455 of yacc.c */ -#line 1162 "program_parse.y" +#line 1208 "program_parse.y" { (yyval.integer) = STATE_EMISSION; ;} break; - case 142: + case 144: /* Line 1455 of yacc.c */ -#line 1166 "program_parse.y" +#line 1212 "program_parse.y" { (yyval.integer) = STATE_SHININESS; ;} break; - case 143: + case 145: /* Line 1455 of yacc.c */ -#line 1172 "program_parse.y" +#line 1218 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHT; @@ -3388,28 +3441,28 @@ yyreduce: ;} break; - case 144: + case 146: /* Line 1455 of yacc.c */ -#line 1181 "program_parse.y" +#line 1227 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 145: + case 147: /* Line 1455 of yacc.c */ -#line 1185 "program_parse.y" +#line 1231 "program_parse.y" { (yyval.integer) = STATE_POSITION; ;} break; - case 146: + case 148: /* Line 1455 of yacc.c */ -#line 1189 "program_parse.y" +#line 1235 "program_parse.y" { if (!state->ctx->Extensions.EXT_point_parameters) { yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported"); @@ -3420,57 +3473,57 @@ yyreduce: ;} break; - case 147: + case 149: /* Line 1455 of yacc.c */ -#line 1198 "program_parse.y" +#line 1244 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 148: + case 150: /* Line 1455 of yacc.c */ -#line 1202 "program_parse.y" +#line 1248 "program_parse.y" { (yyval.integer) = STATE_HALF_VECTOR; ;} break; - case 149: + case 151: /* Line 1455 of yacc.c */ -#line 1208 "program_parse.y" +#line 1254 "program_parse.y" { (yyval.integer) = STATE_SPOT_DIRECTION; ;} break; - case 150: + case 152: /* Line 1455 of yacc.c */ -#line 1214 "program_parse.y" +#line 1260 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (2)].state)[1]; ;} break; - case 151: + case 153: /* Line 1455 of yacc.c */ -#line 1221 "program_parse.y" +#line 1267 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT; ;} break; - case 152: + case 154: /* Line 1455 of yacc.c */ -#line 1226 "program_parse.y" +#line 1272 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR; @@ -3478,10 +3531,10 @@ yyreduce: ;} break; - case 153: + case 155: /* Line 1455 of yacc.c */ -#line 1234 "program_parse.y" +#line 1280 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTPROD; @@ -3491,10 +3544,10 @@ yyreduce: ;} break; - case 155: + case 157: /* Line 1455 of yacc.c */ -#line 1246 "program_parse.y" +#line 1292 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(3) - (3)].integer); @@ -3502,46 +3555,46 @@ yyreduce: ;} break; - case 156: + case 158: /* Line 1455 of yacc.c */ -#line 1254 "program_parse.y" +#line 1300 "program_parse.y" { (yyval.integer) = STATE_TEXENV_COLOR; ;} break; - case 157: + case 159: /* Line 1455 of yacc.c */ -#line 1260 "program_parse.y" +#line 1306 "program_parse.y" { (yyval.integer) = STATE_AMBIENT; ;} break; - case 158: + case 160: /* Line 1455 of yacc.c */ -#line 1264 "program_parse.y" +#line 1310 "program_parse.y" { (yyval.integer) = STATE_DIFFUSE; ;} break; - case 159: + case 161: /* Line 1455 of yacc.c */ -#line 1268 "program_parse.y" +#line 1314 "program_parse.y" { (yyval.integer) = STATE_SPECULAR; ;} break; - case 160: + case 162: /* Line 1455 of yacc.c */ -#line 1274 "program_parse.y" +#line 1320 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) { yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector"); @@ -3552,10 +3605,10 @@ yyreduce: ;} break; - case 161: + case 163: /* Line 1455 of yacc.c */ -#line 1285 "program_parse.y" +#line 1331 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_TEXGEN; @@ -3564,92 +3617,92 @@ yyreduce: ;} break; - case 162: + case 164: /* Line 1455 of yacc.c */ -#line 1294 "program_parse.y" +#line 1340 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S; ;} break; - case 163: + case 165: /* Line 1455 of yacc.c */ -#line 1298 "program_parse.y" +#line 1344 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_OBJECT_S; ;} break; - case 164: + case 166: /* Line 1455 of yacc.c */ -#line 1303 "program_parse.y" +#line 1349 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S; ;} break; - case 165: + case 167: /* Line 1455 of yacc.c */ -#line 1307 "program_parse.y" +#line 1353 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S; ;} break; - case 166: + case 168: /* Line 1455 of yacc.c */ -#line 1311 "program_parse.y" +#line 1357 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S; ;} break; - case 167: + case 169: /* Line 1455 of yacc.c */ -#line 1315 "program_parse.y" +#line 1361 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S; ;} break; - case 168: + case 170: /* Line 1455 of yacc.c */ -#line 1321 "program_parse.y" +#line 1367 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); ;} break; - case 169: + case 171: /* Line 1455 of yacc.c */ -#line 1328 "program_parse.y" +#line 1374 "program_parse.y" { (yyval.integer) = STATE_FOG_COLOR; ;} break; - case 170: + case 172: /* Line 1455 of yacc.c */ -#line 1332 "program_parse.y" +#line 1378 "program_parse.y" { (yyval.integer) = STATE_FOG_PARAMS; ;} break; - case 171: + case 173: /* Line 1455 of yacc.c */ -#line 1338 "program_parse.y" +#line 1384 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_CLIPPLANE; @@ -3657,10 +3710,10 @@ yyreduce: ;} break; - case 172: + case 174: /* Line 1455 of yacc.c */ -#line 1346 "program_parse.y" +#line 1392 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) { yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector"); @@ -3671,38 +3724,38 @@ yyreduce: ;} break; - case 173: + case 175: /* Line 1455 of yacc.c */ -#line 1357 "program_parse.y" +#line 1403 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); ;} break; - case 174: + case 176: /* Line 1455 of yacc.c */ -#line 1364 "program_parse.y" +#line 1410 "program_parse.y" { (yyval.integer) = STATE_POINT_SIZE; ;} break; - case 175: + case 177: /* Line 1455 of yacc.c */ -#line 1368 "program_parse.y" +#line 1414 "program_parse.y" { (yyval.integer) = STATE_POINT_ATTENUATION; ;} break; - case 176: + case 178: /* Line 1455 of yacc.c */ -#line 1374 "program_parse.y" +#line 1420 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (5)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (5)].state)[1]; @@ -3712,10 +3765,10 @@ yyreduce: ;} break; - case 177: + case 179: /* Line 1455 of yacc.c */ -#line 1384 "program_parse.y" +#line 1430 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (2)].state)[1]; @@ -3725,20 +3778,20 @@ yyreduce: ;} break; - case 178: + case 180: /* Line 1455 of yacc.c */ -#line 1394 "program_parse.y" +#line 1440 "program_parse.y" { (yyval.state)[2] = 0; (yyval.state)[3] = 3; ;} break; - case 179: + case 181: /* Line 1455 of yacc.c */ -#line 1399 "program_parse.y" +#line 1445 "program_parse.y" { /* It seems logical that the matrix row range specifier would have * to specify a range or more than one row (i.e., $5 > $3). @@ -3756,10 +3809,10 @@ yyreduce: ;} break; - case 180: + case 182: /* Line 1455 of yacc.c */ -#line 1417 "program_parse.y" +#line 1463 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (3)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (3)].state)[1]; @@ -3767,55 +3820,55 @@ yyreduce: ;} break; - case 181: + case 183: /* Line 1455 of yacc.c */ -#line 1425 "program_parse.y" +#line 1471 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 182: + case 184: /* Line 1455 of yacc.c */ -#line 1429 "program_parse.y" +#line 1475 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 183: + case 185: /* Line 1455 of yacc.c */ -#line 1435 "program_parse.y" +#line 1481 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVERSE; ;} break; - case 184: + case 186: /* Line 1455 of yacc.c */ -#line 1439 "program_parse.y" +#line 1485 "program_parse.y" { (yyval.integer) = STATE_MATRIX_TRANSPOSE; ;} break; - case 185: + case 187: /* Line 1455 of yacc.c */ -#line 1443 "program_parse.y" +#line 1489 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVTRANS; ;} break; - case 186: + case 188: /* Line 1455 of yacc.c */ -#line 1449 "program_parse.y" +#line 1495 "program_parse.y" { if ((yyvsp[(1) - (1)].integer) > 3) { yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference"); @@ -3826,88 +3879,88 @@ yyreduce: ;} break; - case 187: + case 189: /* Line 1455 of yacc.c */ -#line 1460 "program_parse.y" +#line 1506 "program_parse.y" { (yyval.state)[0] = STATE_MODELVIEW_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); ;} break; - case 188: + case 190: /* Line 1455 of yacc.c */ -#line 1465 "program_parse.y" +#line 1511 "program_parse.y" { (yyval.state)[0] = STATE_PROJECTION_MATRIX; (yyval.state)[1] = 0; ;} break; - case 189: + case 191: /* Line 1455 of yacc.c */ -#line 1470 "program_parse.y" +#line 1516 "program_parse.y" { (yyval.state)[0] = STATE_MVP_MATRIX; (yyval.state)[1] = 0; ;} break; - case 190: + case 192: /* Line 1455 of yacc.c */ -#line 1475 "program_parse.y" +#line 1521 "program_parse.y" { (yyval.state)[0] = STATE_TEXTURE_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); ;} break; - case 191: + case 193: /* Line 1455 of yacc.c */ -#line 1480 "program_parse.y" +#line 1526 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; ;} break; - case 192: + case 194: /* Line 1455 of yacc.c */ -#line 1485 "program_parse.y" +#line 1531 "program_parse.y" { (yyval.state)[0] = STATE_PROGRAM_MATRIX; (yyval.state)[1] = (yyvsp[(3) - (4)].integer); ;} break; - case 193: + case 195: /* Line 1455 of yacc.c */ -#line 1492 "program_parse.y" +#line 1538 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 194: + case 196: /* Line 1455 of yacc.c */ -#line 1496 "program_parse.y" +#line 1542 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 195: + case 197: /* Line 1455 of yacc.c */ -#line 1501 "program_parse.y" +#line 1547 "program_parse.y" { /* Since GL_ARB_vertex_blend isn't supported, only modelview matrix * zero is valid. @@ -3921,10 +3974,10 @@ yyreduce: ;} break; - case 196: + case 198: /* Line 1455 of yacc.c */ -#line 1514 "program_parse.y" +#line 1560 "program_parse.y" { /* Since GL_ARB_matrix_palette isn't supported, just let any value * through here. The error will be generated later. @@ -3933,10 +3986,10 @@ yyreduce: ;} break; - case 197: + case 199: /* Line 1455 of yacc.c */ -#line 1522 "program_parse.y" +#line 1568 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) { yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector"); @@ -3947,20 +4000,20 @@ yyreduce: ;} break; - case 198: + case 200: /* Line 1455 of yacc.c */ -#line 1533 "program_parse.y" +#line 1579 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_DEPTH_RANGE; ;} break; - case 203: + case 205: /* Line 1455 of yacc.c */ -#line 1545 "program_parse.y" +#line 1591 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -3970,30 +4023,30 @@ yyreduce: ;} break; - case 204: + case 206: /* Line 1455 of yacc.c */ -#line 1555 "program_parse.y" +#line 1601 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); ;} break; - case 205: + case 207: /* Line 1455 of yacc.c */ -#line 1560 "program_parse.y" +#line 1606 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); ;} break; - case 206: + case 208: /* Line 1455 of yacc.c */ -#line 1567 "program_parse.y" +#line 1613 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4003,10 +4056,10 @@ yyreduce: ;} break; - case 207: + case 209: /* Line 1455 of yacc.c */ -#line 1577 "program_parse.y" +#line 1623 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4016,30 +4069,30 @@ yyreduce: ;} break; - case 208: + case 210: /* Line 1455 of yacc.c */ -#line 1586 "program_parse.y" +#line 1632 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); ;} break; - case 209: + case 211: /* Line 1455 of yacc.c */ -#line 1591 "program_parse.y" +#line 1637 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); ;} break; - case 210: + case 212: /* Line 1455 of yacc.c */ -#line 1598 "program_parse.y" +#line 1644 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4049,10 +4102,10 @@ yyreduce: ;} break; - case 211: + case 213: /* Line 1455 of yacc.c */ -#line 1608 "program_parse.y" +#line 1654 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference"); @@ -4062,10 +4115,10 @@ yyreduce: ;} break; - case 212: + case 214: /* Line 1455 of yacc.c */ -#line 1618 "program_parse.y" +#line 1664 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference"); @@ -4075,10 +4128,10 @@ yyreduce: ;} break; - case 217: + case 219: /* Line 1455 of yacc.c */ -#line 1633 "program_parse.y" +#line 1679 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4088,10 +4141,10 @@ yyreduce: ;} break; - case 218: + case 220: /* Line 1455 of yacc.c */ -#line 1643 "program_parse.y" +#line 1689 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4101,10 +4154,10 @@ yyreduce: ;} break; - case 219: + case 221: /* Line 1455 of yacc.c */ -#line 1651 "program_parse.y" +#line 1697 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer); @@ -4114,10 +4167,10 @@ yyreduce: ;} break; - case 220: + case 222: /* Line 1455 of yacc.c */ -#line 1661 "program_parse.y" +#line 1707 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (3)].real); @@ -4127,10 +4180,10 @@ yyreduce: ;} break; - case 221: + case 223: /* Line 1455 of yacc.c */ -#line 1669 "program_parse.y" +#line 1715 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (5)].real); @@ -4140,10 +4193,10 @@ yyreduce: ;} break; - case 222: + case 224: /* Line 1455 of yacc.c */ -#line 1678 "program_parse.y" +#line 1724 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (7)].real); @@ -4153,10 +4206,10 @@ yyreduce: ;} break; - case 223: + case 225: /* Line 1455 of yacc.c */ -#line 1687 "program_parse.y" +#line 1733 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (9)].real); @@ -4166,63 +4219,63 @@ yyreduce: ;} break; - case 224: + case 226: /* Line 1455 of yacc.c */ -#line 1697 "program_parse.y" +#line 1743 "program_parse.y" { (yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real); ;} break; - case 225: + case 227: /* Line 1455 of yacc.c */ -#line 1701 "program_parse.y" +#line 1747 "program_parse.y" { (yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer)); ;} break; - case 226: + case 228: /* Line 1455 of yacc.c */ -#line 1706 "program_parse.y" +#line 1752 "program_parse.y" { (yyval.negate) = FALSE; ;} break; - case 227: + case 229: /* Line 1455 of yacc.c */ -#line 1707 "program_parse.y" +#line 1753 "program_parse.y" { (yyval.negate) = TRUE; ;} break; - case 228: + case 230: /* Line 1455 of yacc.c */ -#line 1708 "program_parse.y" +#line 1754 "program_parse.y" { (yyval.negate) = FALSE; ;} break; - case 229: + case 231: /* Line 1455 of yacc.c */ -#line 1711 "program_parse.y" +#line 1757 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 231: + case 233: /* Line 1455 of yacc.c */ -#line 1714 "program_parse.y" +#line 1760 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 233: + case 235: /* Line 1455 of yacc.c */ -#line 1718 "program_parse.y" +#line 1764 "program_parse.y" { if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) { YYERROR; @@ -4230,10 +4283,10 @@ yyreduce: ;} break; - case 234: + case 236: /* Line 1455 of yacc.c */ -#line 1724 "program_parse.y" +#line 1770 "program_parse.y" { if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) { YYERROR; @@ -4241,10 +4294,10 @@ yyreduce: ;} break; - case 235: + case 237: /* Line 1455 of yacc.c */ -#line 1732 "program_parse.y" +#line 1778 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)])); @@ -4257,10 +4310,10 @@ yyreduce: ;} break; - case 236: + case 238: /* Line 1455 of yacc.c */ -#line 1745 "program_parse.y" +#line 1791 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_HPOS; @@ -4271,10 +4324,10 @@ yyreduce: ;} break; - case 237: + case 239: /* Line 1455 of yacc.c */ -#line 1754 "program_parse.y" +#line 1800 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_FOGC; @@ -4285,19 +4338,19 @@ yyreduce: ;} break; - case 238: + case 240: /* Line 1455 of yacc.c */ -#line 1763 "program_parse.y" +#line 1809 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (2)].result); ;} break; - case 239: + case 241: /* Line 1455 of yacc.c */ -#line 1767 "program_parse.y" +#line 1813 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_PSIZ; @@ -4308,10 +4361,10 @@ yyreduce: ;} break; - case 240: + case 242: /* Line 1455 of yacc.c */ -#line 1776 "program_parse.y" +#line 1822 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer); @@ -4322,10 +4375,10 @@ yyreduce: ;} break; - case 241: + case 243: /* Line 1455 of yacc.c */ -#line 1785 "program_parse.y" +#line 1831 "program_parse.y" { if (state->mode == ARB_fragment) { (yyval.result) = FRAG_RESULT_DEPTH; @@ -4336,19 +4389,19 @@ yyreduce: ;} break; - case 242: + case 244: /* Line 1455 of yacc.c */ -#line 1796 "program_parse.y" +#line 1842 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer); ;} break; - case 243: + case 245: /* Line 1455 of yacc.c */ -#line 1802 "program_parse.y" +#line 1848 "program_parse.y" { (yyval.integer) = (state->mode == ARB_vertex) ? VERT_RESULT_COL0 @@ -4356,10 +4409,10 @@ yyreduce: ;} break; - case 244: + case 246: /* Line 1455 of yacc.c */ -#line 1808 "program_parse.y" +#line 1854 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_COL0; @@ -4370,10 +4423,10 @@ yyreduce: ;} break; - case 245: + case 247: /* Line 1455 of yacc.c */ -#line 1817 "program_parse.y" +#line 1863 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_BFC0; @@ -4384,19 +4437,19 @@ yyreduce: ;} break; - case 246: + case 248: /* Line 1455 of yacc.c */ -#line 1828 "program_parse.y" +#line 1874 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 247: + case 249: /* Line 1455 of yacc.c */ -#line 1832 "program_parse.y" +#line 1878 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 0; @@ -4407,10 +4460,10 @@ yyreduce: ;} break; - case 248: + case 250: /* Line 1455 of yacc.c */ -#line 1841 "program_parse.y" +#line 1887 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 1; @@ -4421,94 +4474,94 @@ yyreduce: ;} break; - case 249: + case 251: /* Line 1455 of yacc.c */ -#line 1851 "program_parse.y" +#line 1897 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 250: + case 252: /* Line 1455 of yacc.c */ -#line 1852 "program_parse.y" +#line 1898 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 251: + case 253: /* Line 1455 of yacc.c */ -#line 1853 "program_parse.y" +#line 1899 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 252: + case 254: /* Line 1455 of yacc.c */ -#line 1856 "program_parse.y" +#line 1902 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 253: + case 255: /* Line 1455 of yacc.c */ -#line 1857 "program_parse.y" +#line 1903 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 254: + case 256: /* Line 1455 of yacc.c */ -#line 1858 "program_parse.y" +#line 1904 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 255: + case 257: /* Line 1455 of yacc.c */ -#line 1861 "program_parse.y" +#line 1907 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 256: + case 258: /* Line 1455 of yacc.c */ -#line 1862 "program_parse.y" +#line 1908 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 257: + case 259: /* Line 1455 of yacc.c */ -#line 1865 "program_parse.y" +#line 1911 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 258: + case 260: /* Line 1455 of yacc.c */ -#line 1866 "program_parse.y" +#line 1912 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 259: + case 261: /* Line 1455 of yacc.c */ -#line 1869 "program_parse.y" +#line 1915 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 260: + case 262: /* Line 1455 of yacc.c */ -#line 1870 "program_parse.y" +#line 1916 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 261: + case 263: /* Line 1455 of yacc.c */ -#line 1874 "program_parse.y" +#line 1920 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector"); @@ -4519,10 +4572,10 @@ yyreduce: ;} break; - case 262: + case 264: /* Line 1455 of yacc.c */ -#line 1885 "program_parse.y" +#line 1931 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector"); @@ -4533,10 +4586,10 @@ yyreduce: ;} break; - case 263: + case 265: /* Line 1455 of yacc.c */ -#line 1896 "program_parse.y" +#line 1942 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector"); @@ -4547,10 +4600,10 @@ yyreduce: ;} break; - case 264: + case 266: /* Line 1455 of yacc.c */ -#line 1907 "program_parse.y" +#line 1953 "program_parse.y" { struct asm_symbol *exist = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string)); @@ -4574,7 +4627,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 4578 "program_parse.tab.c" +#line 4631 "program_parse.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4793,7 +4846,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 1927 "program_parse.y" +#line 1973 "program_parse.y" struct asm_instruction * diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 9dab00c385..4cd459a096 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -177,7 +177,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op, %type instruction ALU_instruction TexInstruction %type ARL_instruction VECTORop_instruction %type SCALARop_instruction BINSCop_instruction BINop_instruction -%type TRIop_instruction SWZ_instruction SAMPLE_instruction +%type TRIop_instruction TXD_instruction SWZ_instruction SAMPLE_instruction %type KIL_instruction %type dstReg maskedDstReg maskedAddrReg @@ -347,6 +347,7 @@ ALU_instruction: ARL_instruction TexInstruction: SAMPLE_instruction | KIL_instruction + | TXD_instruction ; ARL_instruction: ARL maskedAddrReg ',' scalarSrcReg @@ -444,6 +445,51 @@ KIL_instruction: KIL swizzleSrcReg } ; +TXD_instruction: TXD_OP maskedDstReg ',' swizzleSrcReg ',' swizzleSrcReg ',' swizzleSrcReg ',' texImageUnit ',' texTarget + { + $$ = asm_instruction_ctor($1.Opcode, & $2, & $4, & $6, & $8); + if ($$ != NULL) { + const GLbitfield tex_mask = (1U << $10); + GLbitfield shadow_tex = 0; + GLbitfield target_mask = 0; + + + $$->Base.SaturateMode = $1.SaturateMode; + $$->Base.TexSrcUnit = $10; + + if ($12 < 0) { + shadow_tex = tex_mask; + + $$->Base.TexSrcTarget = -$12; + $$->Base.TexShadow = 1; + } else { + $$->Base.TexSrcTarget = $12; + } + + target_mask = (1U << $$->Base.TexSrcTarget); + + /* If this texture unit was previously accessed and that access + * had a different texture target, generate an error. + * + * If this texture unit was previously accessed and that access + * had a different shadow mode, generate an error. + */ + if ((state->prog->TexturesUsed[$10] != 0) + && ((state->prog->TexturesUsed[$10] != target_mask) + || ((state->prog->ShadowSamplers & tex_mask) + != shadow_tex))) { + yyerror(& @12, state, + "multiple targets used on one texture image unit"); + YYERROR; + } + + + state->prog->TexturesUsed[$10] |= target_mask; + state->prog->ShadowSamplers |= shadow_tex; + } + } + ; + texImageUnit: TEXTURE_UNIT optTexImageUnitNum { $$ = $2; -- cgit v1.2.3 From b8e389bb0315287b72087b93a089ab944d77ab80 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 3 Sep 2009 14:05:18 -0700 Subject: NV fp parser: Support new scalar constant behavior ARBfp requires scalar constants have a '.x' suffix, but NVfp_option does not. This shows up with instructions that require a scalar parameter (e.g., COS). --- src/mesa/shader/program_parse.tab.c | 1482 ++++++++++++++++++----------------- src/mesa/shader/program_parse.y | 17 + 2 files changed, 770 insertions(+), 729 deletions(-) diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 06aefd073f..508ac617e4 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -588,16 +588,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 349 +#define YYLAST 351 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 116 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 135 /* YYNRULES -- Number of rules. */ -#define YYNRULES 266 +#define YYNRULES 267 /* YYNRULES -- Number of states. */ -#define YYNSTATES 447 +#define YYNSTATES 448 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -657,29 +657,29 @@ static const yytype_uint16 yyprhs[] = 24, 27, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 59, 64, 69, 76, 83, 92, 101, 104, 117, 120, 122, 124, 126, 128, 130, - 132, 134, 136, 138, 140, 142, 144, 151, 155, 159, - 162, 165, 173, 176, 178, 180, 182, 184, 189, 191, - 193, 195, 197, 199, 201, 203, 207, 208, 211, 214, - 216, 218, 220, 222, 224, 226, 228, 230, 232, 233, - 235, 237, 239, 241, 242, 244, 246, 248, 250, 252, - 254, 259, 262, 265, 267, 270, 272, 275, 277, 280, - 285, 290, 292, 293, 297, 299, 301, 304, 306, 309, - 311, 313, 317, 324, 325, 327, 330, 335, 337, 341, - 343, 345, 347, 349, 351, 353, 355, 357, 359, 361, + 132, 134, 136, 138, 140, 142, 144, 151, 155, 158, + 162, 165, 168, 176, 179, 181, 183, 185, 187, 192, + 194, 196, 198, 200, 202, 204, 206, 210, 211, 214, + 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, + 236, 238, 240, 242, 244, 245, 247, 249, 251, 253, + 255, 257, 262, 265, 268, 270, 273, 275, 278, 280, + 283, 288, 293, 295, 296, 300, 302, 304, 307, 309, + 312, 314, 316, 320, 327, 328, 330, 333, 338, 340, + 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 367, 370, 373, 376, 379, 382, 385, 388, 391, - 394, 397, 401, 403, 405, 407, 413, 415, 417, 419, - 422, 424, 426, 429, 431, 434, 441, 443, 447, 449, - 451, 453, 455, 457, 462, 464, 466, 468, 470, 472, - 474, 477, 479, 481, 487, 489, 492, 494, 496, 502, - 505, 506, 513, 517, 518, 520, 522, 524, 526, 528, - 531, 533, 535, 538, 543, 548, 549, 551, 553, 555, - 557, 560, 562, 564, 566, 568, 574, 576, 580, 586, - 592, 594, 598, 604, 606, 608, 610, 612, 614, 616, - 618, 620, 622, 626, 632, 640, 650, 653, 656, 658, - 660, 661, 662, 666, 667, 671, 675, 677, 682, 685, - 688, 691, 694, 698, 701, 705, 706, 708, 710, 711, - 713, 715, 716, 718, 720, 721, 723, 725, 726, 730, - 731, 735, 736, 740, 742, 744, 746 + 394, 397, 400, 404, 406, 408, 410, 416, 418, 420, + 422, 425, 427, 429, 432, 434, 437, 444, 446, 450, + 452, 454, 456, 458, 460, 465, 467, 469, 471, 473, + 475, 477, 480, 482, 484, 490, 492, 495, 497, 499, + 505, 508, 509, 516, 520, 521, 523, 525, 527, 529, + 531, 534, 536, 538, 541, 546, 551, 552, 554, 556, + 558, 560, 563, 565, 567, 569, 571, 577, 579, 583, + 589, 595, 597, 601, 607, 609, 611, 613, 615, 617, + 619, 621, 623, 625, 629, 635, 643, 653, 656, 659, + 661, 663, 664, 665, 669, 670, 674, 678, 680, 685, + 688, 691, 694, 697, 701, 704, 708, 709, 711, 713, + 714, 716, 718, 719, 721, 723, 724, 726, 728, 729, + 733, 734, 738, 739, 743, 745, 747, 749 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -700,67 +700,67 @@ static const yytype_int16 yyrhs[] = 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, 21, 140, 108, 145, 108, 142, - -1, 231, 145, 157, -1, 231, 145, 158, -1, 146, - 159, -1, 154, 156, -1, 143, 108, 143, 108, 143, - 108, 143, -1, 231, 144, -1, 23, -1, 99, -1, - 99, -1, 162, -1, 147, 109, 148, 110, -1, 176, - -1, 238, -1, 99, -1, 99, -1, 149, -1, 150, - -1, 23, -1, 154, 155, 151, -1, -1, 111, 152, - -1, 112, 153, -1, 23, -1, 23, -1, 99, -1, - 103, -1, 103, -1, 103, -1, 103, -1, 100, -1, - 104, -1, -1, 100, -1, 101, -1, 102, -1, 103, - -1, -1, 161, -1, 168, -1, 232, -1, 234, -1, - 237, -1, 250, -1, 7, 99, 113, 162, -1, 96, - 163, -1, 38, 167, -1, 60, -1, 98, 165, -1, - 53, -1, 29, 243, -1, 37, -1, 74, 244, -1, - 50, 109, 166, 110, -1, 97, 109, 164, 110, -1, - 23, -1, -1, 109, 166, 110, -1, 23, -1, 60, - -1, 29, 243, -1, 37, -1, 74, 244, -1, 169, - -1, 170, -1, 10, 99, 172, -1, 10, 99, 109, - 171, 110, 173, -1, -1, 23, -1, 113, 175, -1, - 113, 114, 174, 115, -1, 177, -1, 174, 108, 177, - -1, 179, -1, 215, -1, 225, -1, 179, -1, 215, - -1, 226, -1, 178, -1, 216, -1, 225, -1, 179, - -1, 73, 203, -1, 73, 180, -1, 73, 182, -1, - 73, 185, -1, 73, 187, -1, 73, 193, -1, 73, - 189, -1, 73, 196, -1, 73, 198, -1, 73, 200, - -1, 73, 202, -1, 73, 214, -1, 47, 242, 181, - -1, 191, -1, 33, -1, 69, -1, 43, 109, 192, - 110, 183, -1, 191, -1, 60, -1, 26, -1, 72, - 184, -1, 40, -1, 32, -1, 44, 186, -1, 25, - -1, 242, 67, -1, 45, 109, 192, 110, 242, 188, - -1, 191, -1, 75, 246, 190, -1, 29, -1, 25, - -1, 31, -1, 71, -1, 23, -1, 76, 244, 194, - 195, -1, 35, -1, 54, -1, 79, -1, 80, -1, - 78, -1, 77, -1, 36, 197, -1, 29, -1, 56, - -1, 28, 109, 199, 110, 57, -1, 23, -1, 58, - 201, -1, 70, -1, 26, -1, 205, 66, 109, 208, - 110, -1, 205, 204, -1, -1, 66, 109, 208, 105, - 208, 110, -1, 49, 209, 206, -1, -1, 207, -1, - 41, -1, 82, -1, 42, -1, 23, -1, 51, 210, - -1, 63, -1, 52, -1, 81, 244, -1, 55, 109, - 212, 110, -1, 48, 109, 213, 110, -1, -1, 211, - -1, 23, -1, 23, -1, 23, -1, 30, 64, -1, - 219, -1, 222, -1, 217, -1, 220, -1, 62, 34, - 109, 218, 110, -1, 223, -1, 223, 105, 223, -1, - 62, 34, 109, 223, 110, -1, 62, 46, 109, 221, - 110, -1, 224, -1, 224, 105, 224, -1, 62, 46, - 109, 224, 110, -1, 23, -1, 23, -1, 227, -1, - 229, -1, 228, -1, 229, -1, 230, -1, 24, -1, - 23, -1, 114, 230, 115, -1, 114, 230, 108, 230, - 115, -1, 114, 230, 108, 230, 108, 230, 115, -1, - 114, 230, 108, 230, 108, 230, 108, 230, 115, -1, - 231, 24, -1, 231, 23, -1, 111, -1, 112, -1, - -1, -1, 11, 233, 236, -1, -1, 5, 235, 236, - -1, 236, 108, 99, -1, 99, -1, 9, 99, 113, - 238, -1, 65, 60, -1, 65, 37, -1, 65, 239, - -1, 65, 59, -1, 65, 74, 244, -1, 65, 30, - -1, 29, 240, 241, -1, -1, 39, -1, 27, -1, - -1, 61, -1, 68, -1, -1, 39, -1, 27, -1, - -1, 61, -1, 68, -1, -1, 109, 247, 110, -1, - -1, 109, 248, 110, -1, -1, 109, 249, 110, -1, - 23, -1, 23, -1, 23, -1, 6, 99, 113, 99, - -1 + -1, 231, 145, 157, -1, 231, 228, -1, 231, 145, + 158, -1, 146, 159, -1, 154, 156, -1, 143, 108, + 143, 108, 143, 108, 143, -1, 231, 144, -1, 23, + -1, 99, -1, 99, -1, 162, -1, 147, 109, 148, + 110, -1, 176, -1, 238, -1, 99, -1, 99, -1, + 149, -1, 150, -1, 23, -1, 154, 155, 151, -1, + -1, 111, 152, -1, 112, 153, -1, 23, -1, 23, + -1, 99, -1, 103, -1, 103, -1, 103, -1, 103, + -1, 100, -1, 104, -1, -1, 100, -1, 101, -1, + 102, -1, 103, -1, -1, 161, -1, 168, -1, 232, + -1, 234, -1, 237, -1, 250, -1, 7, 99, 113, + 162, -1, 96, 163, -1, 38, 167, -1, 60, -1, + 98, 165, -1, 53, -1, 29, 243, -1, 37, -1, + 74, 244, -1, 50, 109, 166, 110, -1, 97, 109, + 164, 110, -1, 23, -1, -1, 109, 166, 110, -1, + 23, -1, 60, -1, 29, 243, -1, 37, -1, 74, + 244, -1, 169, -1, 170, -1, 10, 99, 172, -1, + 10, 99, 109, 171, 110, 173, -1, -1, 23, -1, + 113, 175, -1, 113, 114, 174, 115, -1, 177, -1, + 174, 108, 177, -1, 179, -1, 215, -1, 225, -1, + 179, -1, 215, -1, 226, -1, 178, -1, 216, -1, + 225, -1, 179, -1, 73, 203, -1, 73, 180, -1, + 73, 182, -1, 73, 185, -1, 73, 187, -1, 73, + 193, -1, 73, 189, -1, 73, 196, -1, 73, 198, + -1, 73, 200, -1, 73, 202, -1, 73, 214, -1, + 47, 242, 181, -1, 191, -1, 33, -1, 69, -1, + 43, 109, 192, 110, 183, -1, 191, -1, 60, -1, + 26, -1, 72, 184, -1, 40, -1, 32, -1, 44, + 186, -1, 25, -1, 242, 67, -1, 45, 109, 192, + 110, 242, 188, -1, 191, -1, 75, 246, 190, -1, + 29, -1, 25, -1, 31, -1, 71, -1, 23, -1, + 76, 244, 194, 195, -1, 35, -1, 54, -1, 79, + -1, 80, -1, 78, -1, 77, -1, 36, 197, -1, + 29, -1, 56, -1, 28, 109, 199, 110, 57, -1, + 23, -1, 58, 201, -1, 70, -1, 26, -1, 205, + 66, 109, 208, 110, -1, 205, 204, -1, -1, 66, + 109, 208, 105, 208, 110, -1, 49, 209, 206, -1, + -1, 207, -1, 41, -1, 82, -1, 42, -1, 23, + -1, 51, 210, -1, 63, -1, 52, -1, 81, 244, + -1, 55, 109, 212, 110, -1, 48, 109, 213, 110, + -1, -1, 211, -1, 23, -1, 23, -1, 23, -1, + 30, 64, -1, 219, -1, 222, -1, 217, -1, 220, + -1, 62, 34, 109, 218, 110, -1, 223, -1, 223, + 105, 223, -1, 62, 34, 109, 223, 110, -1, 62, + 46, 109, 221, 110, -1, 224, -1, 224, 105, 224, + -1, 62, 46, 109, 224, 110, -1, 23, -1, 23, + -1, 227, -1, 229, -1, 228, -1, 229, -1, 230, + -1, 24, -1, 23, -1, 114, 230, 115, -1, 114, + 230, 108, 230, 115, -1, 114, 230, 108, 230, 108, + 230, 115, -1, 114, 230, 108, 230, 108, 230, 108, + 230, 115, -1, 231, 24, -1, 231, 23, -1, 111, + -1, 112, -1, -1, -1, 11, 233, 236, -1, -1, + 5, 235, 236, -1, 236, 108, 99, -1, 99, -1, + 9, 99, 113, 238, -1, 65, 60, -1, 65, 37, + -1, 65, 239, -1, 65, 59, -1, 65, 74, 244, + -1, 65, 30, -1, 29, 240, 241, -1, -1, 39, + -1, 27, -1, -1, 61, -1, 68, -1, -1, 39, + -1, 27, -1, -1, 61, -1, 68, -1, -1, 109, + 247, 110, -1, -1, 109, 248, 110, -1, -1, 109, + 249, 110, -1, 23, -1, 23, -1, 23, -1, 6, + 99, 113, 99, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -770,29 +770,29 @@ static const yytype_uint16 yyrline[] = 309, 324, 327, 332, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 353, 359, 366, 373, 381, 388, 396, 441, 448, 493, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 513, 526, 539, 552, - 574, 583, 616, 623, 638, 688, 730, 741, 762, 772, - 778, 809, 826, 826, 828, 835, 847, 848, 849, 852, - 864, 876, 894, 905, 917, 919, 920, 921, 922, 925, - 925, 925, 925, 926, 929, 930, 931, 932, 933, 934, - 937, 955, 959, 965, 969, 973, 977, 986, 995, 999, - 1004, 1010, 1021, 1021, 1022, 1024, 1028, 1032, 1036, 1042, - 1042, 1044, 1060, 1083, 1086, 1097, 1103, 1109, 1110, 1117, - 1123, 1129, 1137, 1143, 1149, 1157, 1163, 1169, 1177, 1178, - 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, - 1191, 1194, 1203, 1207, 1211, 1217, 1226, 1230, 1234, 1243, - 1247, 1253, 1259, 1266, 1271, 1279, 1289, 1291, 1299, 1305, - 1309, 1313, 1319, 1330, 1339, 1343, 1348, 1352, 1356, 1360, - 1366, 1373, 1377, 1383, 1391, 1402, 1409, 1413, 1419, 1429, - 1440, 1444, 1462, 1471, 1474, 1480, 1484, 1488, 1494, 1505, - 1510, 1515, 1520, 1525, 1530, 1538, 1541, 1546, 1559, 1567, - 1578, 1586, 1586, 1588, 1588, 1590, 1600, 1605, 1612, 1622, - 1631, 1636, 1643, 1653, 1663, 1675, 1675, 1676, 1676, 1678, - 1688, 1696, 1706, 1714, 1722, 1731, 1742, 1746, 1752, 1753, - 1754, 1757, 1757, 1760, 1760, 1763, 1769, 1777, 1790, 1799, - 1808, 1812, 1821, 1830, 1841, 1848, 1853, 1862, 1874, 1877, - 1886, 1897, 1898, 1899, 1902, 1903, 1904, 1907, 1908, 1911, - 1912, 1915, 1916, 1919, 1930, 1941, 1952 + 505, 506, 507, 508, 509, 510, 513, 526, 537, 556, + 569, 591, 600, 633, 640, 655, 705, 747, 758, 779, + 789, 795, 826, 843, 843, 845, 852, 864, 865, 866, + 869, 881, 893, 911, 922, 934, 936, 937, 938, 939, + 942, 942, 942, 942, 943, 946, 947, 948, 949, 950, + 951, 954, 972, 976, 982, 986, 990, 994, 1003, 1012, + 1016, 1021, 1027, 1038, 1038, 1039, 1041, 1045, 1049, 1053, + 1059, 1059, 1061, 1077, 1100, 1103, 1114, 1120, 1126, 1127, + 1134, 1140, 1146, 1154, 1160, 1166, 1174, 1180, 1186, 1194, + 1195, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, + 1207, 1208, 1211, 1220, 1224, 1228, 1234, 1243, 1247, 1251, + 1260, 1264, 1270, 1276, 1283, 1288, 1296, 1306, 1308, 1316, + 1322, 1326, 1330, 1336, 1347, 1356, 1360, 1365, 1369, 1373, + 1377, 1383, 1390, 1394, 1400, 1408, 1419, 1426, 1430, 1436, + 1446, 1457, 1461, 1479, 1488, 1491, 1497, 1501, 1505, 1511, + 1522, 1527, 1532, 1537, 1542, 1547, 1555, 1558, 1563, 1576, + 1584, 1595, 1603, 1603, 1605, 1605, 1607, 1617, 1622, 1629, + 1639, 1648, 1653, 1660, 1670, 1680, 1692, 1692, 1693, 1693, + 1695, 1705, 1713, 1723, 1731, 1739, 1748, 1759, 1763, 1769, + 1770, 1771, 1774, 1774, 1777, 1777, 1780, 1786, 1794, 1807, + 1816, 1825, 1829, 1838, 1847, 1858, 1865, 1870, 1879, 1891, + 1894, 1903, 1914, 1915, 1916, 1919, 1920, 1921, 1924, 1925, + 1928, 1929, 1932, 1933, 1936, 1947, 1958, 1969 }; #endif @@ -890,29 +890,29 @@ static const yytype_uint8 yyr1[] = 122, 122, 123, 123, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 144, 145, 145, 145, 145, 146, - 146, 147, 148, 148, 149, 150, 151, 151, 151, 152, - 153, 154, 155, 156, 157, 158, 158, 158, 158, 159, - 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, - 161, 162, 162, 163, 163, 163, 163, 163, 163, 163, - 163, 164, 165, 165, 166, 167, 167, 167, 167, 168, - 168, 169, 170, 171, 171, 172, 173, 174, 174, 175, - 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 180, 181, 181, 181, 182, 183, 183, 183, 183, - 183, 184, 185, 186, 186, 187, 188, 189, 190, 191, - 191, 191, 192, 193, 194, 194, 195, 195, 195, 195, - 196, 197, 197, 198, 199, 200, 201, 201, 202, 203, - 204, 204, 205, 206, 206, 207, 207, 207, 208, 209, - 209, 209, 209, 209, 209, 210, 210, 211, 212, 213, - 214, 215, 215, 216, 216, 217, 218, 218, 219, 220, - 221, 221, 222, 223, 224, 225, 225, 226, 226, 227, - 228, 228, 229, 229, 229, 229, 230, 230, 231, 231, - 231, 233, 232, 235, 234, 236, 236, 237, 238, 238, - 238, 238, 238, 238, 239, 240, 240, 240, 241, 241, - 241, 242, 242, 242, 243, 243, 243, 244, 244, 245, - 245, 246, 246, 247, 248, 249, 250 + 136, 136, 136, 136, 136, 136, 137, 138, 138, 139, + 140, 141, 142, 143, 144, 144, 145, 145, 145, 145, + 146, 146, 147, 148, 148, 149, 150, 151, 151, 151, + 152, 153, 154, 155, 156, 157, 158, 158, 158, 158, + 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, + 160, 161, 162, 162, 163, 163, 163, 163, 163, 163, + 163, 163, 164, 165, 165, 166, 167, 167, 167, 167, + 168, 168, 169, 170, 171, 171, 172, 173, 174, 174, + 175, 175, 175, 176, 176, 176, 177, 177, 177, 178, + 178, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 180, 181, 181, 181, 182, 183, 183, 183, + 183, 183, 184, 185, 186, 186, 187, 188, 189, 190, + 191, 191, 191, 192, 193, 194, 194, 195, 195, 195, + 195, 196, 197, 197, 198, 199, 200, 201, 201, 202, + 203, 204, 204, 205, 206, 206, 207, 207, 207, 208, + 209, 209, 209, 209, 209, 209, 210, 210, 211, 212, + 213, 214, 215, 215, 216, 216, 217, 218, 218, 219, + 220, 221, 221, 222, 223, 224, 225, 225, 226, 226, + 227, 228, 228, 229, 229, 229, 229, 230, 230, 231, + 231, 231, 233, 232, 235, 234, 236, 236, 237, 238, + 238, 238, 238, 238, 238, 239, 240, 240, 240, 241, + 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, + 245, 245, 246, 246, 247, 248, 249, 250 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -922,29 +922,29 @@ static const yytype_uint8 yyr2[] = 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 6, 6, 8, 8, 2, 12, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 6, 3, 3, 2, - 2, 7, 2, 1, 1, 1, 1, 4, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 4, 2, 2, 1, 2, 1, 2, 1, 2, 4, - 4, 1, 0, 3, 1, 1, 2, 1, 2, 1, - 1, 3, 6, 0, 1, 2, 4, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 6, 3, 2, 3, + 2, 2, 7, 2, 1, 1, 1, 1, 4, 1, + 1, 1, 1, 1, 1, 1, 3, 0, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, + 1, 4, 2, 2, 1, 2, 1, 2, 1, 2, + 4, 4, 1, 0, 3, 1, 1, 2, 1, 2, + 1, 1, 3, 6, 0, 1, 2, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 1, 1, 1, 5, 1, 1, 1, 2, - 1, 1, 2, 1, 2, 6, 1, 3, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, - 2, 1, 1, 5, 1, 2, 1, 1, 5, 2, - 0, 6, 3, 0, 1, 1, 1, 1, 1, 2, - 1, 1, 2, 4, 4, 0, 1, 1, 1, 1, - 2, 1, 1, 1, 1, 5, 1, 3, 5, 5, - 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 5, 7, 9, 2, 2, 1, 1, - 0, 0, 3, 0, 3, 3, 1, 4, 2, 2, - 2, 2, 3, 2, 3, 0, 1, 1, 0, 1, - 1, 0, 1, 1, 0, 1, 1, 0, 3, 0, - 3, 0, 3, 1, 1, 1, 4 + 2, 2, 3, 1, 1, 1, 5, 1, 1, 1, + 2, 1, 1, 2, 1, 2, 6, 1, 3, 1, + 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 5, 1, 2, 1, 1, 5, + 2, 0, 6, 3, 0, 1, 1, 1, 1, 1, + 2, 1, 1, 2, 4, 4, 0, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 5, 1, 3, 5, + 5, 1, 3, 5, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 5, 7, 9, 2, 2, 1, + 1, 0, 0, 3, 0, 3, 3, 1, 4, 2, + 2, 2, 2, 3, 2, 3, 0, 1, 1, 0, + 1, 1, 0, 1, 1, 0, 1, 1, 0, 3, + 0, 3, 0, 3, 1, 1, 1, 4 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -953,223 +953,225 @@ static const yytype_uint8 yyr2[] = static const yytype_uint16 yydefact[] = { 0, 3, 4, 0, 6, 1, 9, 0, 5, 0, - 0, 233, 0, 0, 0, 0, 231, 2, 0, 0, - 0, 0, 0, 0, 0, 230, 0, 0, 8, 0, + 0, 234, 0, 0, 0, 0, 232, 2, 0, 0, + 0, 0, 0, 0, 0, 231, 0, 0, 8, 0, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, - 23, 20, 0, 84, 85, 109, 110, 86, 87, 88, - 89, 7, 0, 0, 0, 0, 0, 0, 0, 60, - 0, 83, 59, 0, 0, 0, 0, 0, 71, 0, - 0, 228, 229, 31, 0, 0, 0, 10, 11, 236, - 234, 0, 0, 0, 113, 230, 111, 232, 245, 243, - 239, 241, 238, 257, 240, 230, 79, 80, 81, 82, - 49, 230, 230, 230, 230, 230, 230, 73, 50, 221, - 220, 0, 0, 0, 0, 55, 230, 78, 0, 56, - 58, 122, 123, 201, 202, 124, 217, 218, 0, 230, - 0, 266, 90, 237, 114, 0, 115, 119, 120, 121, - 215, 216, 219, 0, 247, 246, 248, 0, 242, 0, - 0, 0, 0, 26, 0, 25, 24, 254, 107, 105, - 257, 92, 0, 0, 0, 0, 0, 0, 251, 0, - 251, 0, 0, 261, 257, 130, 131, 132, 133, 135, - 134, 136, 137, 138, 139, 0, 140, 254, 97, 0, - 95, 93, 257, 0, 102, 91, 0, 76, 75, 77, - 48, 0, 0, 0, 235, 0, 227, 226, 249, 250, - 244, 263, 0, 230, 230, 0, 0, 230, 255, 256, - 106, 108, 0, 0, 0, 200, 171, 172, 170, 0, - 153, 253, 252, 152, 0, 0, 0, 0, 195, 191, - 0, 190, 257, 183, 177, 176, 175, 0, 0, 0, - 0, 96, 0, 98, 0, 0, 94, 230, 222, 64, - 0, 62, 63, 0, 230, 230, 0, 112, 258, 28, - 27, 74, 47, 259, 0, 0, 213, 0, 214, 0, - 174, 0, 162, 0, 154, 0, 159, 160, 143, 144, - 161, 141, 142, 0, 197, 189, 196, 0, 192, 185, - 187, 186, 182, 184, 265, 0, 158, 157, 164, 165, - 0, 0, 104, 0, 101, 0, 0, 0, 57, 72, - 66, 46, 0, 0, 0, 230, 0, 33, 0, 230, - 208, 212, 0, 0, 251, 199, 0, 198, 0, 262, - 169, 168, 166, 167, 163, 188, 0, 99, 100, 103, - 230, 223, 0, 0, 65, 230, 53, 54, 52, 230, - 0, 0, 0, 117, 125, 128, 126, 203, 204, 127, - 264, 0, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 30, 29, 173, 148, 150, 147, - 0, 145, 146, 0, 194, 193, 178, 0, 69, 67, - 70, 68, 0, 0, 0, 0, 129, 180, 230, 116, - 260, 151, 149, 155, 156, 230, 224, 230, 0, 0, - 0, 0, 179, 118, 0, 0, 0, 0, 206, 0, - 210, 0, 225, 230, 0, 205, 0, 209, 0, 0, - 51, 32, 207, 211, 0, 0, 181 + 23, 20, 0, 85, 86, 110, 111, 87, 88, 89, + 90, 7, 0, 0, 0, 0, 0, 0, 0, 61, + 0, 84, 60, 0, 0, 0, 0, 0, 72, 0, + 0, 229, 230, 31, 0, 0, 0, 10, 11, 237, + 235, 0, 0, 0, 114, 231, 112, 233, 246, 244, + 240, 242, 239, 258, 241, 231, 80, 81, 82, 83, + 50, 231, 231, 231, 231, 231, 231, 74, 51, 222, + 221, 0, 0, 0, 0, 56, 231, 79, 0, 57, + 59, 123, 124, 202, 203, 125, 218, 219, 0, 231, + 0, 267, 91, 238, 115, 0, 116, 120, 121, 122, + 216, 217, 220, 0, 248, 247, 249, 0, 243, 0, + 0, 0, 0, 26, 0, 25, 24, 255, 108, 106, + 258, 93, 0, 0, 0, 0, 0, 0, 252, 0, + 252, 0, 0, 262, 258, 131, 132, 133, 134, 136, + 135, 137, 138, 139, 140, 0, 141, 255, 98, 0, + 96, 94, 258, 0, 103, 92, 0, 77, 76, 78, + 49, 0, 0, 0, 236, 0, 228, 227, 250, 251, + 245, 264, 0, 231, 231, 0, 48, 0, 231, 256, + 257, 107, 109, 0, 0, 0, 201, 172, 173, 171, + 0, 154, 254, 253, 153, 0, 0, 0, 0, 196, + 192, 0, 191, 258, 184, 178, 177, 176, 0, 0, + 0, 0, 97, 0, 99, 0, 0, 95, 231, 223, + 65, 0, 63, 64, 0, 231, 231, 0, 113, 259, + 28, 27, 75, 47, 260, 0, 0, 214, 0, 215, + 0, 175, 0, 163, 0, 155, 0, 160, 161, 144, + 145, 162, 142, 143, 0, 198, 190, 197, 0, 193, + 186, 188, 187, 183, 185, 266, 0, 159, 158, 165, + 166, 0, 0, 105, 0, 102, 0, 0, 0, 58, + 73, 67, 46, 0, 0, 0, 231, 0, 33, 0, + 231, 209, 213, 0, 0, 252, 200, 0, 199, 0, + 263, 170, 169, 167, 168, 164, 189, 0, 100, 101, + 104, 231, 224, 0, 0, 66, 231, 54, 55, 53, + 231, 0, 0, 0, 118, 126, 129, 127, 204, 205, + 128, 265, 0, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 30, 29, 174, 149, 151, + 148, 0, 146, 147, 0, 195, 194, 179, 0, 70, + 68, 71, 69, 0, 0, 0, 0, 130, 181, 231, + 117, 261, 152, 150, 156, 157, 231, 225, 231, 0, + 0, 0, 0, 180, 119, 0, 0, 0, 0, 207, + 0, 211, 0, 226, 231, 0, 206, 0, 210, 0, + 0, 52, 32, 208, 212, 0, 0, 182 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 3, 4, 6, 8, 9, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 274, - 384, 41, 150, 73, 60, 69, 321, 322, 358, 117, - 61, 118, 260, 261, 262, 354, 399, 401, 70, 320, - 108, 272, 200, 100, 42, 43, 119, 195, 315, 256, - 313, 161, 44, 45, 46, 135, 86, 267, 362, 136, - 120, 363, 364, 121, 175, 291, 176, 391, 412, 177, - 233, 178, 413, 179, 307, 292, 283, 180, 310, 344, - 181, 228, 182, 281, 183, 246, 184, 406, 422, 185, - 302, 303, 346, 243, 295, 296, 338, 336, 186, 122, - 366, 367, 427, 123, 368, 429, 124, 277, 279, 369, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 275, + 385, 41, 150, 73, 60, 69, 322, 323, 359, 117, + 61, 118, 261, 262, 263, 355, 400, 402, 70, 321, + 108, 273, 200, 100, 42, 43, 119, 195, 316, 257, + 314, 161, 44, 45, 46, 135, 86, 268, 363, 136, + 120, 364, 365, 121, 175, 292, 176, 392, 413, 177, + 234, 178, 414, 179, 308, 293, 284, 180, 311, 345, + 181, 229, 182, 282, 183, 247, 184, 407, 423, 185, + 303, 304, 347, 244, 296, 297, 339, 337, 186, 122, + 367, 368, 428, 123, 369, 430, 124, 278, 280, 370, 125, 140, 126, 127, 142, 74, 47, 57, 48, 52, - 80, 49, 62, 94, 146, 210, 234, 220, 148, 327, - 248, 212, 371, 305, 50 + 80, 49, 62, 94, 146, 210, 235, 221, 148, 328, + 249, 212, 372, 306, 50 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -384 +#define YYPACT_NINF -399 static const yytype_int16 yypact[] = { - 167, -384, -384, 37, -384, -384, 60, -70, -384, 171, - -23, -384, -13, 9, 12, 63, -384, -384, -33, -33, - -33, -33, -33, -33, 67, 104, -33, -33, -384, 66, - -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, - -384, -384, 68, -384, -384, -384, -384, -384, -384, -384, - -384, -384, 115, 109, 111, 112, -4, 115, 22, -384, - 113, 106, -384, 118, 120, 121, 122, 123, -384, 124, - 130, -384, -384, -384, -16, 126, 127, -384, -384, -384, - 128, 140, -18, 158, 204, -39, -384, 128, 26, -384, - -384, -384, -384, 134, -384, 104, -384, -384, -384, -384, - -384, 104, 104, 104, 104, 104, 104, -384, -384, -384, - -384, 73, 84, 76, -10, 135, 104, 64, 136, -384, - -384, -384, -384, -384, -384, -384, -384, -384, -16, 104, - 147, -384, -384, -384, -384, 137, -384, -384, -384, -384, - -384, -384, -384, 194, -384, -384, 46, 225, -384, 141, - 142, -16, 143, -384, 144, -384, -384, 87, -384, -384, - 134, -384, 145, 146, 148, 189, 15, 149, 88, 150, - 97, 80, 0, 151, 134, -384, -384, -384, -384, -384, - -384, -384, -384, -384, -384, 190, -384, 87, -384, 152, - -384, -384, 134, 153, 154, -384, 42, -384, -384, -384, - -384, -8, 156, 159, -384, 160, -384, -384, -384, -384, - -384, -384, 161, 104, 104, 163, 186, 104, -384, -384, - -384, -384, 249, 251, 252, -384, -384, -384, -384, 253, - -384, -384, -384, -384, 210, 253, 8, 169, 256, -384, - 172, -384, 134, 21, -384, -384, -384, 257, 254, -7, - 173, -384, 261, -384, 262, 261, -384, 104, -384, -384, - 176, -384, -384, 184, 104, 104, 174, -384, -384, -384, - -384, -384, -384, 180, 182, 183, -384, 185, -384, 187, - -384, 188, -384, 191, -384, 193, -384, -384, -384, -384, - -384, -384, -384, 269, -384, -384, -384, 270, -384, -384, - -384, -384, -384, -384, -384, 195, -384, -384, -384, -384, - 133, 271, -384, 196, -384, 197, 198, 45, -384, -384, - 108, -384, 192, -6, 201, -17, 273, -384, 110, 104, - -384, -384, 242, 29, 97, -384, 200, -384, 202, -384, - -384, -384, -384, -384, -384, -384, 203, -384, -384, -384, - 104, -384, 281, 288, -384, 104, -384, -384, -384, 104, - 103, 76, 48, -384, -384, -384, -384, -384, -384, -384, - -384, 205, -384, -384, -384, -384, -384, -384, -384, -384, - -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, - 282, -384, -384, 5, -384, -384, -384, 50, -384, -384, - -384, -384, 208, 209, 211, 212, -384, 260, -17, -384, - -384, -384, -384, -384, -384, 104, -384, 104, 186, 249, - 251, 213, -384, -384, 214, 219, 220, 221, 228, 224, - 230, 271, -384, 104, 110, -384, 249, -384, 251, 49, - -384, -384, -384, -384, 271, 226, -384 + 154, -399, -399, 48, -399, -399, 51, -37, -399, 172, + -2, -399, 17, 31, 42, 47, -399, -399, -33, -33, + -33, -33, -33, -33, 54, 56, -33, -33, -399, 6, + -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, + -399, -399, 52, -399, -399, -399, -399, -399, -399, -399, + -399, -399, 66, 25, 61, 112, -6, 66, 102, -399, + 118, 116, -399, 119, 120, 121, 122, 123, -399, 124, + 130, -399, -399, -399, -16, 126, 127, -399, -399, -399, + 128, 70, -15, 159, 214, -36, -399, 128, 28, -399, + -399, -399, -399, 131, -399, 56, -399, -399, -399, -399, + -399, 56, 56, 56, 56, 56, 56, -399, -399, -399, + -399, 27, 38, 76, -9, 135, 56, 60, 136, -399, + -399, -399, -399, -399, -399, -399, -399, -399, -16, 56, + 147, -399, -399, -399, -399, 137, -399, -399, -399, -399, + -399, -399, -399, 148, -399, -399, 18, 225, -399, 141, + 142, -16, 144, -399, 145, -399, -399, 50, -399, -399, + 131, -399, 146, 149, 150, 187, 7, 151, 43, 152, + 69, 85, -1, 153, 131, -399, -399, -399, -399, -399, + -399, -399, -399, -399, -399, 190, -399, 50, -399, 155, + -399, -399, 131, 156, 158, -399, 20, -399, -399, -399, + -399, -8, 160, 162, -399, 161, -399, -399, -399, -399, + -399, -399, 163, 56, 56, 169, 173, 171, 56, -399, + -399, -399, -399, 234, 240, 252, -399, -399, -399, -399, + 254, -399, -399, -399, -399, 211, 254, 2, 170, 257, + -399, 174, -399, 131, 12, -399, -399, -399, 258, 253, + -5, 175, -399, 262, -399, 263, 262, -399, 56, -399, + -399, 177, -399, -399, 185, 56, 56, 176, -399, -399, + -399, -399, -399, -399, 180, 183, 184, -399, 186, -399, + 189, -399, 191, -399, 192, -399, 194, -399, -399, -399, + -399, -399, -399, -399, 270, -399, -399, -399, 271, -399, + -399, -399, -399, -399, -399, -399, 195, -399, -399, -399, + -399, 143, 272, -399, 196, -399, 197, 198, 34, -399, + -399, 101, -399, 201, -4, 202, -12, 274, -399, 111, + 56, -399, -399, 241, 84, 69, -399, 203, -399, 204, + -399, -399, -399, -399, -399, -399, -399, 205, -399, -399, + -399, 56, -399, 277, 288, -399, 56, -399, -399, -399, + 56, 80, 76, 35, -399, -399, -399, -399, -399, -399, + -399, -399, 206, -399, -399, -399, -399, -399, -399, -399, + -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, + -399, 280, -399, -399, 14, -399, -399, -399, 39, -399, + -399, -399, -399, 209, 210, 212, 213, -399, 261, -12, + -399, -399, -399, -399, -399, -399, 56, -399, 56, 171, + 234, 240, 219, -399, -399, 208, 221, 222, 224, 215, + 226, 227, 272, -399, 56, 111, -399, 234, -399, 240, + -13, -399, -399, -399, -399, 272, 228, -399 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, - -384, -384, -384, -384, -384, -384, -384, -384, -384, -100, - -115, -384, -97, -91, 119, -384, -384, -343, -384, -93, - -384, -384, -384, -384, -384, -384, -384, -384, 138, -384, - -384, -384, -384, -384, -384, -384, 255, -384, -384, -384, - 83, -384, -384, -384, -384, -384, -384, -384, -384, -384, - -384, -68, -384, -84, -384, -384, -384, -384, -384, -384, - -384, -384, -384, -384, -384, -308, 107, -384, -384, -384, - -384, -384, -384, -384, -384, -384, -384, -384, -384, -20, - -384, -384, -383, -384, -384, -384, -384, -384, -384, 258, - -384, -384, -384, -384, -384, -384, -384, -320, -371, 259, - -384, -384, -384, -83, -113, -85, -384, -384, -384, -384, - 289, -384, 264, -384, -384, -384, -165, 162, -150, -384, - -384, -384, -384, -384, -384 + -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, + -399, -399, -399, -399, -399, -399, -399, -399, -399, -100, + -98, -399, -97, -91, 188, -399, -399, -344, -399, -99, + -399, -399, -399, -399, -399, -399, -399, -399, 134, -399, + -399, -399, -399, -399, -399, -399, 259, -399, -399, -399, + 83, -399, -399, -399, -399, -399, -399, -399, -399, -399, + -399, -69, -399, -84, -399, -399, -399, -399, -399, -399, + -399, -399, -399, -399, -399, -317, 106, -399, -399, -399, + -399, -399, -399, -399, -399, -399, -399, -399, -399, -19, + -399, -399, -398, -399, -399, -399, -399, -399, -399, 260, + -399, -399, -399, -399, -399, -399, -399, -377, -381, 265, + -399, -399, 193, -83, -113, -85, -399, -399, -399, -399, + 289, -399, 264, -399, -399, -399, -165, 164, -150, -399, + -399, -399, -399, -399, -399 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -62 +#define YYTABLE_NINF -219 static const yytype_int16 yytable[] = { - 143, 137, 141, 196, 149, 236, 153, 109, 110, 156, - 221, 152, 402, 154, 155, 259, 151, 356, 151, 187, - 111, 151, 111, 112, 249, 392, 244, 188, 308, 10, - 286, 143, 58, 286, 113, 202, 287, 5, 203, 287, - 189, 288, 253, 190, 226, 360, 112, 309, 439, 430, - 191, 88, 89, 144, 286, 387, 361, 113, 215, 90, - 287, 445, 299, 300, 192, 145, 59, 443, 7, 388, - 245, 227, 71, 72, 425, 116, 290, 289, 114, 290, - 114, 91, 92, 115, 51, 414, 53, 193, 194, 389, - 440, 68, 298, 357, 71, 72, 93, 116, 116, 428, - 290, 390, 157, 301, 164, 84, 165, 208, 54, 85, - 158, 55, 166, 230, 209, 231, 442, 270, 162, 167, - 168, 169, 269, 170, 231, 171, 275, 232, 237, 151, - 163, 238, 239, 159, 172, 240, 232, 404, 63, 64, - 65, 66, 67, 241, 317, 75, 76, 160, 218, 405, - 257, 173, 174, 350, 444, 219, 408, 258, 415, 396, - 351, 242, 56, 409, 197, 416, 68, 198, 199, 393, - 1, 2, 143, 77, 324, 78, 11, 12, 13, 323, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 96, 97, 98, 99, - 340, 341, 342, 343, 79, 71, 72, 206, 207, 352, - 353, 95, 81, 58, 82, 83, 101, 134, 102, 103, - 104, 105, 106, 107, 128, 129, 130, 397, 385, 131, - 143, 365, 141, 147, -61, 201, 204, 205, 211, 213, - 214, 216, 217, 225, 222, 223, 250, 224, 229, 235, - 247, 252, 254, 255, 264, 143, 271, 265, 403, 273, - 323, 268, 276, 266, 278, 280, 282, 284, 293, 294, - 304, 297, 311, 306, 312, 314, 318, 319, 325, 326, - 328, 329, 335, 337, 345, 330, 370, 331, 332, 386, - 355, 333, 424, 334, 398, 339, 347, 348, 349, 359, - 394, 400, 395, 396, 411, 410, 417, 418, 426, 441, - 419, 420, 431, 143, 365, 141, 421, 433, 434, 432, - 143, 435, 323, 436, 437, 438, 446, 132, 316, 263, - 423, 407, 285, 138, 139, 0, 87, 133, 323, 251 + 143, 137, 141, 196, 149, 237, 153, 109, 110, 156, + 222, 152, 403, 154, 155, 260, 151, 393, 151, 357, + 187, 151, 111, 111, 250, 245, 112, 287, 188, 202, + 309, 143, 58, 288, 440, 289, 227, 113, 203, 287, + 431, 189, 254, 429, 190, 288, 112, 446, 5, 310, + 361, 191, 215, 300, 301, 144, 157, 113, 444, 7, + 443, 362, 10, 228, 158, 192, 59, 145, 231, 246, + 232, 290, 162, 291, 426, 71, 72, 415, 116, 208, + 114, 114, 233, 115, 163, 291, 209, 159, 193, 194, + 441, 68, 445, 299, 302, 358, 232, 397, 116, 71, + 72, 160, 116, 84, 164, 51, 165, 85, 233, 287, + 388, 219, 166, 77, 405, 288, 53, 271, 220, 167, + 168, 169, 270, 170, 389, 171, 406, 276, 258, 151, + 54, 88, 89, 238, 172, 259, 239, 240, 81, 90, + 241, 55, 351, 409, 390, 318, 56, 416, 242, 352, + 410, 173, 174, 68, 417, 291, 391, 1, 2, 78, + 197, 91, 92, 198, 199, 79, 243, 71, 72, 131, + 394, 206, 207, 143, 82, 325, 93, 11, 12, 13, + 324, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 63, 64, 65, + 66, 67, 353, 354, 75, 76, 96, 97, 98, 99, + 341, 342, 343, 344, 58, 83, 95, 101, 102, 103, + 104, 105, 106, 107, 128, 129, 130, 134, 398, 386, + 147, 143, 366, 141, -62, 201, 204, 205, 211, 213, + 214, 226, 217, 218, 274, 223, 251, 277, 224, 225, + 230, 236, 248, 279, 253, 255, 143, 256, 265, 404, + 266, 324, 272, 269, 267, 281, -218, 283, 285, 294, + 295, 305, 307, 298, 312, 313, 315, 319, 320, 327, + 326, 329, 330, 336, 338, 346, 331, 371, 387, 332, + 399, 333, 334, 425, 335, 340, 348, 349, 350, 356, + 360, 401, 412, 395, 396, 397, 411, 418, 419, 427, + 437, 420, 421, 433, 143, 366, 141, 422, 432, 434, + 435, 143, 439, 324, 436, 264, 438, 442, 447, 317, + 424, 132, 286, 408, 216, 138, 87, 133, 0, 324, + 139, 252 }; static const yytype_int16 yycheck[] = { 85, 85, 85, 116, 95, 170, 103, 23, 24, 106, - 160, 102, 355, 104, 105, 23, 101, 23, 103, 29, - 38, 106, 38, 62, 174, 333, 26, 37, 35, 99, - 25, 116, 65, 25, 73, 128, 31, 0, 129, 31, - 50, 33, 192, 53, 29, 62, 62, 54, 431, 420, - 60, 29, 30, 27, 25, 26, 73, 73, 151, 37, - 31, 444, 41, 42, 74, 39, 99, 438, 8, 40, - 70, 56, 111, 112, 417, 114, 71, 69, 96, 71, - 96, 59, 60, 99, 107, 393, 99, 97, 98, 60, - 433, 99, 242, 99, 111, 112, 74, 114, 114, 419, - 71, 72, 29, 82, 28, 109, 30, 61, 99, 113, - 37, 99, 36, 25, 68, 27, 436, 214, 34, 43, - 44, 45, 213, 47, 27, 49, 217, 39, 48, 214, - 46, 51, 52, 60, 58, 55, 39, 34, 19, 20, - 21, 22, 23, 63, 257, 26, 27, 74, 61, 46, - 108, 75, 76, 108, 105, 68, 108, 115, 108, 110, - 115, 81, 99, 115, 100, 115, 99, 103, 104, 334, - 3, 4, 257, 107, 265, 107, 5, 6, 7, 264, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 100, 101, 102, 103, - 77, 78, 79, 80, 99, 111, 112, 23, 24, 111, - 112, 108, 113, 65, 113, 113, 108, 23, 108, 108, - 108, 108, 108, 103, 108, 108, 108, 350, 329, 99, - 325, 325, 325, 109, 109, 109, 99, 110, 23, 108, - 108, 108, 108, 64, 109, 109, 66, 109, 109, 109, - 109, 109, 109, 109, 108, 350, 103, 108, 359, 83, - 355, 110, 23, 113, 23, 23, 23, 67, 109, 23, - 23, 109, 109, 29, 23, 23, 110, 103, 114, 109, - 108, 108, 23, 23, 23, 110, 23, 110, 110, 57, - 108, 110, 415, 110, 23, 110, 110, 110, 110, 108, - 110, 23, 110, 110, 32, 110, 108, 108, 418, 434, - 109, 109, 109, 408, 408, 408, 66, 108, 108, 115, - 415, 110, 417, 105, 110, 105, 110, 82, 255, 201, - 408, 361, 235, 85, 85, -1, 57, 83, 433, 187 + 160, 102, 356, 104, 105, 23, 101, 334, 103, 23, + 29, 106, 38, 38, 174, 26, 62, 25, 37, 128, + 35, 116, 65, 31, 432, 33, 29, 73, 129, 25, + 421, 50, 192, 420, 53, 31, 62, 445, 0, 54, + 62, 60, 151, 41, 42, 27, 29, 73, 439, 8, + 437, 73, 99, 56, 37, 74, 99, 39, 25, 70, + 27, 69, 34, 71, 418, 111, 112, 394, 114, 61, + 96, 96, 39, 99, 46, 71, 68, 60, 97, 98, + 434, 99, 105, 243, 82, 99, 27, 110, 114, 111, + 112, 74, 114, 109, 28, 107, 30, 113, 39, 25, + 26, 61, 36, 107, 34, 31, 99, 214, 68, 43, + 44, 45, 213, 47, 40, 49, 46, 218, 108, 214, + 99, 29, 30, 48, 58, 115, 51, 52, 113, 37, + 55, 99, 108, 108, 60, 258, 99, 108, 63, 115, + 115, 75, 76, 99, 115, 71, 72, 3, 4, 107, + 100, 59, 60, 103, 104, 99, 81, 111, 112, 99, + 335, 23, 24, 258, 113, 266, 74, 5, 6, 7, + 265, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 19, 20, 21, + 22, 23, 111, 112, 26, 27, 100, 101, 102, 103, + 77, 78, 79, 80, 65, 113, 108, 108, 108, 108, + 108, 108, 108, 103, 108, 108, 108, 23, 351, 330, + 109, 326, 326, 326, 109, 109, 99, 110, 23, 108, + 108, 64, 108, 108, 83, 109, 66, 23, 109, 109, + 109, 109, 109, 23, 109, 109, 351, 109, 108, 360, + 108, 356, 103, 110, 113, 23, 103, 23, 67, 109, + 23, 23, 29, 109, 109, 23, 23, 110, 103, 109, + 114, 108, 108, 23, 23, 23, 110, 23, 57, 110, + 23, 110, 110, 416, 110, 110, 110, 110, 110, 108, + 108, 23, 32, 110, 110, 110, 110, 108, 108, 419, + 105, 109, 109, 115, 409, 409, 409, 66, 109, 108, + 108, 416, 105, 418, 110, 201, 110, 435, 110, 256, + 409, 82, 236, 362, 151, 85, 57, 83, -1, 434, + 85, 187 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1197,30 +1199,30 @@ static const yytype_uint8 yystos[] = 193, 196, 198, 200, 202, 205, 214, 29, 37, 50, 53, 60, 74, 97, 98, 163, 230, 100, 103, 104, 158, 109, 145, 139, 99, 110, 23, 24, 61, 68, - 241, 23, 247, 108, 108, 145, 108, 108, 61, 68, - 243, 244, 109, 109, 109, 64, 29, 56, 197, 109, - 25, 27, 39, 186, 242, 109, 242, 48, 51, 52, - 55, 63, 81, 209, 26, 70, 201, 109, 246, 244, - 66, 243, 109, 244, 109, 109, 165, 108, 115, 23, - 148, 149, 150, 154, 108, 108, 113, 173, 110, 139, - 138, 103, 157, 83, 135, 139, 23, 223, 23, 224, - 23, 199, 23, 192, 67, 192, 25, 31, 33, 69, - 71, 181, 191, 109, 23, 210, 211, 109, 244, 41, - 42, 82, 206, 207, 23, 249, 29, 190, 35, 54, - 194, 109, 23, 166, 23, 164, 166, 230, 110, 103, - 155, 142, 143, 231, 139, 114, 109, 245, 108, 108, - 110, 110, 110, 110, 110, 23, 213, 23, 212, 110, - 77, 78, 79, 80, 195, 23, 208, 110, 110, 110, - 108, 115, 111, 112, 151, 108, 23, 99, 144, 108, - 62, 73, 174, 177, 178, 179, 216, 217, 220, 225, - 23, 248, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 136, 139, 57, 26, 40, 60, - 72, 183, 191, 242, 110, 110, 110, 230, 23, 152, - 23, 153, 143, 139, 34, 46, 203, 205, 108, 115, - 110, 32, 184, 188, 191, 108, 115, 108, 108, 109, - 109, 66, 204, 177, 230, 143, 135, 218, 223, 221, - 224, 109, 115, 108, 108, 110, 105, 110, 105, 208, - 143, 136, 223, 224, 105, 208, 110 + 241, 23, 247, 108, 108, 145, 228, 108, 108, 61, + 68, 243, 244, 109, 109, 109, 64, 29, 56, 197, + 109, 25, 27, 39, 186, 242, 109, 242, 48, 51, + 52, 55, 63, 81, 209, 26, 70, 201, 109, 246, + 244, 66, 243, 109, 244, 109, 109, 165, 108, 115, + 23, 148, 149, 150, 154, 108, 108, 113, 173, 110, + 139, 138, 103, 157, 83, 135, 139, 23, 223, 23, + 224, 23, 199, 23, 192, 67, 192, 25, 31, 33, + 69, 71, 181, 191, 109, 23, 210, 211, 109, 244, + 41, 42, 82, 206, 207, 23, 249, 29, 190, 35, + 54, 194, 109, 23, 166, 23, 164, 166, 230, 110, + 103, 155, 142, 143, 231, 139, 114, 109, 245, 108, + 108, 110, 110, 110, 110, 110, 23, 213, 23, 212, + 110, 77, 78, 79, 80, 195, 23, 208, 110, 110, + 110, 108, 115, 111, 112, 151, 108, 23, 99, 144, + 108, 62, 73, 174, 177, 178, 179, 216, 217, 220, + 225, 23, 248, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 136, 139, 57, 26, 40, + 60, 72, 183, 191, 242, 110, 110, 110, 230, 23, + 152, 23, 153, 143, 139, 34, 46, 203, 205, 108, + 115, 110, 32, 184, 188, 191, 108, 115, 108, 108, + 109, 109, 66, 204, 177, 230, 143, 135, 218, 223, + 221, 224, 109, 115, 108, 108, 110, 105, 110, 105, + 208, 143, 136, 223, 224, 105, 208, 110 }; #define yyerrok (yyerrstatus = 0) @@ -2457,7 +2459,29 @@ yyreduce: case 48: /* Line 1455 of yacc.c */ -#line 540 "program_parse.y" +#line 538 "program_parse.y" + { + struct asm_symbol temp_sym; + + if (!state->option.NV_fragment) { + yyerror(& (yylsp[(2) - (2)]), state, "expected scalar suffix"); + YYERROR; + } + + memset(& temp_sym, 0, sizeof(temp_sym)); + temp_sym.param_binding_begin = ~0; + initialize_symbol_from_const(state->prog, & temp_sym, & (yyvsp[(2) - (2)].vector)); + + init_src_reg(& (yyval.src_reg)); + (yyval.src_reg).Base.File = PROGRAM_CONSTANT; + (yyval.src_reg).Base.Index = temp_sym.param_binding_begin; + ;} + break; + + case 49: + +/* Line 1455 of yacc.c */ +#line 557 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (3)].src_reg); @@ -2470,10 +2494,10 @@ yyreduce: ;} break; - case 49: + case 50: /* Line 1455 of yacc.c */ -#line 553 "program_parse.y" +#line 570 "program_parse.y" { (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg); (yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask; @@ -2495,10 +2519,10 @@ yyreduce: ;} break; - case 50: + case 51: /* Line 1455 of yacc.c */ -#line 575 "program_parse.y" +#line 592 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_ADDRESS; @@ -2507,10 +2531,10 @@ yyreduce: ;} break; - case 51: + case 52: /* Line 1455 of yacc.c */ -#line 584 "program_parse.y" +#line 601 "program_parse.y" { const unsigned xyzw_valid = ((yyvsp[(1) - (7)].ext_swizzle).xyzw_valid << 0) @@ -2543,20 +2567,20 @@ yyreduce: ;} break; - case 52: + case 53: /* Line 1455 of yacc.c */ -#line 617 "program_parse.y" +#line 634 "program_parse.y" { (yyval.ext_swizzle) = (yyvsp[(2) - (2)].ext_swizzle); (yyval.ext_swizzle).negate = ((yyvsp[(1) - (2)].negate)) ? 1 : 0; ;} break; - case 53: + case 54: /* Line 1455 of yacc.c */ -#line 624 "program_parse.y" +#line 641 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2573,10 +2597,10 @@ yyreduce: ;} break; - case 54: + case 55: /* Line 1455 of yacc.c */ -#line 639 "program_parse.y" +#line 656 "program_parse.y" { if (strlen((yyvsp[(1) - (1)].string)) > 1) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2626,10 +2650,10 @@ yyreduce: ;} break; - case 55: + case 56: /* Line 1455 of yacc.c */ -#line 689 "program_parse.y" +#line 706 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2673,10 +2697,10 @@ yyreduce: ;} break; - case 56: + case 57: /* Line 1455 of yacc.c */ -#line 731 "program_parse.y" +#line 748 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = PROGRAM_INPUT; @@ -2689,10 +2713,10 @@ yyreduce: ;} break; - case 57: + case 58: /* Line 1455 of yacc.c */ -#line 742 "program_parse.y" +#line 759 "program_parse.y" { if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr && ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) { @@ -2715,10 +2739,10 @@ yyreduce: ;} break; - case 58: + case 59: /* Line 1455 of yacc.c */ -#line 763 "program_parse.y" +#line 780 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL) @@ -2728,10 +2752,10 @@ yyreduce: ;} break; - case 59: + case 60: /* Line 1455 of yacc.c */ -#line 773 "program_parse.y" +#line 790 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_OUTPUT; @@ -2739,10 +2763,10 @@ yyreduce: ;} break; - case 60: + case 61: /* Line 1455 of yacc.c */ -#line 779 "program_parse.y" +#line 796 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2773,10 +2797,10 @@ yyreduce: ;} break; - case 61: + case 62: /* Line 1455 of yacc.c */ -#line 810 "program_parse.y" +#line 827 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2793,20 +2817,20 @@ yyreduce: ;} break; - case 64: + case 65: /* Line 1455 of yacc.c */ -#line 829 "program_parse.y" +#line 846 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer); ;} break; - case 65: + case 66: /* Line 1455 of yacc.c */ -#line 836 "program_parse.y" +#line 853 "program_parse.y" { /* FINISHME: Add support for multiple address registers. */ @@ -2818,31 +2842,31 @@ yyreduce: ;} break; - case 66: + case 67: /* Line 1455 of yacc.c */ -#line 847 "program_parse.y" +#line 864 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 67: + case 68: /* Line 1455 of yacc.c */ -#line 848 "program_parse.y" +#line 865 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 68: + case 69: /* Line 1455 of yacc.c */ -#line 849 "program_parse.y" +#line 866 "program_parse.y" { (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;} break; - case 69: + case 70: /* Line 1455 of yacc.c */ -#line 853 "program_parse.y" +#line 870 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2854,10 +2878,10 @@ yyreduce: ;} break; - case 70: + case 71: /* Line 1455 of yacc.c */ -#line 865 "program_parse.y" +#line 882 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2869,10 +2893,10 @@ yyreduce: ;} break; - case 71: + case 72: /* Line 1455 of yacc.c */ -#line 877 "program_parse.y" +#line 894 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2890,10 +2914,10 @@ yyreduce: ;} break; - case 72: + case 73: /* Line 1455 of yacc.c */ -#line 895 "program_parse.y" +#line 912 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector"); @@ -2904,10 +2928,10 @@ yyreduce: ;} break; - case 73: + case 74: /* Line 1455 of yacc.c */ -#line 906 "program_parse.y" +#line 923 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2919,24 +2943,24 @@ yyreduce: ;} break; - case 78: + case 79: /* Line 1455 of yacc.c */ -#line 922 "program_parse.y" +#line 939 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; - case 83: + case 84: /* Line 1455 of yacc.c */ -#line 926 "program_parse.y" +#line 943 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; - case 90: + case 91: /* Line 1455 of yacc.c */ -#line 938 "program_parse.y" +#line 955 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)])); @@ -2954,55 +2978,55 @@ yyreduce: ;} break; - case 91: + case 92: /* Line 1455 of yacc.c */ -#line 956 "program_parse.y" +#line 973 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} break; - case 92: + case 93: /* Line 1455 of yacc.c */ -#line 960 "program_parse.y" +#line 977 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} break; - case 93: + case 94: /* Line 1455 of yacc.c */ -#line 966 "program_parse.y" +#line 983 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_POS; ;} break; - case 94: + case 95: /* Line 1455 of yacc.c */ -#line 970 "program_parse.y" +#line 987 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_WEIGHT; ;} break; - case 95: + case 96: /* Line 1455 of yacc.c */ -#line 974 "program_parse.y" +#line 991 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_NORMAL; ;} break; - case 96: + case 97: /* Line 1455 of yacc.c */ -#line 978 "program_parse.y" +#line 995 "program_parse.y" { if (!state->ctx->Extensions.EXT_secondary_color) { yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported"); @@ -3013,10 +3037,10 @@ yyreduce: ;} break; - case 97: + case 98: /* Line 1455 of yacc.c */ -#line 987 "program_parse.y" +#line 1004 "program_parse.y" { if (!state->ctx->Extensions.EXT_fog_coord) { yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported"); @@ -3027,38 +3051,38 @@ yyreduce: ;} break; - case 98: + case 99: /* Line 1455 of yacc.c */ -#line 996 "program_parse.y" +#line 1013 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} break; - case 99: + case 100: /* Line 1455 of yacc.c */ -#line 1000 "program_parse.y" +#line 1017 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; ;} break; - case 100: + case 101: /* Line 1455 of yacc.c */ -#line 1005 "program_parse.y" +#line 1022 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer); ;} break; - case 101: + case 102: /* Line 1455 of yacc.c */ -#line 1011 "program_parse.y" +#line 1028 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference"); @@ -3069,46 +3093,46 @@ yyreduce: ;} break; - case 105: + case 106: /* Line 1455 of yacc.c */ -#line 1025 "program_parse.y" +#line 1042 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_WPOS; ;} break; - case 106: + case 107: /* Line 1455 of yacc.c */ -#line 1029 "program_parse.y" +#line 1046 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer); ;} break; - case 107: + case 108: /* Line 1455 of yacc.c */ -#line 1033 "program_parse.y" +#line 1050 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_FOGC; ;} break; - case 108: + case 109: /* Line 1455 of yacc.c */ -#line 1037 "program_parse.y" +#line 1054 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} break; - case 111: + case 112: /* Line 1455 of yacc.c */ -#line 1045 "program_parse.y" +#line 1062 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)])); @@ -3124,10 +3148,10 @@ yyreduce: ;} break; - case 112: + case 113: /* Line 1455 of yacc.c */ -#line 1061 "program_parse.y" +#line 1078 "program_parse.y" { if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) { yyerror(& (yylsp[(4) - (6)]), state, @@ -3149,19 +3173,19 @@ yyreduce: ;} break; - case 113: + case 114: /* Line 1455 of yacc.c */ -#line 1083 "program_parse.y" +#line 1100 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 114: + case 115: /* Line 1455 of yacc.c */ -#line 1087 "program_parse.y" +#line 1104 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size"); @@ -3172,38 +3196,38 @@ yyreduce: ;} break; - case 115: + case 116: /* Line 1455 of yacc.c */ -#line 1098 "program_parse.y" +#line 1115 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym); ;} break; - case 116: + case 117: /* Line 1455 of yacc.c */ -#line 1104 "program_parse.y" +#line 1121 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym); ;} break; - case 118: + case 119: /* Line 1455 of yacc.c */ -#line 1111 "program_parse.y" +#line 1128 "program_parse.y" { (yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length; (yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym); ;} break; - case 119: + case 120: /* Line 1455 of yacc.c */ -#line 1118 "program_parse.y" +#line 1135 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3211,10 +3235,10 @@ yyreduce: ;} break; - case 120: + case 121: /* Line 1455 of yacc.c */ -#line 1124 "program_parse.y" +#line 1141 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3222,10 +3246,10 @@ yyreduce: ;} break; - case 121: + case 122: /* Line 1455 of yacc.c */ -#line 1130 "program_parse.y" +#line 1147 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3233,10 +3257,10 @@ yyreduce: ;} break; - case 122: + case 123: /* Line 1455 of yacc.c */ -#line 1138 "program_parse.y" +#line 1155 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3244,10 +3268,10 @@ yyreduce: ;} break; - case 123: + case 124: /* Line 1455 of yacc.c */ -#line 1144 "program_parse.y" +#line 1161 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3255,10 +3279,10 @@ yyreduce: ;} break; - case 124: + case 125: /* Line 1455 of yacc.c */ -#line 1150 "program_parse.y" +#line 1167 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3266,10 +3290,10 @@ yyreduce: ;} break; - case 125: + case 126: /* Line 1455 of yacc.c */ -#line 1158 "program_parse.y" +#line 1175 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3277,10 +3301,10 @@ yyreduce: ;} break; - case 126: + case 127: /* Line 1455 of yacc.c */ -#line 1164 "program_parse.y" +#line 1181 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3288,10 +3312,10 @@ yyreduce: ;} break; - case 127: + case 128: /* Line 1455 of yacc.c */ -#line 1170 "program_parse.y" +#line 1187 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3299,101 +3323,101 @@ yyreduce: ;} break; - case 128: - -/* Line 1455 of yacc.c */ -#line 1177 "program_parse.y" - { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;} - break; - case 129: /* Line 1455 of yacc.c */ -#line 1178 "program_parse.y" - { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} +#line 1194 "program_parse.y" + { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;} break; case 130: /* Line 1455 of yacc.c */ -#line 1181 "program_parse.y" +#line 1195 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 131: /* Line 1455 of yacc.c */ -#line 1182 "program_parse.y" +#line 1198 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 132: /* Line 1455 of yacc.c */ -#line 1183 "program_parse.y" +#line 1199 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 133: /* Line 1455 of yacc.c */ -#line 1184 "program_parse.y" +#line 1200 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 134: /* Line 1455 of yacc.c */ -#line 1185 "program_parse.y" +#line 1201 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 135: /* Line 1455 of yacc.c */ -#line 1186 "program_parse.y" +#line 1202 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 136: /* Line 1455 of yacc.c */ -#line 1187 "program_parse.y" +#line 1203 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 137: /* Line 1455 of yacc.c */ -#line 1188 "program_parse.y" +#line 1204 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 138: /* Line 1455 of yacc.c */ -#line 1189 "program_parse.y" +#line 1205 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 139: /* Line 1455 of yacc.c */ -#line 1190 "program_parse.y" +#line 1206 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 140: /* Line 1455 of yacc.c */ -#line 1191 "program_parse.y" +#line 1207 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 141: /* Line 1455 of yacc.c */ -#line 1195 "program_parse.y" +#line 1208 "program_parse.y" + { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} + break; + + case 142: + +/* Line 1455 of yacc.c */ +#line 1212 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_MATERIAL; @@ -3402,37 +3426,37 @@ yyreduce: ;} break; - case 142: + case 143: /* Line 1455 of yacc.c */ -#line 1204 "program_parse.y" +#line 1221 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 143: + case 144: /* Line 1455 of yacc.c */ -#line 1208 "program_parse.y" +#line 1225 "program_parse.y" { (yyval.integer) = STATE_EMISSION; ;} break; - case 144: + case 145: /* Line 1455 of yacc.c */ -#line 1212 "program_parse.y" +#line 1229 "program_parse.y" { (yyval.integer) = STATE_SHININESS; ;} break; - case 145: + case 146: /* Line 1455 of yacc.c */ -#line 1218 "program_parse.y" +#line 1235 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHT; @@ -3441,28 +3465,28 @@ yyreduce: ;} break; - case 146: + case 147: /* Line 1455 of yacc.c */ -#line 1227 "program_parse.y" +#line 1244 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 147: + case 148: /* Line 1455 of yacc.c */ -#line 1231 "program_parse.y" +#line 1248 "program_parse.y" { (yyval.integer) = STATE_POSITION; ;} break; - case 148: + case 149: /* Line 1455 of yacc.c */ -#line 1235 "program_parse.y" +#line 1252 "program_parse.y" { if (!state->ctx->Extensions.EXT_point_parameters) { yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported"); @@ -3473,57 +3497,57 @@ yyreduce: ;} break; - case 149: + case 150: /* Line 1455 of yacc.c */ -#line 1244 "program_parse.y" +#line 1261 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 150: + case 151: /* Line 1455 of yacc.c */ -#line 1248 "program_parse.y" +#line 1265 "program_parse.y" { (yyval.integer) = STATE_HALF_VECTOR; ;} break; - case 151: + case 152: /* Line 1455 of yacc.c */ -#line 1254 "program_parse.y" +#line 1271 "program_parse.y" { (yyval.integer) = STATE_SPOT_DIRECTION; ;} break; - case 152: + case 153: /* Line 1455 of yacc.c */ -#line 1260 "program_parse.y" +#line 1277 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (2)].state)[1]; ;} break; - case 153: + case 154: /* Line 1455 of yacc.c */ -#line 1267 "program_parse.y" +#line 1284 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT; ;} break; - case 154: + case 155: /* Line 1455 of yacc.c */ -#line 1272 "program_parse.y" +#line 1289 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR; @@ -3531,10 +3555,10 @@ yyreduce: ;} break; - case 155: + case 156: /* Line 1455 of yacc.c */ -#line 1280 "program_parse.y" +#line 1297 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTPROD; @@ -3544,10 +3568,10 @@ yyreduce: ;} break; - case 157: + case 158: /* Line 1455 of yacc.c */ -#line 1292 "program_parse.y" +#line 1309 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(3) - (3)].integer); @@ -3555,46 +3579,46 @@ yyreduce: ;} break; - case 158: + case 159: /* Line 1455 of yacc.c */ -#line 1300 "program_parse.y" +#line 1317 "program_parse.y" { (yyval.integer) = STATE_TEXENV_COLOR; ;} break; - case 159: + case 160: /* Line 1455 of yacc.c */ -#line 1306 "program_parse.y" +#line 1323 "program_parse.y" { (yyval.integer) = STATE_AMBIENT; ;} break; - case 160: + case 161: /* Line 1455 of yacc.c */ -#line 1310 "program_parse.y" +#line 1327 "program_parse.y" { (yyval.integer) = STATE_DIFFUSE; ;} break; - case 161: + case 162: /* Line 1455 of yacc.c */ -#line 1314 "program_parse.y" +#line 1331 "program_parse.y" { (yyval.integer) = STATE_SPECULAR; ;} break; - case 162: + case 163: /* Line 1455 of yacc.c */ -#line 1320 "program_parse.y" +#line 1337 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) { yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector"); @@ -3605,10 +3629,10 @@ yyreduce: ;} break; - case 163: + case 164: /* Line 1455 of yacc.c */ -#line 1331 "program_parse.y" +#line 1348 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_TEXGEN; @@ -3617,92 +3641,92 @@ yyreduce: ;} break; - case 164: + case 165: /* Line 1455 of yacc.c */ -#line 1340 "program_parse.y" +#line 1357 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S; ;} break; - case 165: + case 166: /* Line 1455 of yacc.c */ -#line 1344 "program_parse.y" +#line 1361 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_OBJECT_S; ;} break; - case 166: + case 167: /* Line 1455 of yacc.c */ -#line 1349 "program_parse.y" +#line 1366 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S; ;} break; - case 167: + case 168: /* Line 1455 of yacc.c */ -#line 1353 "program_parse.y" +#line 1370 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S; ;} break; - case 168: + case 169: /* Line 1455 of yacc.c */ -#line 1357 "program_parse.y" +#line 1374 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S; ;} break; - case 169: + case 170: /* Line 1455 of yacc.c */ -#line 1361 "program_parse.y" +#line 1378 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S; ;} break; - case 170: + case 171: /* Line 1455 of yacc.c */ -#line 1367 "program_parse.y" +#line 1384 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); ;} break; - case 171: + case 172: /* Line 1455 of yacc.c */ -#line 1374 "program_parse.y" +#line 1391 "program_parse.y" { (yyval.integer) = STATE_FOG_COLOR; ;} break; - case 172: + case 173: /* Line 1455 of yacc.c */ -#line 1378 "program_parse.y" +#line 1395 "program_parse.y" { (yyval.integer) = STATE_FOG_PARAMS; ;} break; - case 173: + case 174: /* Line 1455 of yacc.c */ -#line 1384 "program_parse.y" +#line 1401 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_CLIPPLANE; @@ -3710,10 +3734,10 @@ yyreduce: ;} break; - case 174: + case 175: /* Line 1455 of yacc.c */ -#line 1392 "program_parse.y" +#line 1409 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) { yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector"); @@ -3724,38 +3748,38 @@ yyreduce: ;} break; - case 175: + case 176: /* Line 1455 of yacc.c */ -#line 1403 "program_parse.y" +#line 1420 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); ;} break; - case 176: + case 177: /* Line 1455 of yacc.c */ -#line 1410 "program_parse.y" +#line 1427 "program_parse.y" { (yyval.integer) = STATE_POINT_SIZE; ;} break; - case 177: + case 178: /* Line 1455 of yacc.c */ -#line 1414 "program_parse.y" +#line 1431 "program_parse.y" { (yyval.integer) = STATE_POINT_ATTENUATION; ;} break; - case 178: + case 179: /* Line 1455 of yacc.c */ -#line 1420 "program_parse.y" +#line 1437 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (5)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (5)].state)[1]; @@ -3765,10 +3789,10 @@ yyreduce: ;} break; - case 179: + case 180: /* Line 1455 of yacc.c */ -#line 1430 "program_parse.y" +#line 1447 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (2)].state)[1]; @@ -3778,20 +3802,20 @@ yyreduce: ;} break; - case 180: + case 181: /* Line 1455 of yacc.c */ -#line 1440 "program_parse.y" +#line 1457 "program_parse.y" { (yyval.state)[2] = 0; (yyval.state)[3] = 3; ;} break; - case 181: + case 182: /* Line 1455 of yacc.c */ -#line 1445 "program_parse.y" +#line 1462 "program_parse.y" { /* It seems logical that the matrix row range specifier would have * to specify a range or more than one row (i.e., $5 > $3). @@ -3809,10 +3833,10 @@ yyreduce: ;} break; - case 182: + case 183: /* Line 1455 of yacc.c */ -#line 1463 "program_parse.y" +#line 1480 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (3)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (3)].state)[1]; @@ -3820,55 +3844,55 @@ yyreduce: ;} break; - case 183: + case 184: /* Line 1455 of yacc.c */ -#line 1471 "program_parse.y" +#line 1488 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 184: + case 185: /* Line 1455 of yacc.c */ -#line 1475 "program_parse.y" +#line 1492 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 185: + case 186: /* Line 1455 of yacc.c */ -#line 1481 "program_parse.y" +#line 1498 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVERSE; ;} break; - case 186: + case 187: /* Line 1455 of yacc.c */ -#line 1485 "program_parse.y" +#line 1502 "program_parse.y" { (yyval.integer) = STATE_MATRIX_TRANSPOSE; ;} break; - case 187: + case 188: /* Line 1455 of yacc.c */ -#line 1489 "program_parse.y" +#line 1506 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVTRANS; ;} break; - case 188: + case 189: /* Line 1455 of yacc.c */ -#line 1495 "program_parse.y" +#line 1512 "program_parse.y" { if ((yyvsp[(1) - (1)].integer) > 3) { yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference"); @@ -3879,88 +3903,88 @@ yyreduce: ;} break; - case 189: + case 190: /* Line 1455 of yacc.c */ -#line 1506 "program_parse.y" +#line 1523 "program_parse.y" { (yyval.state)[0] = STATE_MODELVIEW_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); ;} break; - case 190: + case 191: /* Line 1455 of yacc.c */ -#line 1511 "program_parse.y" +#line 1528 "program_parse.y" { (yyval.state)[0] = STATE_PROJECTION_MATRIX; (yyval.state)[1] = 0; ;} break; - case 191: + case 192: /* Line 1455 of yacc.c */ -#line 1516 "program_parse.y" +#line 1533 "program_parse.y" { (yyval.state)[0] = STATE_MVP_MATRIX; (yyval.state)[1] = 0; ;} break; - case 192: + case 193: /* Line 1455 of yacc.c */ -#line 1521 "program_parse.y" +#line 1538 "program_parse.y" { (yyval.state)[0] = STATE_TEXTURE_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); ;} break; - case 193: + case 194: /* Line 1455 of yacc.c */ -#line 1526 "program_parse.y" +#line 1543 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; ;} break; - case 194: + case 195: /* Line 1455 of yacc.c */ -#line 1531 "program_parse.y" +#line 1548 "program_parse.y" { (yyval.state)[0] = STATE_PROGRAM_MATRIX; (yyval.state)[1] = (yyvsp[(3) - (4)].integer); ;} break; - case 195: + case 196: /* Line 1455 of yacc.c */ -#line 1538 "program_parse.y" +#line 1555 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 196: + case 197: /* Line 1455 of yacc.c */ -#line 1542 "program_parse.y" +#line 1559 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 197: + case 198: /* Line 1455 of yacc.c */ -#line 1547 "program_parse.y" +#line 1564 "program_parse.y" { /* Since GL_ARB_vertex_blend isn't supported, only modelview matrix * zero is valid. @@ -3974,10 +3998,10 @@ yyreduce: ;} break; - case 198: + case 199: /* Line 1455 of yacc.c */ -#line 1560 "program_parse.y" +#line 1577 "program_parse.y" { /* Since GL_ARB_matrix_palette isn't supported, just let any value * through here. The error will be generated later. @@ -3986,10 +4010,10 @@ yyreduce: ;} break; - case 199: + case 200: /* Line 1455 of yacc.c */ -#line 1568 "program_parse.y" +#line 1585 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) { yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector"); @@ -4000,20 +4024,20 @@ yyreduce: ;} break; - case 200: + case 201: /* Line 1455 of yacc.c */ -#line 1579 "program_parse.y" +#line 1596 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_DEPTH_RANGE; ;} break; - case 205: + case 206: /* Line 1455 of yacc.c */ -#line 1591 "program_parse.y" +#line 1608 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4023,30 +4047,30 @@ yyreduce: ;} break; - case 206: + case 207: /* Line 1455 of yacc.c */ -#line 1601 "program_parse.y" +#line 1618 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); ;} break; - case 207: + case 208: /* Line 1455 of yacc.c */ -#line 1606 "program_parse.y" +#line 1623 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); ;} break; - case 208: + case 209: /* Line 1455 of yacc.c */ -#line 1613 "program_parse.y" +#line 1630 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4056,10 +4080,10 @@ yyreduce: ;} break; - case 209: + case 210: /* Line 1455 of yacc.c */ -#line 1623 "program_parse.y" +#line 1640 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4069,30 +4093,30 @@ yyreduce: ;} break; - case 210: + case 211: /* Line 1455 of yacc.c */ -#line 1632 "program_parse.y" +#line 1649 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); ;} break; - case 211: + case 212: /* Line 1455 of yacc.c */ -#line 1637 "program_parse.y" +#line 1654 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); ;} break; - case 212: + case 213: /* Line 1455 of yacc.c */ -#line 1644 "program_parse.y" +#line 1661 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4102,10 +4126,10 @@ yyreduce: ;} break; - case 213: + case 214: /* Line 1455 of yacc.c */ -#line 1654 "program_parse.y" +#line 1671 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference"); @@ -4115,10 +4139,10 @@ yyreduce: ;} break; - case 214: + case 215: /* Line 1455 of yacc.c */ -#line 1664 "program_parse.y" +#line 1681 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference"); @@ -4128,10 +4152,10 @@ yyreduce: ;} break; - case 219: + case 220: /* Line 1455 of yacc.c */ -#line 1679 "program_parse.y" +#line 1696 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4141,10 +4165,10 @@ yyreduce: ;} break; - case 220: + case 221: /* Line 1455 of yacc.c */ -#line 1689 "program_parse.y" +#line 1706 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4154,10 +4178,10 @@ yyreduce: ;} break; - case 221: + case 222: /* Line 1455 of yacc.c */ -#line 1697 "program_parse.y" +#line 1714 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer); @@ -4167,10 +4191,10 @@ yyreduce: ;} break; - case 222: + case 223: /* Line 1455 of yacc.c */ -#line 1707 "program_parse.y" +#line 1724 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (3)].real); @@ -4180,10 +4204,10 @@ yyreduce: ;} break; - case 223: + case 224: /* Line 1455 of yacc.c */ -#line 1715 "program_parse.y" +#line 1732 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (5)].real); @@ -4193,10 +4217,10 @@ yyreduce: ;} break; - case 224: + case 225: /* Line 1455 of yacc.c */ -#line 1724 "program_parse.y" +#line 1741 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (7)].real); @@ -4206,10 +4230,10 @@ yyreduce: ;} break; - case 225: + case 226: /* Line 1455 of yacc.c */ -#line 1733 "program_parse.y" +#line 1750 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (9)].real); @@ -4219,63 +4243,63 @@ yyreduce: ;} break; - case 226: + case 227: /* Line 1455 of yacc.c */ -#line 1743 "program_parse.y" +#line 1760 "program_parse.y" { (yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real); ;} break; - case 227: + case 228: /* Line 1455 of yacc.c */ -#line 1747 "program_parse.y" +#line 1764 "program_parse.y" { (yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer)); ;} break; - case 228: + case 229: /* Line 1455 of yacc.c */ -#line 1752 "program_parse.y" +#line 1769 "program_parse.y" { (yyval.negate) = FALSE; ;} break; - case 229: + case 230: /* Line 1455 of yacc.c */ -#line 1753 "program_parse.y" +#line 1770 "program_parse.y" { (yyval.negate) = TRUE; ;} break; - case 230: + case 231: /* Line 1455 of yacc.c */ -#line 1754 "program_parse.y" +#line 1771 "program_parse.y" { (yyval.negate) = FALSE; ;} break; - case 231: + case 232: /* Line 1455 of yacc.c */ -#line 1757 "program_parse.y" +#line 1774 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 233: + case 234: /* Line 1455 of yacc.c */ -#line 1760 "program_parse.y" +#line 1777 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 235: + case 236: /* Line 1455 of yacc.c */ -#line 1764 "program_parse.y" +#line 1781 "program_parse.y" { if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) { YYERROR; @@ -4283,10 +4307,10 @@ yyreduce: ;} break; - case 236: + case 237: /* Line 1455 of yacc.c */ -#line 1770 "program_parse.y" +#line 1787 "program_parse.y" { if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) { YYERROR; @@ -4294,10 +4318,10 @@ yyreduce: ;} break; - case 237: + case 238: /* Line 1455 of yacc.c */ -#line 1778 "program_parse.y" +#line 1795 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)])); @@ -4310,10 +4334,10 @@ yyreduce: ;} break; - case 238: + case 239: /* Line 1455 of yacc.c */ -#line 1791 "program_parse.y" +#line 1808 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_HPOS; @@ -4324,10 +4348,10 @@ yyreduce: ;} break; - case 239: + case 240: /* Line 1455 of yacc.c */ -#line 1800 "program_parse.y" +#line 1817 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_FOGC; @@ -4338,19 +4362,19 @@ yyreduce: ;} break; - case 240: + case 241: /* Line 1455 of yacc.c */ -#line 1809 "program_parse.y" +#line 1826 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (2)].result); ;} break; - case 241: + case 242: /* Line 1455 of yacc.c */ -#line 1813 "program_parse.y" +#line 1830 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_PSIZ; @@ -4361,10 +4385,10 @@ yyreduce: ;} break; - case 242: + case 243: /* Line 1455 of yacc.c */ -#line 1822 "program_parse.y" +#line 1839 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer); @@ -4375,10 +4399,10 @@ yyreduce: ;} break; - case 243: + case 244: /* Line 1455 of yacc.c */ -#line 1831 "program_parse.y" +#line 1848 "program_parse.y" { if (state->mode == ARB_fragment) { (yyval.result) = FRAG_RESULT_DEPTH; @@ -4389,19 +4413,19 @@ yyreduce: ;} break; - case 244: + case 245: /* Line 1455 of yacc.c */ -#line 1842 "program_parse.y" +#line 1859 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer); ;} break; - case 245: + case 246: /* Line 1455 of yacc.c */ -#line 1848 "program_parse.y" +#line 1865 "program_parse.y" { (yyval.integer) = (state->mode == ARB_vertex) ? VERT_RESULT_COL0 @@ -4409,10 +4433,10 @@ yyreduce: ;} break; - case 246: + case 247: /* Line 1455 of yacc.c */ -#line 1854 "program_parse.y" +#line 1871 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_COL0; @@ -4423,10 +4447,10 @@ yyreduce: ;} break; - case 247: + case 248: /* Line 1455 of yacc.c */ -#line 1863 "program_parse.y" +#line 1880 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_BFC0; @@ -4437,19 +4461,19 @@ yyreduce: ;} break; - case 248: + case 249: /* Line 1455 of yacc.c */ -#line 1874 "program_parse.y" +#line 1891 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 249: + case 250: /* Line 1455 of yacc.c */ -#line 1878 "program_parse.y" +#line 1895 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 0; @@ -4460,10 +4484,10 @@ yyreduce: ;} break; - case 250: + case 251: /* Line 1455 of yacc.c */ -#line 1887 "program_parse.y" +#line 1904 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 1; @@ -4474,94 +4498,94 @@ yyreduce: ;} break; - case 251: + case 252: /* Line 1455 of yacc.c */ -#line 1897 "program_parse.y" +#line 1914 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 252: + case 253: /* Line 1455 of yacc.c */ -#line 1898 "program_parse.y" +#line 1915 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 253: + case 254: /* Line 1455 of yacc.c */ -#line 1899 "program_parse.y" +#line 1916 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 254: + case 255: /* Line 1455 of yacc.c */ -#line 1902 "program_parse.y" +#line 1919 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 255: + case 256: /* Line 1455 of yacc.c */ -#line 1903 "program_parse.y" +#line 1920 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 256: + case 257: /* Line 1455 of yacc.c */ -#line 1904 "program_parse.y" +#line 1921 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 257: + case 258: /* Line 1455 of yacc.c */ -#line 1907 "program_parse.y" +#line 1924 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 258: + case 259: /* Line 1455 of yacc.c */ -#line 1908 "program_parse.y" +#line 1925 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 259: + case 260: /* Line 1455 of yacc.c */ -#line 1911 "program_parse.y" +#line 1928 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 260: + case 261: /* Line 1455 of yacc.c */ -#line 1912 "program_parse.y" +#line 1929 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 261: + case 262: /* Line 1455 of yacc.c */ -#line 1915 "program_parse.y" +#line 1932 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 262: + case 263: /* Line 1455 of yacc.c */ -#line 1916 "program_parse.y" +#line 1933 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 263: + case 264: /* Line 1455 of yacc.c */ -#line 1920 "program_parse.y" +#line 1937 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector"); @@ -4572,10 +4596,10 @@ yyreduce: ;} break; - case 264: + case 265: /* Line 1455 of yacc.c */ -#line 1931 "program_parse.y" +#line 1948 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector"); @@ -4586,10 +4610,10 @@ yyreduce: ;} break; - case 265: + case 266: /* Line 1455 of yacc.c */ -#line 1942 "program_parse.y" +#line 1959 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector"); @@ -4600,10 +4624,10 @@ yyreduce: ;} break; - case 266: + case 267: /* Line 1455 of yacc.c */ -#line 1953 "program_parse.y" +#line 1970 "program_parse.y" { struct asm_symbol *exist = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string)); @@ -4627,7 +4651,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 4631 "program_parse.tab.c" +#line 4655 "program_parse.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4846,7 +4870,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 1973 "program_parse.y" +#line 1990 "program_parse.y" struct asm_instruction * diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 4cd459a096..fa94f763c4 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -534,6 +534,23 @@ scalarSrcReg: optionalSign srcReg scalarSuffix $$.Base.Swizzle = _mesa_combine_swizzles($$.Base.Swizzle, $3.swizzle); } + | optionalSign paramConstScalarUse + { + struct asm_symbol temp_sym; + + if (!state->option.NV_fragment) { + yyerror(& @2, state, "expected scalar suffix"); + YYERROR; + } + + memset(& temp_sym, 0, sizeof(temp_sym)); + temp_sym.param_binding_begin = ~0; + initialize_symbol_from_const(state->prog, & temp_sym, & $2); + + init_src_reg(& $$); + $$.Base.File = PROGRAM_CONSTANT; + $$.Base.Index = temp_sym.param_binding_begin; + } ; swizzleSrcReg: optionalSign srcReg swizzleSuffix -- cgit v1.2.3 From 5db8ebb8f534907614247afaf1dd8621b2d0462e Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 3 Sep 2009 14:06:42 -0700 Subject: Enable GL_NV_fragment_program_option for software rendering At this point the extension is not fully implemented. --- src/mesa/drivers/dri/swrast/swrast.c | 1 + src/mesa/main/extensions.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index 3aa7843b1b..d8de5cca80 100644 --- a/src/mesa/drivers/dri/swrast/swrast.c +++ b/src/mesa/drivers/dri/swrast/swrast.c @@ -109,6 +109,7 @@ const struct dri_extension card_extensions[] = { "GL_MESA_resize_buffers", GL_MESA_resize_buffers_functions }, { "GL_NV_vertex_program", GL_NV_vertex_program_functions }, { "GL_NV_fragment_program", GL_NV_fragment_program_functions }, + { "GL_NV_fragment_program_option", NULL }, { NULL, NULL } }; diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 903da99ed0..c6f5068685 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -305,6 +305,9 @@ _mesa_enable_sw_extensions(GLcontext *ctx) #endif #if FEATURE_NV_fragment_program ctx->Extensions.NV_fragment_program = GL_TRUE; +#endif +#if FEATURE_NV_fragment_program && FEATURE_ARB_fragment_program + ctx->Extensions.NV_fragment_program_option = GL_TRUE; #endif ctx->Extensions.SGI_color_matrix = GL_TRUE; ctx->Extensions.SGI_color_table = GL_TRUE; -- cgit v1.2.3 From eeb1402c0514248773e66f2077b0fb52f7245d56 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 3 Sep 2009 14:32:48 -0700 Subject: NV fp parser: Add support for absolute value operator on instruction operands --- src/mesa/shader/program_parse.tab.c | 1731 ++++++++++++++++++----------------- src/mesa/shader/program_parse.y | 51 +- 2 files changed, 942 insertions(+), 840 deletions(-) diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 508ac617e4..505a1eb94f 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -588,16 +588,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 351 +#define YYLAST 375 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 116 +#define YYNTOKENS 117 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 135 +#define YYNNTS 136 /* YYNRULES -- Number of rules. */ -#define YYNRULES 267 +#define YYNRULES 270 /* YYNRULES -- Number of states. */ -#define YYNSTATES 448 +#define YYNSTATES 456 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -613,15 +613,15 @@ static const yytype_uint8 yytranslate[] = 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, 111, 108, 112, 2, 2, 2, 2, + 2, 2, 2, 112, 108, 113, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 107, - 2, 113, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 114, 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, 109, 2, 110, 2, 2, 2, 2, 2, 2, + 2, 110, 2, 111, 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, 114, 2, 115, 2, 2, 2, 2, + 2, 2, 2, 115, 109, 116, 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, 2, @@ -657,110 +657,112 @@ static const yytype_uint16 yyprhs[] = 24, 27, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 59, 64, 69, 76, 83, 92, 101, 104, 117, 120, 122, 124, 126, 128, 130, - 132, 134, 136, 138, 140, 142, 144, 151, 155, 158, - 162, 165, 168, 176, 179, 181, 183, 185, 187, 192, - 194, 196, 198, 200, 202, 204, 206, 210, 211, 214, - 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, - 236, 238, 240, 242, 244, 245, 247, 249, 251, 253, - 255, 257, 262, 265, 268, 270, 273, 275, 278, 280, - 283, 288, 293, 295, 296, 300, 302, 304, 307, 309, - 312, 314, 316, 320, 327, 328, 330, 333, 338, 340, - 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, - 364, 367, 370, 373, 376, 379, 382, 385, 388, 391, - 394, 397, 400, 404, 406, 408, 410, 416, 418, 420, - 422, 425, 427, 429, 432, 434, 437, 444, 446, 450, - 452, 454, 456, 458, 460, 465, 467, 469, 471, 473, - 475, 477, 480, 482, 484, 490, 492, 495, 497, 499, - 505, 508, 509, 516, 520, 521, 523, 525, 527, 529, - 531, 534, 536, 538, 541, 546, 551, 552, 554, 556, - 558, 560, 563, 565, 567, 569, 571, 577, 579, 583, - 589, 595, 597, 601, 607, 609, 611, 613, 615, 617, - 619, 621, 623, 625, 629, 635, 643, 653, 656, 659, - 661, 663, 664, 665, 669, 670, 674, 678, 680, 685, - 688, 691, 694, 697, 701, 704, 708, 709, 711, 713, - 714, 716, 718, 719, 721, 723, 724, 726, 728, 729, - 733, 734, 738, 739, 743, 745, 747, 749 + 132, 134, 136, 138, 140, 142, 144, 151, 154, 159, + 162, 164, 168, 174, 177, 180, 188, 191, 193, 195, + 197, 199, 204, 206, 208, 210, 212, 214, 216, 218, + 222, 223, 226, 229, 231, 233, 235, 237, 239, 241, + 243, 245, 247, 248, 250, 252, 254, 256, 257, 259, + 261, 263, 265, 267, 269, 274, 277, 280, 282, 285, + 287, 290, 292, 295, 300, 305, 307, 308, 312, 314, + 316, 319, 321, 324, 326, 328, 332, 339, 340, 342, + 345, 350, 352, 356, 358, 360, 362, 364, 366, 368, + 370, 372, 374, 376, 379, 382, 385, 388, 391, 394, + 397, 400, 403, 406, 409, 412, 416, 418, 420, 422, + 428, 430, 432, 434, 437, 439, 441, 444, 446, 449, + 456, 458, 462, 464, 466, 468, 470, 472, 477, 479, + 481, 483, 485, 487, 489, 492, 494, 496, 502, 504, + 507, 509, 511, 517, 520, 521, 528, 532, 533, 535, + 537, 539, 541, 543, 546, 548, 550, 553, 558, 563, + 564, 566, 568, 570, 572, 575, 577, 579, 581, 583, + 589, 591, 595, 601, 607, 609, 613, 619, 621, 623, + 625, 627, 629, 631, 633, 635, 637, 641, 647, 655, + 665, 668, 671, 673, 675, 676, 677, 681, 682, 686, + 690, 692, 697, 700, 703, 706, 709, 713, 716, 720, + 721, 723, 725, 726, 728, 730, 731, 733, 735, 736, + 738, 740, 741, 745, 746, 750, 751, 755, 757, 759, + 761 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 117, 0, -1, 118, 119, 121, 12, -1, 3, -1, - 4, -1, 119, 120, -1, -1, 8, 99, 107, -1, - 121, 122, -1, -1, 123, 107, -1, 160, 107, -1, - 124, -1, 125, -1, 126, -1, 127, -1, 128, -1, - 129, -1, 130, -1, 131, -1, 137, -1, 132, -1, - 133, -1, 134, -1, 19, 141, 108, 138, -1, 18, - 140, 108, 139, -1, 16, 140, 108, 138, -1, 14, - 140, 108, 138, 108, 138, -1, 13, 140, 108, 139, - 108, 139, -1, 17, 140, 108, 139, 108, 139, 108, - 139, -1, 15, 140, 108, 139, 108, 135, 108, 136, - -1, 20, 139, -1, 22, 140, 108, 139, 108, 139, - 108, 139, 108, 135, 108, 136, -1, 83, 245, -1, + 118, 0, -1, 119, 120, 122, 12, -1, 3, -1, + 4, -1, 120, 121, -1, -1, 8, 99, 107, -1, + 122, 123, -1, -1, 124, 107, -1, 162, 107, -1, + 125, -1, 126, -1, 127, -1, 128, -1, 129, -1, + 130, -1, 131, -1, 132, -1, 138, -1, 133, -1, + 134, -1, 135, -1, 19, 143, 108, 139, -1, 18, + 142, 108, 141, -1, 16, 142, 108, 139, -1, 14, + 142, 108, 139, 108, 139, -1, 13, 142, 108, 141, + 108, 141, -1, 17, 142, 108, 141, 108, 141, 108, + 141, -1, 15, 142, 108, 141, 108, 136, 108, 137, + -1, 20, 141, -1, 22, 142, 108, 141, 108, 141, + 108, 141, 108, 136, 108, 137, -1, 83, 247, -1, 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, 93, -1, - 94, -1, 95, -1, 21, 140, 108, 145, 108, 142, - -1, 231, 145, 157, -1, 231, 228, -1, 231, 145, - 158, -1, 146, 159, -1, 154, 156, -1, 143, 108, - 143, 108, 143, 108, 143, -1, 231, 144, -1, 23, - -1, 99, -1, 99, -1, 162, -1, 147, 109, 148, - 110, -1, 176, -1, 238, -1, 99, -1, 99, -1, - 149, -1, 150, -1, 23, -1, 154, 155, 151, -1, - -1, 111, 152, -1, 112, 153, -1, 23, -1, 23, - -1, 99, -1, 103, -1, 103, -1, 103, -1, 103, - -1, 100, -1, 104, -1, -1, 100, -1, 101, -1, - 102, -1, 103, -1, -1, 161, -1, 168, -1, 232, - -1, 234, -1, 237, -1, 250, -1, 7, 99, 113, - 162, -1, 96, 163, -1, 38, 167, -1, 60, -1, - 98, 165, -1, 53, -1, 29, 243, -1, 37, -1, - 74, 244, -1, 50, 109, 166, 110, -1, 97, 109, - 164, 110, -1, 23, -1, -1, 109, 166, 110, -1, - 23, -1, 60, -1, 29, 243, -1, 37, -1, 74, - 244, -1, 169, -1, 170, -1, 10, 99, 172, -1, - 10, 99, 109, 171, 110, 173, -1, -1, 23, -1, - 113, 175, -1, 113, 114, 174, 115, -1, 177, -1, - 174, 108, 177, -1, 179, -1, 215, -1, 225, -1, - 179, -1, 215, -1, 226, -1, 178, -1, 216, -1, - 225, -1, 179, -1, 73, 203, -1, 73, 180, -1, - 73, 182, -1, 73, 185, -1, 73, 187, -1, 73, - 193, -1, 73, 189, -1, 73, 196, -1, 73, 198, - -1, 73, 200, -1, 73, 202, -1, 73, 214, -1, - 47, 242, 181, -1, 191, -1, 33, -1, 69, -1, - 43, 109, 192, 110, 183, -1, 191, -1, 60, -1, - 26, -1, 72, 184, -1, 40, -1, 32, -1, 44, - 186, -1, 25, -1, 242, 67, -1, 45, 109, 192, - 110, 242, 188, -1, 191, -1, 75, 246, 190, -1, - 29, -1, 25, -1, 31, -1, 71, -1, 23, -1, - 76, 244, 194, 195, -1, 35, -1, 54, -1, 79, - -1, 80, -1, 78, -1, 77, -1, 36, 197, -1, - 29, -1, 56, -1, 28, 109, 199, 110, 57, -1, - 23, -1, 58, 201, -1, 70, -1, 26, -1, 205, - 66, 109, 208, 110, -1, 205, 204, -1, -1, 66, - 109, 208, 105, 208, 110, -1, 49, 209, 206, -1, - -1, 207, -1, 41, -1, 82, -1, 42, -1, 23, - -1, 51, 210, -1, 63, -1, 52, -1, 81, 244, - -1, 55, 109, 212, 110, -1, 48, 109, 213, 110, - -1, -1, 211, -1, 23, -1, 23, -1, 23, -1, - 30, 64, -1, 219, -1, 222, -1, 217, -1, 220, - -1, 62, 34, 109, 218, 110, -1, 223, -1, 223, - 105, 223, -1, 62, 34, 109, 223, 110, -1, 62, - 46, 109, 221, 110, -1, 224, -1, 224, 105, 224, - -1, 62, 46, 109, 224, 110, -1, 23, -1, 23, - -1, 227, -1, 229, -1, 228, -1, 229, -1, 230, - -1, 24, -1, 23, -1, 114, 230, 115, -1, 114, - 230, 108, 230, 115, -1, 114, 230, 108, 230, 108, - 230, 115, -1, 114, 230, 108, 230, 108, 230, 108, - 230, 115, -1, 231, 24, -1, 231, 23, -1, 111, - -1, 112, -1, -1, -1, 11, 233, 236, -1, -1, - 5, 235, 236, -1, 236, 108, 99, -1, 99, -1, - 9, 99, 113, 238, -1, 65, 60, -1, 65, 37, - -1, 65, 239, -1, 65, 59, -1, 65, 74, 244, - -1, 65, 30, -1, 29, 240, 241, -1, -1, 39, - -1, 27, -1, -1, 61, -1, 68, -1, -1, 39, - -1, 27, -1, -1, 61, -1, 68, -1, -1, 109, - 247, 110, -1, -1, 109, 248, 110, -1, -1, 109, - 249, 110, -1, 23, -1, 23, -1, 23, -1, 6, - 99, 113, 99, -1 + 94, -1, 95, -1, 21, 142, 108, 147, 108, 144, + -1, 233, 140, -1, 233, 109, 140, 109, -1, 147, + 159, -1, 230, -1, 233, 147, 160, -1, 233, 109, + 147, 160, 109, -1, 148, 161, -1, 156, 158, -1, + 145, 108, 145, 108, 145, 108, 145, -1, 233, 146, + -1, 23, -1, 99, -1, 99, -1, 164, -1, 149, + 110, 150, 111, -1, 178, -1, 240, -1, 99, -1, + 99, -1, 151, -1, 152, -1, 23, -1, 156, 157, + 153, -1, -1, 112, 154, -1, 113, 155, -1, 23, + -1, 23, -1, 99, -1, 103, -1, 103, -1, 103, + -1, 103, -1, 100, -1, 104, -1, -1, 100, -1, + 101, -1, 102, -1, 103, -1, -1, 163, -1, 170, + -1, 234, -1, 236, -1, 239, -1, 252, -1, 7, + 99, 114, 164, -1, 96, 165, -1, 38, 169, -1, + 60, -1, 98, 167, -1, 53, -1, 29, 245, -1, + 37, -1, 74, 246, -1, 50, 110, 168, 111, -1, + 97, 110, 166, 111, -1, 23, -1, -1, 110, 168, + 111, -1, 23, -1, 60, -1, 29, 245, -1, 37, + -1, 74, 246, -1, 171, -1, 172, -1, 10, 99, + 174, -1, 10, 99, 110, 173, 111, 175, -1, -1, + 23, -1, 114, 177, -1, 114, 115, 176, 116, -1, + 179, -1, 176, 108, 179, -1, 181, -1, 217, -1, + 227, -1, 181, -1, 217, -1, 228, -1, 180, -1, + 218, -1, 227, -1, 181, -1, 73, 205, -1, 73, + 182, -1, 73, 184, -1, 73, 187, -1, 73, 189, + -1, 73, 195, -1, 73, 191, -1, 73, 198, -1, + 73, 200, -1, 73, 202, -1, 73, 204, -1, 73, + 216, -1, 47, 244, 183, -1, 193, -1, 33, -1, + 69, -1, 43, 110, 194, 111, 185, -1, 193, -1, + 60, -1, 26, -1, 72, 186, -1, 40, -1, 32, + -1, 44, 188, -1, 25, -1, 244, 67, -1, 45, + 110, 194, 111, 244, 190, -1, 193, -1, 75, 248, + 192, -1, 29, -1, 25, -1, 31, -1, 71, -1, + 23, -1, 76, 246, 196, 197, -1, 35, -1, 54, + -1, 79, -1, 80, -1, 78, -1, 77, -1, 36, + 199, -1, 29, -1, 56, -1, 28, 110, 201, 111, + 57, -1, 23, -1, 58, 203, -1, 70, -1, 26, + -1, 207, 66, 110, 210, 111, -1, 207, 206, -1, + -1, 66, 110, 210, 105, 210, 111, -1, 49, 211, + 208, -1, -1, 209, -1, 41, -1, 82, -1, 42, + -1, 23, -1, 51, 212, -1, 63, -1, 52, -1, + 81, 246, -1, 55, 110, 214, 111, -1, 48, 110, + 215, 111, -1, -1, 213, -1, 23, -1, 23, -1, + 23, -1, 30, 64, -1, 221, -1, 224, -1, 219, + -1, 222, -1, 62, 34, 110, 220, 111, -1, 225, + -1, 225, 105, 225, -1, 62, 34, 110, 225, 111, + -1, 62, 46, 110, 223, 111, -1, 226, -1, 226, + 105, 226, -1, 62, 46, 110, 226, 111, -1, 23, + -1, 23, -1, 229, -1, 231, -1, 230, -1, 231, + -1, 232, -1, 24, -1, 23, -1, 115, 232, 116, + -1, 115, 232, 108, 232, 116, -1, 115, 232, 108, + 232, 108, 232, 116, -1, 115, 232, 108, 232, 108, + 232, 108, 232, 116, -1, 233, 24, -1, 233, 23, + -1, 112, -1, 113, -1, -1, -1, 11, 235, 238, + -1, -1, 5, 237, 238, -1, 238, 108, 99, -1, + 99, -1, 9, 99, 114, 240, -1, 65, 60, -1, + 65, 37, -1, 65, 241, -1, 65, 59, -1, 65, + 74, 246, -1, 65, 30, -1, 29, 242, 243, -1, + -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, + -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, + -1, 110, 249, 111, -1, -1, 110, 250, 111, -1, + -1, 110, 251, 111, -1, 23, -1, 23, -1, 23, + -1, 6, 99, 114, 99, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -770,29 +772,30 @@ static const yytype_uint16 yyrline[] = 309, 324, 327, 332, 339, 340, 341, 342, 343, 344, 345, 348, 349, 350, 353, 359, 366, 373, 381, 388, 396, 441, 448, 493, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 513, 526, 537, 556, - 569, 591, 600, 633, 640, 655, 705, 747, 758, 779, - 789, 795, 826, 843, 843, 845, 852, 864, 865, 866, - 869, 881, 893, 911, 922, 934, 936, 937, 938, 939, - 942, 942, 942, 942, 943, 946, 947, 948, 949, 950, - 951, 954, 972, 976, 982, 986, 990, 994, 1003, 1012, - 1016, 1021, 1027, 1038, 1038, 1039, 1041, 1045, 1049, 1053, - 1059, 1059, 1061, 1077, 1100, 1103, 1114, 1120, 1126, 1127, - 1134, 1140, 1146, 1154, 1160, 1166, 1174, 1180, 1186, 1194, - 1195, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, - 1207, 1208, 1211, 1220, 1224, 1228, 1234, 1243, 1247, 1251, - 1260, 1264, 1270, 1276, 1283, 1288, 1296, 1306, 1308, 1316, - 1322, 1326, 1330, 1336, 1347, 1356, 1360, 1365, 1369, 1373, - 1377, 1383, 1390, 1394, 1400, 1408, 1419, 1426, 1430, 1436, - 1446, 1457, 1461, 1479, 1488, 1491, 1497, 1501, 1505, 1511, - 1522, 1527, 1532, 1537, 1542, 1547, 1555, 1558, 1563, 1576, - 1584, 1595, 1603, 1603, 1605, 1605, 1607, 1617, 1622, 1629, - 1639, 1648, 1653, 1660, 1670, 1680, 1692, 1692, 1693, 1693, - 1695, 1705, 1713, 1723, 1731, 1739, 1748, 1759, 1763, 1769, - 1770, 1771, 1774, 1774, 1777, 1777, 1780, 1786, 1794, 1807, - 1816, 1825, 1829, 1838, 1847, 1858, 1865, 1870, 1879, 1891, - 1894, 1903, 1914, 1915, 1916, 1919, 1920, 1921, 1924, 1925, - 1928, 1929, 1932, 1933, 1936, 1947, 1958, 1969 + 505, 506, 507, 508, 509, 510, 513, 526, 534, 551, + 558, 577, 588, 608, 630, 639, 672, 679, 694, 744, + 786, 797, 818, 828, 834, 865, 882, 882, 884, 891, + 903, 904, 905, 908, 920, 932, 950, 961, 973, 975, + 976, 977, 978, 981, 981, 981, 981, 982, 985, 986, + 987, 988, 989, 990, 993, 1011, 1015, 1021, 1025, 1029, + 1033, 1042, 1051, 1055, 1060, 1066, 1077, 1077, 1078, 1080, + 1084, 1088, 1092, 1098, 1098, 1100, 1116, 1139, 1142, 1153, + 1159, 1165, 1166, 1173, 1179, 1185, 1193, 1199, 1205, 1213, + 1219, 1225, 1233, 1234, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 1244, 1245, 1246, 1247, 1250, 1259, 1263, 1267, 1273, + 1282, 1286, 1290, 1299, 1303, 1309, 1315, 1322, 1327, 1335, + 1345, 1347, 1355, 1361, 1365, 1369, 1375, 1386, 1395, 1399, + 1404, 1408, 1412, 1416, 1422, 1429, 1433, 1439, 1447, 1458, + 1465, 1469, 1475, 1485, 1496, 1500, 1518, 1527, 1530, 1536, + 1540, 1544, 1550, 1561, 1566, 1571, 1576, 1581, 1586, 1594, + 1597, 1602, 1615, 1623, 1634, 1642, 1642, 1644, 1644, 1646, + 1656, 1661, 1668, 1678, 1687, 1692, 1699, 1709, 1719, 1731, + 1731, 1732, 1732, 1734, 1744, 1752, 1762, 1770, 1778, 1787, + 1798, 1802, 1808, 1809, 1810, 1813, 1813, 1816, 1816, 1819, + 1825, 1833, 1846, 1855, 1864, 1868, 1877, 1886, 1897, 1904, + 1909, 1918, 1930, 1933, 1942, 1953, 1954, 1955, 1958, 1959, + 1960, 1963, 1964, 1967, 1968, 1971, 1972, 1975, 1986, 1997, + 2008 }; #endif @@ -818,45 +821,45 @@ static const char *const yytname[] = "TEX_SHADOW2D", "TEX_SHADOWRECT", "TEX_ARRAY1D", "TEX_ARRAY2D", "TEX_ARRAYSHADOW1D", "TEX_ARRAYSHADOW2D", "VERTEX", "VTXATTRIB", "WEIGHT", "IDENTIFIER", "MASK4", "MASK3", "MASK2", "MASK1", "SWIZZLE", - "DOT_DOT", "DOT", "';'", "','", "'['", "']'", "'+'", "'-'", "'='", "'{'", - "'}'", "$accept", "program", "language", "optionSequence", "option", - "statementSequence", "statement", "instruction", "ALU_instruction", - "TexInstruction", "ARL_instruction", "VECTORop_instruction", - "SCALARop_instruction", "BINSCop_instruction", "BINop_instruction", - "TRIop_instruction", "SAMPLE_instruction", "KIL_instruction", - "TXD_instruction", "texImageUnit", "texTarget", "SWZ_instruction", - "scalarSrcReg", "swizzleSrcReg", "maskedDstReg", "maskedAddrReg", - "extendedSwizzle", "extSwizComp", "extSwizSel", "srcReg", "dstReg", - "progParamArray", "progParamArrayMem", "progParamArrayAbs", - "progParamArrayRel", "addrRegRelOffset", "addrRegPosOffset", - "addrRegNegOffset", "addrReg", "addrComponent", "addrWriteMask", - "scalarSuffix", "swizzleSuffix", "optionalMask", "namingStatement", - "ATTRIB_statement", "attribBinding", "vtxAttribItem", "vtxAttribNum", - "vtxOptWeightNum", "vtxWeightNum", "fragAttribItem", "PARAM_statement", - "PARAM_singleStmt", "PARAM_multipleStmt", "optArraySize", - "paramSingleInit", "paramMultipleInit", "paramMultInitList", - "paramSingleItemDecl", "paramSingleItemUse", "paramMultipleItem", - "stateMultipleItem", "stateSingleItem", "stateMaterialItem", - "stateMatProperty", "stateLightItem", "stateLightProperty", - "stateSpotProperty", "stateLightModelItem", "stateLModProperty", - "stateLightProdItem", "stateLProdProperty", "stateTexEnvItem", - "stateTexEnvProperty", "ambDiffSpecProperty", "stateLightNumber", - "stateTexGenItem", "stateTexGenType", "stateTexGenCoord", "stateFogItem", - "stateFogProperty", "stateClipPlaneItem", "stateClipPlaneNum", - "statePointItem", "statePointProperty", "stateMatrixRow", - "stateMatrixRows", "optMatrixRows", "stateMatrixItem", - "stateOptMatModifier", "stateMatModifier", "stateMatrixRowNum", - "stateMatrixName", "stateOptModMatNum", "stateModMatNum", - "statePaletteMatNum", "stateProgramMatNum", "stateDepthItem", - "programSingleItem", "programMultipleItem", "progEnvParams", - "progEnvParamNums", "progEnvParam", "progLocalParams", - "progLocalParamNums", "progLocalParam", "progEnvParamNum", - "progLocalParamNum", "paramConstDecl", "paramConstUse", - "paramConstScalarDecl", "paramConstScalarUse", "paramConstVector", - "signedFloatConstant", "optionalSign", "TEMP_statement", "@1", - "ADDRESS_statement", "@2", "varNameList", "OUTPUT_statement", - "resultBinding", "resultColBinding", "optResultFaceType", - "optResultColorType", "optFaceType", "optColorType", + "DOT_DOT", "DOT", "';'", "','", "'|'", "'['", "']'", "'+'", "'-'", "'='", + "'{'", "'}'", "$accept", "program", "language", "optionSequence", + "option", "statementSequence", "statement", "instruction", + "ALU_instruction", "TexInstruction", "ARL_instruction", + "VECTORop_instruction", "SCALARop_instruction", "BINSCop_instruction", + "BINop_instruction", "TRIop_instruction", "SAMPLE_instruction", + "KIL_instruction", "TXD_instruction", "texImageUnit", "texTarget", + "SWZ_instruction", "scalarSrcReg", "scalarUse", "swizzleSrcReg", + "maskedDstReg", "maskedAddrReg", "extendedSwizzle", "extSwizComp", + "extSwizSel", "srcReg", "dstReg", "progParamArray", "progParamArrayMem", + "progParamArrayAbs", "progParamArrayRel", "addrRegRelOffset", + "addrRegPosOffset", "addrRegNegOffset", "addrReg", "addrComponent", + "addrWriteMask", "scalarSuffix", "swizzleSuffix", "optionalMask", + "namingStatement", "ATTRIB_statement", "attribBinding", "vtxAttribItem", + "vtxAttribNum", "vtxOptWeightNum", "vtxWeightNum", "fragAttribItem", + "PARAM_statement", "PARAM_singleStmt", "PARAM_multipleStmt", + "optArraySize", "paramSingleInit", "paramMultipleInit", + "paramMultInitList", "paramSingleItemDecl", "paramSingleItemUse", + "paramMultipleItem", "stateMultipleItem", "stateSingleItem", + "stateMaterialItem", "stateMatProperty", "stateLightItem", + "stateLightProperty", "stateSpotProperty", "stateLightModelItem", + "stateLModProperty", "stateLightProdItem", "stateLProdProperty", + "stateTexEnvItem", "stateTexEnvProperty", "ambDiffSpecProperty", + "stateLightNumber", "stateTexGenItem", "stateTexGenType", + "stateTexGenCoord", "stateFogItem", "stateFogProperty", + "stateClipPlaneItem", "stateClipPlaneNum", "statePointItem", + "statePointProperty", "stateMatrixRow", "stateMatrixRows", + "optMatrixRows", "stateMatrixItem", "stateOptMatModifier", + "stateMatModifier", "stateMatrixRowNum", "stateMatrixName", + "stateOptModMatNum", "stateModMatNum", "statePaletteMatNum", + "stateProgramMatNum", "stateDepthItem", "programSingleItem", + "programMultipleItem", "progEnvParams", "progEnvParamNums", + "progEnvParam", "progLocalParams", "progLocalParamNums", + "progLocalParam", "progEnvParamNum", "progLocalParamNum", + "paramConstDecl", "paramConstUse", "paramConstScalarDecl", + "paramConstScalarUse", "paramConstVector", "signedFloatConstant", + "optionalSign", "TEMP_statement", "@1", "ADDRESS_statement", "@2", + "varNameList", "OUTPUT_statement", "resultBinding", "resultColBinding", + "optResultFaceType", "optResultColorType", "optFaceType", "optColorType", "optTexCoordUnitNum", "optTexImageUnitNum", "optLegacyTexUnitNum", "texCoordUnitNum", "texImageUnitNum", "legacyTexUnitNum", "ALIAS_statement", 0 @@ -878,41 +881,42 @@ static const yytype_uint16 yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 59, 44, 91, - 93, 43, 45, 61, 123, 125 + 355, 356, 357, 358, 359, 360, 361, 59, 44, 124, + 91, 93, 43, 45, 61, 123, 125 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 116, 117, 118, 118, 119, 119, 120, 121, 121, - 122, 122, 123, 123, 124, 124, 124, 124, 124, 124, - 124, 125, 125, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 137, 138, 138, 139, - 140, 141, 142, 143, 144, 144, 145, 145, 145, 145, - 146, 146, 147, 148, 148, 149, 150, 151, 151, 151, - 152, 153, 154, 155, 156, 157, 158, 158, 158, 158, - 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, - 160, 161, 162, 162, 163, 163, 163, 163, 163, 163, - 163, 163, 164, 165, 165, 166, 167, 167, 167, 167, - 168, 168, 169, 170, 171, 171, 172, 173, 174, 174, - 175, 175, 175, 176, 176, 176, 177, 177, 177, 178, - 178, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 180, 181, 181, 181, 182, 183, 183, 183, - 183, 183, 184, 185, 186, 186, 187, 188, 189, 190, - 191, 191, 191, 192, 193, 194, 194, 195, 195, 195, - 195, 196, 197, 197, 198, 199, 200, 201, 201, 202, - 203, 204, 204, 205, 206, 206, 207, 207, 207, 208, - 209, 209, 209, 209, 209, 209, 210, 210, 211, 212, - 213, 214, 215, 215, 216, 216, 217, 218, 218, 219, - 220, 221, 221, 222, 223, 224, 225, 225, 226, 226, - 227, 228, 228, 229, 229, 229, 229, 230, 230, 231, - 231, 231, 233, 232, 235, 234, 236, 236, 237, 238, - 238, 238, 238, 238, 238, 239, 240, 240, 240, 241, - 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, - 245, 245, 246, 246, 247, 248, 249, 250 + 0, 117, 118, 119, 119, 120, 120, 121, 122, 122, + 123, 123, 124, 124, 125, 125, 125, 125, 125, 125, + 125, 126, 126, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 138, 139, 139, 140, + 140, 141, 141, 142, 143, 144, 145, 146, 146, 147, + 147, 147, 147, 148, 148, 149, 150, 150, 151, 152, + 153, 153, 153, 154, 155, 156, 157, 158, 159, 160, + 160, 160, 160, 161, 161, 161, 161, 161, 162, 162, + 162, 162, 162, 162, 163, 164, 164, 165, 165, 165, + 165, 165, 165, 165, 165, 166, 167, 167, 168, 169, + 169, 169, 169, 170, 170, 171, 172, 173, 173, 174, + 175, 176, 176, 177, 177, 177, 178, 178, 178, 179, + 179, 179, 180, 180, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 182, 183, 183, 183, 184, + 185, 185, 185, 185, 185, 186, 187, 188, 188, 189, + 190, 191, 192, 193, 193, 193, 194, 195, 196, 196, + 197, 197, 197, 197, 198, 199, 199, 200, 201, 202, + 203, 203, 204, 205, 206, 206, 207, 208, 208, 209, + 209, 209, 210, 211, 211, 211, 211, 211, 211, 212, + 212, 213, 214, 215, 216, 217, 217, 218, 218, 219, + 220, 220, 221, 222, 223, 223, 224, 225, 226, 227, + 227, 228, 228, 229, 230, 230, 231, 231, 231, 231, + 232, 232, 233, 233, 233, 235, 234, 237, 236, 238, + 238, 239, 240, 240, 240, 240, 240, 240, 241, 242, + 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, + 245, 246, 246, 247, 247, 248, 248, 249, 250, 251, + 252 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -922,29 +926,30 @@ static const yytype_uint8 yyr2[] = 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 6, 6, 8, 8, 2, 12, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 6, 3, 2, 3, - 2, 2, 7, 2, 1, 1, 1, 1, 4, 1, - 1, 1, 1, 1, 1, 1, 3, 0, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 4, 2, 2, 1, 2, 1, 2, 1, 2, - 4, 4, 1, 0, 3, 1, 1, 2, 1, 2, - 1, 1, 3, 6, 0, 1, 2, 4, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 1, 1, 1, 5, 1, 1, 1, - 2, 1, 1, 2, 1, 2, 6, 1, 3, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 5, 1, 2, 1, 1, 5, - 2, 0, 6, 3, 0, 1, 1, 1, 1, 1, - 2, 1, 1, 2, 4, 4, 0, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 5, 1, 3, 5, - 5, 1, 3, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 5, 7, 9, 2, 2, 1, - 1, 0, 0, 3, 0, 3, 3, 1, 4, 2, - 2, 2, 2, 3, 2, 3, 0, 1, 1, 0, - 1, 1, 0, 1, 1, 0, 1, 1, 0, 3, - 0, 3, 0, 3, 1, 1, 1, 4 + 1, 1, 1, 1, 1, 1, 6, 2, 4, 2, + 1, 3, 5, 2, 2, 7, 2, 1, 1, 1, + 1, 4, 1, 1, 1, 1, 1, 1, 1, 3, + 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, + 1, 1, 1, 1, 4, 2, 2, 1, 2, 1, + 2, 1, 2, 4, 4, 1, 0, 3, 1, 1, + 2, 1, 2, 1, 1, 3, 6, 0, 1, 2, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 1, 1, 1, 5, + 1, 1, 1, 2, 1, 1, 2, 1, 2, 6, + 1, 3, 1, 1, 1, 1, 1, 4, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 5, 1, 2, + 1, 1, 5, 2, 0, 6, 3, 0, 1, 1, + 1, 1, 1, 2, 1, 1, 2, 4, 4, 0, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 5, + 1, 3, 5, 5, 1, 3, 5, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 5, 7, 9, + 2, 2, 1, 1, 0, 0, 3, 0, 3, 3, + 1, 4, 2, 2, 2, 2, 3, 2, 3, 0, + 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, + 1, 0, 3, 0, 3, 0, 3, 1, 1, 1, + 4 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -953,276 +958,283 @@ static const yytype_uint8 yyr2[] = static const yytype_uint16 yydefact[] = { 0, 3, 4, 0, 6, 1, 9, 0, 5, 0, - 0, 234, 0, 0, 0, 0, 232, 2, 0, 0, - 0, 0, 0, 0, 0, 231, 0, 0, 8, 0, + 0, 237, 0, 0, 0, 0, 235, 2, 0, 0, + 0, 0, 0, 0, 0, 234, 0, 0, 8, 0, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, - 23, 20, 0, 85, 86, 110, 111, 87, 88, 89, - 90, 7, 0, 0, 0, 0, 0, 0, 0, 61, - 0, 84, 60, 0, 0, 0, 0, 0, 72, 0, - 0, 229, 230, 31, 0, 0, 0, 10, 11, 237, - 235, 0, 0, 0, 114, 231, 112, 233, 246, 244, - 240, 242, 239, 258, 241, 231, 80, 81, 82, 83, - 50, 231, 231, 231, 231, 231, 231, 74, 51, 222, - 221, 0, 0, 0, 0, 56, 231, 79, 0, 57, - 59, 123, 124, 202, 203, 125, 218, 219, 0, 231, - 0, 267, 91, 238, 115, 0, 116, 120, 121, 122, - 216, 217, 220, 0, 248, 247, 249, 0, 243, 0, - 0, 0, 0, 26, 0, 25, 24, 255, 108, 106, - 258, 93, 0, 0, 0, 0, 0, 0, 252, 0, - 252, 0, 0, 262, 258, 131, 132, 133, 134, 136, - 135, 137, 138, 139, 140, 0, 141, 255, 98, 0, - 96, 94, 258, 0, 103, 92, 0, 77, 76, 78, - 49, 0, 0, 0, 236, 0, 228, 227, 250, 251, - 245, 264, 0, 231, 231, 0, 48, 0, 231, 256, - 257, 107, 109, 0, 0, 0, 201, 172, 173, 171, - 0, 154, 254, 253, 153, 0, 0, 0, 0, 196, - 192, 0, 191, 258, 184, 178, 177, 176, 0, 0, - 0, 0, 97, 0, 99, 0, 0, 95, 231, 223, - 65, 0, 63, 64, 0, 231, 231, 0, 113, 259, - 28, 27, 75, 47, 260, 0, 0, 214, 0, 215, - 0, 175, 0, 163, 0, 155, 0, 160, 161, 144, - 145, 162, 142, 143, 0, 198, 190, 197, 0, 193, - 186, 188, 187, 183, 185, 266, 0, 159, 158, 165, - 166, 0, 0, 105, 0, 102, 0, 0, 0, 58, - 73, 67, 46, 0, 0, 0, 231, 0, 33, 0, - 231, 209, 213, 0, 0, 252, 200, 0, 199, 0, - 263, 170, 169, 167, 168, 164, 189, 0, 100, 101, - 104, 231, 224, 0, 0, 66, 231, 54, 55, 53, - 231, 0, 0, 0, 118, 126, 129, 127, 204, 205, - 128, 265, 0, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 30, 29, 174, 149, 151, - 148, 0, 146, 147, 0, 195, 194, 179, 0, 70, - 68, 71, 69, 0, 0, 0, 0, 130, 181, 231, - 117, 261, 152, 150, 156, 157, 231, 225, 231, 0, - 0, 0, 0, 180, 119, 0, 0, 0, 0, 207, - 0, 211, 0, 226, 231, 0, 206, 0, 210, 0, - 0, 52, 32, 208, 212, 0, 0, 182 + 23, 20, 0, 88, 89, 113, 114, 90, 91, 92, + 93, 7, 0, 0, 0, 0, 0, 0, 0, 64, + 0, 87, 63, 0, 0, 0, 0, 0, 75, 0, + 0, 232, 233, 31, 0, 0, 0, 10, 11, 240, + 238, 0, 0, 0, 117, 234, 115, 236, 249, 247, + 243, 245, 242, 261, 244, 234, 83, 84, 85, 86, + 53, 234, 234, 234, 234, 234, 234, 77, 54, 225, + 224, 0, 0, 0, 0, 59, 0, 234, 82, 0, + 60, 62, 126, 127, 205, 206, 128, 221, 222, 0, + 234, 0, 270, 94, 241, 118, 0, 119, 123, 124, + 125, 219, 220, 223, 0, 251, 250, 252, 0, 246, + 0, 0, 0, 0, 26, 0, 25, 24, 258, 111, + 109, 261, 96, 0, 0, 0, 0, 0, 0, 255, + 0, 255, 0, 0, 265, 261, 134, 135, 136, 137, + 139, 138, 140, 141, 142, 143, 0, 144, 258, 101, + 0, 99, 97, 261, 0, 106, 95, 82, 0, 80, + 79, 81, 51, 0, 0, 0, 239, 0, 231, 230, + 253, 254, 248, 267, 0, 234, 234, 0, 47, 0, + 50, 0, 234, 259, 260, 110, 112, 0, 0, 0, + 204, 175, 176, 174, 0, 157, 257, 256, 156, 0, + 0, 0, 0, 199, 195, 0, 194, 261, 187, 181, + 180, 179, 0, 0, 0, 0, 100, 0, 102, 0, + 0, 98, 0, 234, 226, 68, 0, 66, 67, 0, + 234, 234, 0, 116, 262, 28, 27, 0, 78, 49, + 263, 0, 0, 217, 0, 218, 0, 178, 0, 166, + 0, 158, 0, 163, 164, 147, 148, 165, 145, 146, + 0, 201, 193, 200, 0, 196, 189, 191, 190, 186, + 188, 269, 0, 162, 161, 168, 169, 0, 0, 108, + 0, 105, 0, 0, 52, 0, 61, 76, 70, 46, + 0, 0, 0, 234, 48, 0, 33, 0, 234, 212, + 216, 0, 0, 255, 203, 0, 202, 0, 266, 173, + 172, 170, 171, 167, 192, 0, 103, 104, 107, 234, + 227, 0, 0, 69, 234, 57, 58, 56, 234, 0, + 0, 0, 121, 129, 132, 130, 207, 208, 131, 268, + 0, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 30, 29, 177, 152, 154, 151, 0, + 149, 150, 0, 198, 197, 182, 0, 73, 71, 74, + 72, 0, 0, 0, 0, 133, 184, 234, 120, 264, + 155, 153, 159, 160, 234, 228, 234, 0, 0, 0, + 0, 183, 122, 0, 0, 0, 0, 210, 0, 214, + 0, 229, 234, 0, 209, 0, 213, 0, 0, 55, + 32, 211, 215, 0, 0, 185 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 3, 4, 6, 8, 9, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 275, - 385, 41, 150, 73, 60, 69, 322, 323, 359, 117, - 61, 118, 261, 262, 263, 355, 400, 402, 70, 321, - 108, 273, 200, 100, 42, 43, 119, 195, 316, 257, - 314, 161, 44, 45, 46, 135, 86, 268, 363, 136, - 120, 364, 365, 121, 175, 292, 176, 392, 413, 177, - 234, 178, 414, 179, 308, 293, 284, 180, 311, 345, - 181, 229, 182, 282, 183, 247, 184, 407, 423, 185, - 303, 304, 347, 244, 296, 297, 339, 337, 186, 122, - 367, 368, 428, 123, 369, 430, 124, 278, 280, 370, - 125, 140, 126, 127, 142, 74, 47, 57, 48, 52, - 80, 49, 62, 94, 146, 210, 235, 221, 148, 328, - 249, 212, 372, 306, 50 + 32, 33, 34, 35, 36, 37, 38, 39, 40, 281, + 393, 41, 151, 218, 73, 60, 69, 329, 330, 367, + 219, 61, 119, 266, 267, 268, 363, 408, 410, 70, + 328, 108, 279, 202, 100, 42, 43, 120, 196, 322, + 261, 320, 162, 44, 45, 46, 136, 86, 273, 371, + 137, 121, 372, 373, 122, 176, 298, 177, 400, 421, + 178, 238, 179, 422, 180, 314, 299, 290, 181, 317, + 353, 182, 233, 183, 288, 184, 251, 185, 415, 431, + 186, 309, 310, 355, 248, 302, 303, 347, 345, 187, + 123, 375, 376, 436, 124, 377, 438, 125, 284, 286, + 378, 126, 141, 127, 128, 143, 74, 47, 57, 48, + 52, 80, 49, 62, 94, 147, 212, 239, 225, 149, + 336, 253, 214, 380, 312, 50 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -399 +#define YYPACT_NINF -403 static const yytype_int16 yypact[] = { - 154, -399, -399, 48, -399, -399, 51, -37, -399, 172, - -2, -399, 17, 31, 42, 47, -399, -399, -33, -33, - -33, -33, -33, -33, 54, 56, -33, -33, -399, 6, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, 52, -399, -399, -399, -399, -399, -399, -399, - -399, -399, 66, 25, 61, 112, -6, 66, 102, -399, - 118, 116, -399, 119, 120, 121, 122, 123, -399, 124, - 130, -399, -399, -399, -16, 126, 127, -399, -399, -399, - 128, 70, -15, 159, 214, -36, -399, 128, 28, -399, - -399, -399, -399, 131, -399, 56, -399, -399, -399, -399, - -399, 56, 56, 56, 56, 56, 56, -399, -399, -399, - -399, 27, 38, 76, -9, 135, 56, 60, 136, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -16, 56, - 147, -399, -399, -399, -399, 137, -399, -399, -399, -399, - -399, -399, -399, 148, -399, -399, 18, 225, -399, 141, - 142, -16, 144, -399, 145, -399, -399, 50, -399, -399, - 131, -399, 146, 149, 150, 187, 7, 151, 43, 152, - 69, 85, -1, 153, 131, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, 190, -399, 50, -399, 155, - -399, -399, 131, 156, 158, -399, 20, -399, -399, -399, - -399, -8, 160, 162, -399, 161, -399, -399, -399, -399, - -399, -399, 163, 56, 56, 169, 173, 171, 56, -399, - -399, -399, -399, 234, 240, 252, -399, -399, -399, -399, - 254, -399, -399, -399, -399, 211, 254, 2, 170, 257, - -399, 174, -399, 131, 12, -399, -399, -399, 258, 253, - -5, 175, -399, 262, -399, 263, 262, -399, 56, -399, - -399, 177, -399, -399, 185, 56, 56, 176, -399, -399, - -399, -399, -399, -399, 180, 183, 184, -399, 186, -399, - 189, -399, 191, -399, 192, -399, 194, -399, -399, -399, - -399, -399, -399, -399, 270, -399, -399, -399, 271, -399, - -399, -399, -399, -399, -399, -399, 195, -399, -399, -399, - -399, 143, 272, -399, 196, -399, 197, 198, 34, -399, - -399, 101, -399, 201, -4, 202, -12, 274, -399, 111, - 56, -399, -399, 241, 84, 69, -399, 203, -399, 204, - -399, -399, -399, -399, -399, -399, -399, 205, -399, -399, - -399, 56, -399, 277, 288, -399, 56, -399, -399, -399, - 56, 80, 76, 35, -399, -399, -399, -399, -399, -399, - -399, -399, 206, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, 280, -399, -399, 14, -399, -399, -399, 39, -399, - -399, -399, -399, 209, 210, 212, 213, -399, 261, -12, - -399, -399, -399, -399, -399, -399, 56, -399, 56, 171, - 234, 240, 219, -399, -399, 208, 221, 222, 224, 215, - 226, 227, 272, -399, 56, 111, -399, 234, -399, 240, - -13, -399, -399, -399, -399, 272, 228, -399 + 62, -403, -403, 41, -403, -403, 81, -36, -403, 198, + -8, -403, -5, 18, 20, 35, -403, -403, -23, -23, + -23, -23, -23, -23, 45, 131, -23, -23, -403, 58, + -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, + -403, -403, 67, -403, -403, -403, -403, -403, -403, -403, + -403, -403, 63, 86, 92, 128, 84, 63, 99, -403, + 69, 133, -403, 87, 89, 129, 145, 146, -403, 147, + 154, -403, -403, -403, -13, 150, 151, -403, -403, -403, + 152, 162, -14, 197, 240, -34, -403, 152, 98, -403, + -403, -403, -403, 155, -403, 131, -403, -403, -403, -403, + -403, 131, 131, 131, 131, 131, 131, -403, -403, -403, + -403, 72, 105, 77, 17, 156, 12, 131, 68, 157, + -403, -403, -403, -403, -403, -403, -403, -403, -403, 12, + 131, 165, -403, -403, -403, -403, 158, -403, -403, -403, + -403, -403, -403, -403, 223, -403, -403, -16, 245, -403, + 163, 164, -9, 167, -403, 168, -403, -403, 55, -403, + -403, 155, -403, 170, 171, 172, 206, 2, 173, 34, + 174, 127, 112, 1, 175, 155, -403, -403, -403, -403, + -403, -403, -403, -403, -403, -403, 207, -403, 55, -403, + 177, -403, -403, 155, 178, 179, -403, 68, 22, -403, + -403, -403, -403, -6, 169, 182, -403, 180, -403, -403, + -403, -403, -403, -403, 181, 131, 131, 12, -403, 188, + 190, 195, 131, -403, -403, -403, -403, 272, 273, 274, + -403, -403, -403, -403, 275, -403, -403, -403, -403, 232, + 275, 79, 191, 277, -403, 192, -403, 155, 15, -403, + -403, -403, 280, 276, 8, 194, -403, 283, -403, 284, + 283, -403, 199, 131, -403, -403, 200, -403, -403, 209, + 131, 131, 201, -403, -403, -403, -403, 204, -403, -403, + 205, 210, 211, -403, 203, -403, 212, -403, 213, -403, + 214, -403, 215, -403, -403, -403, -403, -403, -403, -403, + 286, -403, -403, -403, 294, -403, -403, -403, -403, -403, + -403, -403, 216, -403, -403, -403, -403, 161, 297, -403, + 217, -403, 218, 219, -403, 76, -403, -403, 139, -403, + 227, -4, 228, 30, -403, 298, -403, 137, 131, -403, + -403, 265, 130, 127, -403, 220, -403, 226, -403, -403, + -403, -403, -403, -403, -403, 229, -403, -403, -403, 131, + -403, 315, 319, -403, 131, -403, -403, -403, 131, 123, + 77, 80, -403, -403, -403, -403, -403, -403, -403, -403, + 233, -403, -403, -403, -403, -403, -403, -403, -403, -403, + -403, -403, -403, -403, -403, -403, -403, -403, -403, 311, + -403, -403, 9, -403, -403, -403, 83, -403, -403, -403, + -403, 237, 238, 239, 241, -403, 281, 30, -403, -403, + -403, -403, -403, -403, 131, -403, 131, 195, 272, 273, + 242, -403, -403, 234, 246, 247, 248, 243, 249, 251, + 297, -403, 131, 137, -403, 272, -403, 273, 36, -403, + -403, -403, -403, 297, 250, -403 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -100, - -98, -399, -97, -91, 188, -399, -399, -344, -399, -99, - -399, -399, -399, -399, -399, -399, -399, -399, 134, -399, - -399, -399, -399, -399, -399, -399, 259, -399, -399, -399, - 83, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -69, -399, -84, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -317, 106, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -19, - -399, -399, -398, -399, -399, -399, -399, -399, -399, 260, - -399, -399, -399, -399, -399, -399, -399, -377, -381, 265, - -399, -399, 193, -83, -113, -85, -399, -399, -399, -399, - 289, -399, 264, -399, -399, -399, -165, 164, -150, -399, - -399, -399, -399, -399, -399 + -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, + -403, -403, -403, -403, -403, -403, -403, -403, -403, -74, + -81, -403, -98, 141, -82, 160, -403, -403, -358, -403, + -41, -403, -403, -403, -403, -403, -403, -403, -403, 166, + -403, -403, -403, 176, -403, -403, -403, 282, -403, -403, + -403, 103, -403, -403, -403, -403, -403, -403, -403, -403, + -403, -403, -52, -403, -84, -403, -403, -403, -403, -403, + -403, -403, -403, -403, -403, -403, -333, 126, -403, -403, + -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, + -3, -403, -403, -402, -403, -403, -403, -403, -403, -403, + 285, -403, -403, -403, -403, -403, -403, -403, -398, -392, + 287, -403, -403, -145, -83, -114, -85, -403, -403, -403, + -403, 314, -403, 291, -403, -403, -403, -167, 187, -149, + -403, -403, -403, -403, -403, -403 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -219 +#define YYTABLE_NINF -222 static const yytype_int16 yytable[] = { - 143, 137, 141, 196, 149, 237, 153, 109, 110, 156, - 222, 152, 403, 154, 155, 260, 151, 393, 151, 357, - 187, 151, 111, 111, 250, 245, 112, 287, 188, 202, - 309, 143, 58, 288, 440, 289, 227, 113, 203, 287, - 431, 189, 254, 429, 190, 288, 112, 446, 5, 310, - 361, 191, 215, 300, 301, 144, 157, 113, 444, 7, - 443, 362, 10, 228, 158, 192, 59, 145, 231, 246, - 232, 290, 162, 291, 426, 71, 72, 415, 116, 208, - 114, 114, 233, 115, 163, 291, 209, 159, 193, 194, - 441, 68, 445, 299, 302, 358, 232, 397, 116, 71, - 72, 160, 116, 84, 164, 51, 165, 85, 233, 287, - 388, 219, 166, 77, 405, 288, 53, 271, 220, 167, - 168, 169, 270, 170, 389, 171, 406, 276, 258, 151, - 54, 88, 89, 238, 172, 259, 239, 240, 81, 90, - 241, 55, 351, 409, 390, 318, 56, 416, 242, 352, - 410, 173, 174, 68, 417, 291, 391, 1, 2, 78, - 197, 91, 92, 198, 199, 79, 243, 71, 72, 131, - 394, 206, 207, 143, 82, 325, 93, 11, 12, 13, - 324, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 63, 64, 65, - 66, 67, 353, 354, 75, 76, 96, 97, 98, 99, - 341, 342, 343, 344, 58, 83, 95, 101, 102, 103, - 104, 105, 106, 107, 128, 129, 130, 134, 398, 386, - 147, 143, 366, 141, -62, 201, 204, 205, 211, 213, - 214, 226, 217, 218, 274, 223, 251, 277, 224, 225, - 230, 236, 248, 279, 253, 255, 143, 256, 265, 404, - 266, 324, 272, 269, 267, 281, -218, 283, 285, 294, - 295, 305, 307, 298, 312, 313, 315, 319, 320, 327, - 326, 329, 330, 336, 338, 346, 331, 371, 387, 332, - 399, 333, 334, 425, 335, 340, 348, 349, 350, 356, - 360, 401, 412, 395, 396, 397, 411, 418, 419, 427, - 437, 420, 421, 433, 143, 366, 141, 422, 432, 434, - 435, 143, 439, 324, 436, 264, 438, 442, 447, 317, - 424, 132, 286, 408, 216, 138, 87, 133, 0, 324, - 139, 252 + 144, 138, 142, 198, 241, 154, 411, 220, 157, 401, + 109, 110, 226, 150, 109, 110, 152, 265, 152, 365, + 153, 152, 155, 156, 111, 111, 254, 249, 112, 111, + 437, 231, 144, 118, 293, 109, 110, 439, 448, 113, + 294, 5, 58, 315, 258, 210, 188, 451, 205, 112, + 111, 454, 211, 112, 189, 452, 306, 307, 232, 235, + 113, 236, 316, 10, 113, 1, 2, 190, 434, 423, + 191, 250, 220, 237, 112, 197, 59, 192, 71, 72, + 297, 117, 114, 114, 449, 113, 115, 114, 204, 7, + 115, 193, 369, 68, 53, 366, 116, 308, 305, 51, + 217, 158, 117, 370, 293, 165, 117, 166, 114, 159, + 294, 115, 295, 167, 194, 195, 223, 54, 276, 55, + 168, 169, 170, 224, 171, 145, 172, 117, 88, 89, + 263, 152, 160, 275, 56, 173, 90, 146, 264, 163, + 282, 453, 71, 72, 68, 117, 161, 405, 296, 325, + 297, 164, 174, 175, 236, 293, 396, 413, 91, 92, + 242, 294, 79, 243, 244, 77, 237, 245, 199, 414, + 397, 200, 201, 93, 78, 246, 402, 95, 144, 63, + 64, 65, 66, 67, 359, 331, 75, 76, 417, 332, + 398, 424, 360, 247, 84, 101, 418, 102, 85, 425, + 81, 297, 399, 11, 12, 13, 82, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 96, 97, 98, 99, 103, 349, 350, + 351, 352, 83, 71, 72, 406, 208, 209, 144, 374, + 142, 361, 362, 104, 105, 106, 394, 107, 129, 130, + 131, 132, 58, 135, 206, 148, -65, 203, 213, 207, + 230, 215, 216, 255, 144, 221, 222, 270, 280, 331, + 227, 228, 229, 234, 240, 252, 412, 257, 259, 260, + 271, 278, 274, -221, 272, 283, 285, 287, 289, 291, + 301, 300, 304, 311, 318, 313, 319, 321, 324, 344, + 433, 326, 327, 334, 339, 335, 333, 346, 337, 338, + 354, 379, 395, 340, 341, 342, 343, 348, 356, 357, + 358, 403, 144, 374, 142, 364, 368, 404, 407, 144, + 405, 331, 409, 420, 419, 426, 427, 430, 445, 428, + 441, 429, 440, 435, 442, 443, 447, 331, 277, 444, + 446, 455, 450, 323, 133, 432, 292, 416, 0, 269, + 139, 87, 140, 262, 134, 256 }; static const yytype_int16 yycheck[] = { - 85, 85, 85, 116, 95, 170, 103, 23, 24, 106, - 160, 102, 356, 104, 105, 23, 101, 334, 103, 23, - 29, 106, 38, 38, 174, 26, 62, 25, 37, 128, - 35, 116, 65, 31, 432, 33, 29, 73, 129, 25, - 421, 50, 192, 420, 53, 31, 62, 445, 0, 54, - 62, 60, 151, 41, 42, 27, 29, 73, 439, 8, - 437, 73, 99, 56, 37, 74, 99, 39, 25, 70, - 27, 69, 34, 71, 418, 111, 112, 394, 114, 61, - 96, 96, 39, 99, 46, 71, 68, 60, 97, 98, - 434, 99, 105, 243, 82, 99, 27, 110, 114, 111, - 112, 74, 114, 109, 28, 107, 30, 113, 39, 25, - 26, 61, 36, 107, 34, 31, 99, 214, 68, 43, - 44, 45, 213, 47, 40, 49, 46, 218, 108, 214, - 99, 29, 30, 48, 58, 115, 51, 52, 113, 37, - 55, 99, 108, 108, 60, 258, 99, 108, 63, 115, - 115, 75, 76, 99, 115, 71, 72, 3, 4, 107, - 100, 59, 60, 103, 104, 99, 81, 111, 112, 99, - 335, 23, 24, 258, 113, 266, 74, 5, 6, 7, - 265, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 19, 20, 21, - 22, 23, 111, 112, 26, 27, 100, 101, 102, 103, - 77, 78, 79, 80, 65, 113, 108, 108, 108, 108, - 108, 108, 108, 103, 108, 108, 108, 23, 351, 330, - 109, 326, 326, 326, 109, 109, 99, 110, 23, 108, - 108, 64, 108, 108, 83, 109, 66, 23, 109, 109, - 109, 109, 109, 23, 109, 109, 351, 109, 108, 360, - 108, 356, 103, 110, 113, 23, 103, 23, 67, 109, - 23, 23, 29, 109, 109, 23, 23, 110, 103, 109, - 114, 108, 108, 23, 23, 23, 110, 23, 57, 110, - 23, 110, 110, 416, 110, 110, 110, 110, 110, 108, - 108, 23, 32, 110, 110, 110, 110, 108, 108, 419, - 105, 109, 109, 115, 409, 409, 409, 66, 109, 108, - 108, 416, 105, 418, 110, 201, 110, 435, 110, 256, - 409, 82, 236, 362, 151, 85, 57, 83, -1, 434, - 85, 187 + 85, 85, 85, 117, 171, 103, 364, 152, 106, 342, + 23, 24, 161, 95, 23, 24, 101, 23, 103, 23, + 102, 106, 104, 105, 38, 38, 175, 26, 62, 38, + 428, 29, 117, 74, 25, 23, 24, 429, 440, 73, + 31, 0, 65, 35, 193, 61, 29, 445, 130, 62, + 38, 453, 68, 62, 37, 447, 41, 42, 56, 25, + 73, 27, 54, 99, 73, 3, 4, 50, 426, 402, + 53, 70, 217, 39, 62, 116, 99, 60, 112, 113, + 71, 115, 96, 96, 442, 73, 99, 96, 129, 8, + 99, 74, 62, 99, 99, 99, 109, 82, 247, 107, + 109, 29, 115, 73, 25, 28, 115, 30, 96, 37, + 31, 99, 33, 36, 97, 98, 61, 99, 216, 99, + 43, 44, 45, 68, 47, 27, 49, 115, 29, 30, + 108, 216, 60, 215, 99, 58, 37, 39, 116, 34, + 222, 105, 112, 113, 99, 115, 74, 111, 69, 263, + 71, 46, 75, 76, 27, 25, 26, 34, 59, 60, + 48, 31, 99, 51, 52, 107, 39, 55, 100, 46, + 40, 103, 104, 74, 107, 63, 343, 108, 263, 19, + 20, 21, 22, 23, 108, 270, 26, 27, 108, 271, + 60, 108, 116, 81, 110, 108, 116, 108, 114, 116, + 114, 71, 72, 5, 6, 7, 114, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 100, 101, 102, 103, 108, 77, 78, + 79, 80, 114, 112, 113, 359, 23, 24, 333, 333, + 333, 112, 113, 108, 108, 108, 338, 103, 108, 108, + 108, 99, 65, 23, 99, 110, 110, 110, 23, 111, + 64, 108, 108, 66, 359, 108, 108, 108, 83, 364, + 110, 110, 110, 110, 110, 110, 368, 110, 110, 110, + 108, 103, 111, 103, 114, 23, 23, 23, 23, 67, + 23, 110, 110, 23, 110, 29, 23, 23, 109, 23, + 424, 111, 103, 109, 111, 110, 115, 23, 108, 108, + 23, 23, 57, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 417, 417, 417, 108, 108, 111, 23, 424, + 111, 426, 23, 32, 111, 108, 108, 66, 105, 110, + 116, 110, 110, 427, 108, 108, 105, 442, 217, 111, + 111, 111, 443, 260, 82, 417, 240, 370, -1, 203, + 85, 57, 85, 197, 83, 188 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 4, 117, 118, 0, 119, 8, 120, 121, + 0, 3, 4, 118, 119, 0, 120, 8, 121, 122, 99, 5, 6, 7, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 137, 160, 161, 168, 169, 170, 232, 234, 237, - 250, 107, 235, 99, 99, 99, 99, 233, 65, 99, - 140, 146, 238, 140, 140, 140, 140, 140, 99, 141, - 154, 111, 112, 139, 231, 140, 140, 107, 107, 99, - 236, 113, 113, 113, 109, 113, 172, 236, 29, 30, - 37, 59, 60, 74, 239, 108, 100, 101, 102, 103, - 159, 108, 108, 108, 108, 108, 108, 103, 156, 23, - 24, 38, 62, 73, 96, 99, 114, 145, 147, 162, - 176, 179, 215, 219, 222, 226, 228, 229, 108, 108, - 108, 99, 162, 238, 23, 171, 175, 179, 215, 225, - 227, 229, 230, 231, 27, 39, 240, 109, 244, 139, - 138, 231, 139, 138, 139, 139, 138, 29, 37, 60, - 74, 167, 34, 46, 28, 30, 36, 43, 44, 45, - 47, 49, 58, 75, 76, 180, 182, 185, 187, 189, - 193, 196, 198, 200, 202, 205, 214, 29, 37, 50, - 53, 60, 74, 97, 98, 163, 230, 100, 103, 104, - 158, 109, 145, 139, 99, 110, 23, 24, 61, 68, - 241, 23, 247, 108, 108, 145, 228, 108, 108, 61, - 68, 243, 244, 109, 109, 109, 64, 29, 56, 197, - 109, 25, 27, 39, 186, 242, 109, 242, 48, 51, - 52, 55, 63, 81, 209, 26, 70, 201, 109, 246, - 244, 66, 243, 109, 244, 109, 109, 165, 108, 115, - 23, 148, 149, 150, 154, 108, 108, 113, 173, 110, - 139, 138, 103, 157, 83, 135, 139, 23, 223, 23, - 224, 23, 199, 23, 192, 67, 192, 25, 31, 33, - 69, 71, 181, 191, 109, 23, 210, 211, 109, 244, - 41, 42, 82, 206, 207, 23, 249, 29, 190, 35, - 54, 194, 109, 23, 166, 23, 164, 166, 230, 110, - 103, 155, 142, 143, 231, 139, 114, 109, 245, 108, - 108, 110, 110, 110, 110, 110, 23, 213, 23, 212, - 110, 77, 78, 79, 80, 195, 23, 208, 110, 110, - 110, 108, 115, 111, 112, 151, 108, 23, 99, 144, - 108, 62, 73, 174, 177, 178, 179, 216, 217, 220, - 225, 23, 248, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 136, 139, 57, 26, 40, - 60, 72, 183, 191, 242, 110, 110, 110, 230, 23, - 152, 23, 153, 143, 139, 34, 46, 203, 205, 108, - 115, 110, 32, 184, 188, 191, 108, 115, 108, 108, - 109, 109, 66, 204, 177, 230, 143, 135, 218, 223, - 221, 224, 109, 115, 108, 108, 110, 105, 110, 105, - 208, 143, 136, 223, 224, 105, 208, 110 + 15, 16, 17, 18, 19, 20, 21, 22, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 138, 162, 163, 170, 171, 172, 234, 236, 239, + 252, 107, 237, 99, 99, 99, 99, 235, 65, 99, + 142, 148, 240, 142, 142, 142, 142, 142, 99, 143, + 156, 112, 113, 141, 233, 142, 142, 107, 107, 99, + 238, 114, 114, 114, 110, 114, 174, 238, 29, 30, + 37, 59, 60, 74, 241, 108, 100, 101, 102, 103, + 161, 108, 108, 108, 108, 108, 108, 103, 158, 23, + 24, 38, 62, 73, 96, 99, 109, 115, 147, 149, + 164, 178, 181, 217, 221, 224, 228, 230, 231, 108, + 108, 108, 99, 164, 240, 23, 173, 177, 181, 217, + 227, 229, 231, 232, 233, 27, 39, 242, 110, 246, + 141, 139, 233, 141, 139, 141, 141, 139, 29, 37, + 60, 74, 169, 34, 46, 28, 30, 36, 43, 44, + 45, 47, 49, 58, 75, 76, 182, 184, 187, 189, + 191, 195, 198, 200, 202, 204, 207, 216, 29, 37, + 50, 53, 60, 74, 97, 98, 165, 147, 232, 100, + 103, 104, 160, 110, 147, 141, 99, 111, 23, 24, + 61, 68, 243, 23, 249, 108, 108, 109, 140, 147, + 230, 108, 108, 61, 68, 245, 246, 110, 110, 110, + 64, 29, 56, 199, 110, 25, 27, 39, 188, 244, + 110, 244, 48, 51, 52, 55, 63, 81, 211, 26, + 70, 203, 110, 248, 246, 66, 245, 110, 246, 110, + 110, 167, 160, 108, 116, 23, 150, 151, 152, 156, + 108, 108, 114, 175, 111, 141, 139, 140, 103, 159, + 83, 136, 141, 23, 225, 23, 226, 23, 201, 23, + 194, 67, 194, 25, 31, 33, 69, 71, 183, 193, + 110, 23, 212, 213, 110, 246, 41, 42, 82, 208, + 209, 23, 251, 29, 192, 35, 54, 196, 110, 23, + 168, 23, 166, 168, 109, 232, 111, 103, 157, 144, + 145, 233, 141, 115, 109, 110, 247, 108, 108, 111, + 111, 111, 111, 111, 23, 215, 23, 214, 111, 77, + 78, 79, 80, 197, 23, 210, 111, 111, 111, 108, + 116, 112, 113, 153, 108, 23, 99, 146, 108, 62, + 73, 176, 179, 180, 181, 218, 219, 222, 227, 23, + 250, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 137, 141, 57, 26, 40, 60, 72, + 185, 193, 244, 111, 111, 111, 232, 23, 154, 23, + 155, 145, 141, 34, 46, 205, 207, 108, 116, 111, + 32, 186, 190, 193, 108, 116, 108, 108, 110, 110, + 66, 206, 179, 232, 145, 136, 220, 225, 223, 226, + 110, 116, 108, 108, 111, 105, 111, 105, 210, 145, + 137, 225, 226, 105, 210, 111 }; #define yyerrok (yyerrstatus = 0) @@ -2445,32 +2457,61 @@ yyreduce: /* Line 1455 of yacc.c */ #line 527 "program_parse.y" { - (yyval.src_reg) = (yyvsp[(2) - (3)].src_reg); + (yyval.src_reg) = (yyvsp[(2) - (2)].src_reg); - if ((yyvsp[(1) - (3)].negate)) { + if ((yyvsp[(1) - (2)].negate)) { + (yyval.src_reg).Base.Negate = ~(yyval.src_reg).Base.Negate; + } + ;} + break; + + case 48: + +/* Line 1455 of yacc.c */ +#line 535 "program_parse.y" + { + (yyval.src_reg) = (yyvsp[(3) - (4)].src_reg); + + if (!state->option.NV_fragment) { + yyerror(& (yylsp[(2) - (4)]), state, "unexpected character '|'"); + YYERROR; + } + + if ((yyvsp[(1) - (4)].negate)) { (yyval.src_reg).Base.Negate = ~(yyval.src_reg).Base.Negate; } + (yyval.src_reg).Base.Abs = 1; + ;} + break; + + case 49: + +/* Line 1455 of yacc.c */ +#line 552 "program_parse.y" + { + (yyval.src_reg) = (yyvsp[(1) - (2)].src_reg); + (yyval.src_reg).Base.Swizzle = _mesa_combine_swizzles((yyval.src_reg).Base.Swizzle, - (yyvsp[(3) - (3)].swiz_mask).swizzle); + (yyvsp[(2) - (2)].swiz_mask).swizzle); ;} break; - case 48: + case 50: /* Line 1455 of yacc.c */ -#line 538 "program_parse.y" +#line 559 "program_parse.y" { struct asm_symbol temp_sym; if (!state->option.NV_fragment) { - yyerror(& (yylsp[(2) - (2)]), state, "expected scalar suffix"); + yyerror(& (yylsp[(1) - (1)]), state, "expected scalar suffix"); YYERROR; } memset(& temp_sym, 0, sizeof(temp_sym)); temp_sym.param_binding_begin = ~0; - initialize_symbol_from_const(state->prog, & temp_sym, & (yyvsp[(2) - (2)].vector)); + initialize_symbol_from_const(state->prog, & temp_sym, & (yyvsp[(1) - (1)].vector)); init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = PROGRAM_CONSTANT; @@ -2478,10 +2519,10 @@ yyreduce: ;} break; - case 49: + case 51: /* Line 1455 of yacc.c */ -#line 557 "program_parse.y" +#line 578 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (3)].src_reg); @@ -2494,10 +2535,32 @@ yyreduce: ;} break; - case 50: + case 52: + +/* Line 1455 of yacc.c */ +#line 589 "program_parse.y" + { + (yyval.src_reg) = (yyvsp[(3) - (5)].src_reg); + + if (!state->option.NV_fragment) { + yyerror(& (yylsp[(2) - (5)]), state, "unexpected character '|'"); + YYERROR; + } + + if ((yyvsp[(1) - (5)].negate)) { + (yyval.src_reg).Base.Negate = ~(yyval.src_reg).Base.Negate; + } + + (yyval.src_reg).Base.Abs = 1; + (yyval.src_reg).Base.Swizzle = _mesa_combine_swizzles((yyval.src_reg).Base.Swizzle, + (yyvsp[(4) - (5)].swiz_mask).swizzle); + ;} + break; + + case 53: /* Line 1455 of yacc.c */ -#line 570 "program_parse.y" +#line 609 "program_parse.y" { (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg); (yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask; @@ -2519,10 +2582,10 @@ yyreduce: ;} break; - case 51: + case 54: /* Line 1455 of yacc.c */ -#line 592 "program_parse.y" +#line 631 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_ADDRESS; @@ -2531,10 +2594,10 @@ yyreduce: ;} break; - case 52: + case 55: /* Line 1455 of yacc.c */ -#line 601 "program_parse.y" +#line 640 "program_parse.y" { const unsigned xyzw_valid = ((yyvsp[(1) - (7)].ext_swizzle).xyzw_valid << 0) @@ -2567,20 +2630,20 @@ yyreduce: ;} break; - case 53: + case 56: /* Line 1455 of yacc.c */ -#line 634 "program_parse.y" +#line 673 "program_parse.y" { (yyval.ext_swizzle) = (yyvsp[(2) - (2)].ext_swizzle); (yyval.ext_swizzle).negate = ((yyvsp[(1) - (2)].negate)) ? 1 : 0; ;} break; - case 54: + case 57: /* Line 1455 of yacc.c */ -#line 641 "program_parse.y" +#line 680 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2597,10 +2660,10 @@ yyreduce: ;} break; - case 55: + case 58: /* Line 1455 of yacc.c */ -#line 656 "program_parse.y" +#line 695 "program_parse.y" { if (strlen((yyvsp[(1) - (1)].string)) > 1) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2650,10 +2713,10 @@ yyreduce: ;} break; - case 56: + case 59: /* Line 1455 of yacc.c */ -#line 706 "program_parse.y" +#line 745 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2697,10 +2760,10 @@ yyreduce: ;} break; - case 57: + case 60: /* Line 1455 of yacc.c */ -#line 748 "program_parse.y" +#line 787 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = PROGRAM_INPUT; @@ -2713,10 +2776,10 @@ yyreduce: ;} break; - case 58: + case 61: /* Line 1455 of yacc.c */ -#line 759 "program_parse.y" +#line 798 "program_parse.y" { if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr && ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) { @@ -2739,10 +2802,10 @@ yyreduce: ;} break; - case 59: + case 62: /* Line 1455 of yacc.c */ -#line 780 "program_parse.y" +#line 819 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL) @@ -2752,10 +2815,10 @@ yyreduce: ;} break; - case 60: + case 63: /* Line 1455 of yacc.c */ -#line 790 "program_parse.y" +#line 829 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_OUTPUT; @@ -2763,10 +2826,10 @@ yyreduce: ;} break; - case 61: + case 64: /* Line 1455 of yacc.c */ -#line 796 "program_parse.y" +#line 835 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2797,10 +2860,10 @@ yyreduce: ;} break; - case 62: + case 65: /* Line 1455 of yacc.c */ -#line 827 "program_parse.y" +#line 866 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2817,20 +2880,20 @@ yyreduce: ;} break; - case 65: + case 68: /* Line 1455 of yacc.c */ -#line 846 "program_parse.y" +#line 885 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer); ;} break; - case 66: + case 69: /* Line 1455 of yacc.c */ -#line 853 "program_parse.y" +#line 892 "program_parse.y" { /* FINISHME: Add support for multiple address registers. */ @@ -2842,31 +2905,31 @@ yyreduce: ;} break; - case 67: + case 70: /* Line 1455 of yacc.c */ -#line 864 "program_parse.y" +#line 903 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 68: + case 71: /* Line 1455 of yacc.c */ -#line 865 "program_parse.y" +#line 904 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 69: + case 72: /* Line 1455 of yacc.c */ -#line 866 "program_parse.y" +#line 905 "program_parse.y" { (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;} break; - case 70: + case 73: /* Line 1455 of yacc.c */ -#line 870 "program_parse.y" +#line 909 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2878,10 +2941,10 @@ yyreduce: ;} break; - case 71: + case 74: /* Line 1455 of yacc.c */ -#line 882 "program_parse.y" +#line 921 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2893,10 +2956,10 @@ yyreduce: ;} break; - case 72: + case 75: /* Line 1455 of yacc.c */ -#line 894 "program_parse.y" +#line 933 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2914,10 +2977,10 @@ yyreduce: ;} break; - case 73: + case 76: /* Line 1455 of yacc.c */ -#line 912 "program_parse.y" +#line 951 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector"); @@ -2928,10 +2991,10 @@ yyreduce: ;} break; - case 74: + case 77: /* Line 1455 of yacc.c */ -#line 923 "program_parse.y" +#line 962 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2943,24 +3006,24 @@ yyreduce: ;} break; - case 79: + case 82: /* Line 1455 of yacc.c */ -#line 939 "program_parse.y" +#line 978 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; - case 84: + case 87: /* Line 1455 of yacc.c */ -#line 943 "program_parse.y" +#line 982 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; - case 91: + case 94: /* Line 1455 of yacc.c */ -#line 955 "program_parse.y" +#line 994 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)])); @@ -2978,55 +3041,55 @@ yyreduce: ;} break; - case 92: + case 95: /* Line 1455 of yacc.c */ -#line 973 "program_parse.y" +#line 1012 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} break; - case 93: + case 96: /* Line 1455 of yacc.c */ -#line 977 "program_parse.y" +#line 1016 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} break; - case 94: + case 97: /* Line 1455 of yacc.c */ -#line 983 "program_parse.y" +#line 1022 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_POS; ;} break; - case 95: + case 98: /* Line 1455 of yacc.c */ -#line 987 "program_parse.y" +#line 1026 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_WEIGHT; ;} break; - case 96: + case 99: /* Line 1455 of yacc.c */ -#line 991 "program_parse.y" +#line 1030 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_NORMAL; ;} break; - case 97: + case 100: /* Line 1455 of yacc.c */ -#line 995 "program_parse.y" +#line 1034 "program_parse.y" { if (!state->ctx->Extensions.EXT_secondary_color) { yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported"); @@ -3037,10 +3100,10 @@ yyreduce: ;} break; - case 98: + case 101: /* Line 1455 of yacc.c */ -#line 1004 "program_parse.y" +#line 1043 "program_parse.y" { if (!state->ctx->Extensions.EXT_fog_coord) { yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported"); @@ -3051,38 +3114,38 @@ yyreduce: ;} break; - case 99: + case 102: /* Line 1455 of yacc.c */ -#line 1013 "program_parse.y" +#line 1052 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} break; - case 100: + case 103: /* Line 1455 of yacc.c */ -#line 1017 "program_parse.y" +#line 1056 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; ;} break; - case 101: + case 104: /* Line 1455 of yacc.c */ -#line 1022 "program_parse.y" +#line 1061 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer); ;} break; - case 102: + case 105: /* Line 1455 of yacc.c */ -#line 1028 "program_parse.y" +#line 1067 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference"); @@ -3093,46 +3156,46 @@ yyreduce: ;} break; - case 106: + case 109: /* Line 1455 of yacc.c */ -#line 1042 "program_parse.y" +#line 1081 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_WPOS; ;} break; - case 107: + case 110: /* Line 1455 of yacc.c */ -#line 1046 "program_parse.y" +#line 1085 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer); ;} break; - case 108: + case 111: /* Line 1455 of yacc.c */ -#line 1050 "program_parse.y" +#line 1089 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_FOGC; ;} break; - case 109: + case 112: /* Line 1455 of yacc.c */ -#line 1054 "program_parse.y" +#line 1093 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} break; - case 112: + case 115: /* Line 1455 of yacc.c */ -#line 1062 "program_parse.y" +#line 1101 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)])); @@ -3148,10 +3211,10 @@ yyreduce: ;} break; - case 113: + case 116: /* Line 1455 of yacc.c */ -#line 1078 "program_parse.y" +#line 1117 "program_parse.y" { if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) { yyerror(& (yylsp[(4) - (6)]), state, @@ -3173,19 +3236,19 @@ yyreduce: ;} break; - case 114: + case 117: /* Line 1455 of yacc.c */ -#line 1100 "program_parse.y" +#line 1139 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 115: + case 118: /* Line 1455 of yacc.c */ -#line 1104 "program_parse.y" +#line 1143 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size"); @@ -3196,38 +3259,38 @@ yyreduce: ;} break; - case 116: + case 119: /* Line 1455 of yacc.c */ -#line 1115 "program_parse.y" +#line 1154 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym); ;} break; - case 117: + case 120: /* Line 1455 of yacc.c */ -#line 1121 "program_parse.y" +#line 1160 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym); ;} break; - case 119: + case 122: /* Line 1455 of yacc.c */ -#line 1128 "program_parse.y" +#line 1167 "program_parse.y" { (yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length; (yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym); ;} break; - case 120: + case 123: /* Line 1455 of yacc.c */ -#line 1135 "program_parse.y" +#line 1174 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3235,10 +3298,10 @@ yyreduce: ;} break; - case 121: + case 124: /* Line 1455 of yacc.c */ -#line 1141 "program_parse.y" +#line 1180 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3246,10 +3309,10 @@ yyreduce: ;} break; - case 122: + case 125: /* Line 1455 of yacc.c */ -#line 1147 "program_parse.y" +#line 1186 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3257,10 +3320,10 @@ yyreduce: ;} break; - case 123: + case 126: /* Line 1455 of yacc.c */ -#line 1155 "program_parse.y" +#line 1194 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3268,10 +3331,10 @@ yyreduce: ;} break; - case 124: + case 127: /* Line 1455 of yacc.c */ -#line 1161 "program_parse.y" +#line 1200 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3279,10 +3342,10 @@ yyreduce: ;} break; - case 125: + case 128: /* Line 1455 of yacc.c */ -#line 1167 "program_parse.y" +#line 1206 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3290,10 +3353,10 @@ yyreduce: ;} break; - case 126: + case 129: /* Line 1455 of yacc.c */ -#line 1175 "program_parse.y" +#line 1214 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3301,10 +3364,10 @@ yyreduce: ;} break; - case 127: + case 130: /* Line 1455 of yacc.c */ -#line 1181 "program_parse.y" +#line 1220 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3312,10 +3375,10 @@ yyreduce: ;} break; - case 128: + case 131: /* Line 1455 of yacc.c */ -#line 1187 "program_parse.y" +#line 1226 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3323,101 +3386,101 @@ yyreduce: ;} break; - case 129: + case 132: /* Line 1455 of yacc.c */ -#line 1194 "program_parse.y" +#line 1233 "program_parse.y" { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;} break; - case 130: + case 133: /* Line 1455 of yacc.c */ -#line 1195 "program_parse.y" +#line 1234 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 131: + case 134: /* Line 1455 of yacc.c */ -#line 1198 "program_parse.y" +#line 1237 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 132: + case 135: /* Line 1455 of yacc.c */ -#line 1199 "program_parse.y" +#line 1238 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 133: + case 136: /* Line 1455 of yacc.c */ -#line 1200 "program_parse.y" +#line 1239 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 134: + case 137: /* Line 1455 of yacc.c */ -#line 1201 "program_parse.y" +#line 1240 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 135: + case 138: /* Line 1455 of yacc.c */ -#line 1202 "program_parse.y" +#line 1241 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 136: + case 139: /* Line 1455 of yacc.c */ -#line 1203 "program_parse.y" +#line 1242 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 137: + case 140: /* Line 1455 of yacc.c */ -#line 1204 "program_parse.y" +#line 1243 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 138: + case 141: /* Line 1455 of yacc.c */ -#line 1205 "program_parse.y" +#line 1244 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 139: + case 142: /* Line 1455 of yacc.c */ -#line 1206 "program_parse.y" +#line 1245 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 140: + case 143: /* Line 1455 of yacc.c */ -#line 1207 "program_parse.y" +#line 1246 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 141: + case 144: /* Line 1455 of yacc.c */ -#line 1208 "program_parse.y" +#line 1247 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 142: + case 145: /* Line 1455 of yacc.c */ -#line 1212 "program_parse.y" +#line 1251 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_MATERIAL; @@ -3426,37 +3489,37 @@ yyreduce: ;} break; - case 143: + case 146: /* Line 1455 of yacc.c */ -#line 1221 "program_parse.y" +#line 1260 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 144: + case 147: /* Line 1455 of yacc.c */ -#line 1225 "program_parse.y" +#line 1264 "program_parse.y" { (yyval.integer) = STATE_EMISSION; ;} break; - case 145: + case 148: /* Line 1455 of yacc.c */ -#line 1229 "program_parse.y" +#line 1268 "program_parse.y" { (yyval.integer) = STATE_SHININESS; ;} break; - case 146: + case 149: /* Line 1455 of yacc.c */ -#line 1235 "program_parse.y" +#line 1274 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHT; @@ -3465,28 +3528,28 @@ yyreduce: ;} break; - case 147: + case 150: /* Line 1455 of yacc.c */ -#line 1244 "program_parse.y" +#line 1283 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 148: + case 151: /* Line 1455 of yacc.c */ -#line 1248 "program_parse.y" +#line 1287 "program_parse.y" { (yyval.integer) = STATE_POSITION; ;} break; - case 149: + case 152: /* Line 1455 of yacc.c */ -#line 1252 "program_parse.y" +#line 1291 "program_parse.y" { if (!state->ctx->Extensions.EXT_point_parameters) { yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported"); @@ -3497,57 +3560,57 @@ yyreduce: ;} break; - case 150: + case 153: /* Line 1455 of yacc.c */ -#line 1261 "program_parse.y" +#line 1300 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 151: + case 154: /* Line 1455 of yacc.c */ -#line 1265 "program_parse.y" +#line 1304 "program_parse.y" { (yyval.integer) = STATE_HALF_VECTOR; ;} break; - case 152: + case 155: /* Line 1455 of yacc.c */ -#line 1271 "program_parse.y" +#line 1310 "program_parse.y" { (yyval.integer) = STATE_SPOT_DIRECTION; ;} break; - case 153: + case 156: /* Line 1455 of yacc.c */ -#line 1277 "program_parse.y" +#line 1316 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (2)].state)[1]; ;} break; - case 154: + case 157: /* Line 1455 of yacc.c */ -#line 1284 "program_parse.y" +#line 1323 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT; ;} break; - case 155: + case 158: /* Line 1455 of yacc.c */ -#line 1289 "program_parse.y" +#line 1328 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR; @@ -3555,10 +3618,10 @@ yyreduce: ;} break; - case 156: + case 159: /* Line 1455 of yacc.c */ -#line 1297 "program_parse.y" +#line 1336 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTPROD; @@ -3568,10 +3631,10 @@ yyreduce: ;} break; - case 158: + case 161: /* Line 1455 of yacc.c */ -#line 1309 "program_parse.y" +#line 1348 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(3) - (3)].integer); @@ -3579,46 +3642,46 @@ yyreduce: ;} break; - case 159: + case 162: /* Line 1455 of yacc.c */ -#line 1317 "program_parse.y" +#line 1356 "program_parse.y" { (yyval.integer) = STATE_TEXENV_COLOR; ;} break; - case 160: + case 163: /* Line 1455 of yacc.c */ -#line 1323 "program_parse.y" +#line 1362 "program_parse.y" { (yyval.integer) = STATE_AMBIENT; ;} break; - case 161: + case 164: /* Line 1455 of yacc.c */ -#line 1327 "program_parse.y" +#line 1366 "program_parse.y" { (yyval.integer) = STATE_DIFFUSE; ;} break; - case 162: + case 165: /* Line 1455 of yacc.c */ -#line 1331 "program_parse.y" +#line 1370 "program_parse.y" { (yyval.integer) = STATE_SPECULAR; ;} break; - case 163: + case 166: /* Line 1455 of yacc.c */ -#line 1337 "program_parse.y" +#line 1376 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) { yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector"); @@ -3629,10 +3692,10 @@ yyreduce: ;} break; - case 164: + case 167: /* Line 1455 of yacc.c */ -#line 1348 "program_parse.y" +#line 1387 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_TEXGEN; @@ -3641,92 +3704,92 @@ yyreduce: ;} break; - case 165: + case 168: /* Line 1455 of yacc.c */ -#line 1357 "program_parse.y" +#line 1396 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S; ;} break; - case 166: + case 169: /* Line 1455 of yacc.c */ -#line 1361 "program_parse.y" +#line 1400 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_OBJECT_S; ;} break; - case 167: + case 170: /* Line 1455 of yacc.c */ -#line 1366 "program_parse.y" +#line 1405 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S; ;} break; - case 168: + case 171: /* Line 1455 of yacc.c */ -#line 1370 "program_parse.y" +#line 1409 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S; ;} break; - case 169: + case 172: /* Line 1455 of yacc.c */ -#line 1374 "program_parse.y" +#line 1413 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S; ;} break; - case 170: + case 173: /* Line 1455 of yacc.c */ -#line 1378 "program_parse.y" +#line 1417 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S; ;} break; - case 171: + case 174: /* Line 1455 of yacc.c */ -#line 1384 "program_parse.y" +#line 1423 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); ;} break; - case 172: + case 175: /* Line 1455 of yacc.c */ -#line 1391 "program_parse.y" +#line 1430 "program_parse.y" { (yyval.integer) = STATE_FOG_COLOR; ;} break; - case 173: + case 176: /* Line 1455 of yacc.c */ -#line 1395 "program_parse.y" +#line 1434 "program_parse.y" { (yyval.integer) = STATE_FOG_PARAMS; ;} break; - case 174: + case 177: /* Line 1455 of yacc.c */ -#line 1401 "program_parse.y" +#line 1440 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_CLIPPLANE; @@ -3734,10 +3797,10 @@ yyreduce: ;} break; - case 175: + case 178: /* Line 1455 of yacc.c */ -#line 1409 "program_parse.y" +#line 1448 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) { yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector"); @@ -3748,38 +3811,38 @@ yyreduce: ;} break; - case 176: + case 179: /* Line 1455 of yacc.c */ -#line 1420 "program_parse.y" +#line 1459 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); ;} break; - case 177: + case 180: /* Line 1455 of yacc.c */ -#line 1427 "program_parse.y" +#line 1466 "program_parse.y" { (yyval.integer) = STATE_POINT_SIZE; ;} break; - case 178: + case 181: /* Line 1455 of yacc.c */ -#line 1431 "program_parse.y" +#line 1470 "program_parse.y" { (yyval.integer) = STATE_POINT_ATTENUATION; ;} break; - case 179: + case 182: /* Line 1455 of yacc.c */ -#line 1437 "program_parse.y" +#line 1476 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (5)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (5)].state)[1]; @@ -3789,10 +3852,10 @@ yyreduce: ;} break; - case 180: + case 183: /* Line 1455 of yacc.c */ -#line 1447 "program_parse.y" +#line 1486 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (2)].state)[1]; @@ -3802,20 +3865,20 @@ yyreduce: ;} break; - case 181: + case 184: /* Line 1455 of yacc.c */ -#line 1457 "program_parse.y" +#line 1496 "program_parse.y" { (yyval.state)[2] = 0; (yyval.state)[3] = 3; ;} break; - case 182: + case 185: /* Line 1455 of yacc.c */ -#line 1462 "program_parse.y" +#line 1501 "program_parse.y" { /* It seems logical that the matrix row range specifier would have * to specify a range or more than one row (i.e., $5 > $3). @@ -3833,10 +3896,10 @@ yyreduce: ;} break; - case 183: + case 186: /* Line 1455 of yacc.c */ -#line 1480 "program_parse.y" +#line 1519 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (3)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (3)].state)[1]; @@ -3844,55 +3907,55 @@ yyreduce: ;} break; - case 184: + case 187: /* Line 1455 of yacc.c */ -#line 1488 "program_parse.y" +#line 1527 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 185: + case 188: /* Line 1455 of yacc.c */ -#line 1492 "program_parse.y" +#line 1531 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 186: + case 189: /* Line 1455 of yacc.c */ -#line 1498 "program_parse.y" +#line 1537 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVERSE; ;} break; - case 187: + case 190: /* Line 1455 of yacc.c */ -#line 1502 "program_parse.y" +#line 1541 "program_parse.y" { (yyval.integer) = STATE_MATRIX_TRANSPOSE; ;} break; - case 188: + case 191: /* Line 1455 of yacc.c */ -#line 1506 "program_parse.y" +#line 1545 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVTRANS; ;} break; - case 189: + case 192: /* Line 1455 of yacc.c */ -#line 1512 "program_parse.y" +#line 1551 "program_parse.y" { if ((yyvsp[(1) - (1)].integer) > 3) { yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference"); @@ -3903,88 +3966,88 @@ yyreduce: ;} break; - case 190: + case 193: /* Line 1455 of yacc.c */ -#line 1523 "program_parse.y" +#line 1562 "program_parse.y" { (yyval.state)[0] = STATE_MODELVIEW_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); ;} break; - case 191: + case 194: /* Line 1455 of yacc.c */ -#line 1528 "program_parse.y" +#line 1567 "program_parse.y" { (yyval.state)[0] = STATE_PROJECTION_MATRIX; (yyval.state)[1] = 0; ;} break; - case 192: + case 195: /* Line 1455 of yacc.c */ -#line 1533 "program_parse.y" +#line 1572 "program_parse.y" { (yyval.state)[0] = STATE_MVP_MATRIX; (yyval.state)[1] = 0; ;} break; - case 193: + case 196: /* Line 1455 of yacc.c */ -#line 1538 "program_parse.y" +#line 1577 "program_parse.y" { (yyval.state)[0] = STATE_TEXTURE_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); ;} break; - case 194: + case 197: /* Line 1455 of yacc.c */ -#line 1543 "program_parse.y" +#line 1582 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; ;} break; - case 195: + case 198: /* Line 1455 of yacc.c */ -#line 1548 "program_parse.y" +#line 1587 "program_parse.y" { (yyval.state)[0] = STATE_PROGRAM_MATRIX; (yyval.state)[1] = (yyvsp[(3) - (4)].integer); ;} break; - case 196: + case 199: /* Line 1455 of yacc.c */ -#line 1555 "program_parse.y" +#line 1594 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 197: + case 200: /* Line 1455 of yacc.c */ -#line 1559 "program_parse.y" +#line 1598 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 198: + case 201: /* Line 1455 of yacc.c */ -#line 1564 "program_parse.y" +#line 1603 "program_parse.y" { /* Since GL_ARB_vertex_blend isn't supported, only modelview matrix * zero is valid. @@ -3998,10 +4061,10 @@ yyreduce: ;} break; - case 199: + case 202: /* Line 1455 of yacc.c */ -#line 1577 "program_parse.y" +#line 1616 "program_parse.y" { /* Since GL_ARB_matrix_palette isn't supported, just let any value * through here. The error will be generated later. @@ -4010,10 +4073,10 @@ yyreduce: ;} break; - case 200: + case 203: /* Line 1455 of yacc.c */ -#line 1585 "program_parse.y" +#line 1624 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) { yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector"); @@ -4024,20 +4087,20 @@ yyreduce: ;} break; - case 201: + case 204: /* Line 1455 of yacc.c */ -#line 1596 "program_parse.y" +#line 1635 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_DEPTH_RANGE; ;} break; - case 206: + case 209: /* Line 1455 of yacc.c */ -#line 1608 "program_parse.y" +#line 1647 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4047,30 +4110,30 @@ yyreduce: ;} break; - case 207: + case 210: /* Line 1455 of yacc.c */ -#line 1618 "program_parse.y" +#line 1657 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); ;} break; - case 208: + case 211: /* Line 1455 of yacc.c */ -#line 1623 "program_parse.y" +#line 1662 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); ;} break; - case 209: + case 212: /* Line 1455 of yacc.c */ -#line 1630 "program_parse.y" +#line 1669 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4080,10 +4143,10 @@ yyreduce: ;} break; - case 210: + case 213: /* Line 1455 of yacc.c */ -#line 1640 "program_parse.y" +#line 1679 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4093,30 +4156,30 @@ yyreduce: ;} break; - case 211: + case 214: /* Line 1455 of yacc.c */ -#line 1649 "program_parse.y" +#line 1688 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); ;} break; - case 212: + case 215: /* Line 1455 of yacc.c */ -#line 1654 "program_parse.y" +#line 1693 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); ;} break; - case 213: + case 216: /* Line 1455 of yacc.c */ -#line 1661 "program_parse.y" +#line 1700 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4126,10 +4189,10 @@ yyreduce: ;} break; - case 214: + case 217: /* Line 1455 of yacc.c */ -#line 1671 "program_parse.y" +#line 1710 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference"); @@ -4139,10 +4202,10 @@ yyreduce: ;} break; - case 215: + case 218: /* Line 1455 of yacc.c */ -#line 1681 "program_parse.y" +#line 1720 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference"); @@ -4152,10 +4215,10 @@ yyreduce: ;} break; - case 220: + case 223: /* Line 1455 of yacc.c */ -#line 1696 "program_parse.y" +#line 1735 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4165,10 +4228,10 @@ yyreduce: ;} break; - case 221: + case 224: /* Line 1455 of yacc.c */ -#line 1706 "program_parse.y" +#line 1745 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4178,10 +4241,10 @@ yyreduce: ;} break; - case 222: + case 225: /* Line 1455 of yacc.c */ -#line 1714 "program_parse.y" +#line 1753 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer); @@ -4191,10 +4254,10 @@ yyreduce: ;} break; - case 223: + case 226: /* Line 1455 of yacc.c */ -#line 1724 "program_parse.y" +#line 1763 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (3)].real); @@ -4204,10 +4267,10 @@ yyreduce: ;} break; - case 224: + case 227: /* Line 1455 of yacc.c */ -#line 1732 "program_parse.y" +#line 1771 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (5)].real); @@ -4217,10 +4280,10 @@ yyreduce: ;} break; - case 225: + case 228: /* Line 1455 of yacc.c */ -#line 1741 "program_parse.y" +#line 1780 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (7)].real); @@ -4230,10 +4293,10 @@ yyreduce: ;} break; - case 226: + case 229: /* Line 1455 of yacc.c */ -#line 1750 "program_parse.y" +#line 1789 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (9)].real); @@ -4243,63 +4306,63 @@ yyreduce: ;} break; - case 227: + case 230: /* Line 1455 of yacc.c */ -#line 1760 "program_parse.y" +#line 1799 "program_parse.y" { (yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real); ;} break; - case 228: + case 231: /* Line 1455 of yacc.c */ -#line 1764 "program_parse.y" +#line 1803 "program_parse.y" { (yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer)); ;} break; - case 229: + case 232: /* Line 1455 of yacc.c */ -#line 1769 "program_parse.y" +#line 1808 "program_parse.y" { (yyval.negate) = FALSE; ;} break; - case 230: + case 233: /* Line 1455 of yacc.c */ -#line 1770 "program_parse.y" +#line 1809 "program_parse.y" { (yyval.negate) = TRUE; ;} break; - case 231: + case 234: /* Line 1455 of yacc.c */ -#line 1771 "program_parse.y" +#line 1810 "program_parse.y" { (yyval.negate) = FALSE; ;} break; - case 232: + case 235: /* Line 1455 of yacc.c */ -#line 1774 "program_parse.y" +#line 1813 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 234: + case 237: /* Line 1455 of yacc.c */ -#line 1777 "program_parse.y" +#line 1816 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 236: + case 239: /* Line 1455 of yacc.c */ -#line 1781 "program_parse.y" +#line 1820 "program_parse.y" { if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) { YYERROR; @@ -4307,10 +4370,10 @@ yyreduce: ;} break; - case 237: + case 240: /* Line 1455 of yacc.c */ -#line 1787 "program_parse.y" +#line 1826 "program_parse.y" { if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) { YYERROR; @@ -4318,10 +4381,10 @@ yyreduce: ;} break; - case 238: + case 241: /* Line 1455 of yacc.c */ -#line 1795 "program_parse.y" +#line 1834 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)])); @@ -4334,10 +4397,10 @@ yyreduce: ;} break; - case 239: + case 242: /* Line 1455 of yacc.c */ -#line 1808 "program_parse.y" +#line 1847 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_HPOS; @@ -4348,10 +4411,10 @@ yyreduce: ;} break; - case 240: + case 243: /* Line 1455 of yacc.c */ -#line 1817 "program_parse.y" +#line 1856 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_FOGC; @@ -4362,19 +4425,19 @@ yyreduce: ;} break; - case 241: + case 244: /* Line 1455 of yacc.c */ -#line 1826 "program_parse.y" +#line 1865 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (2)].result); ;} break; - case 242: + case 245: /* Line 1455 of yacc.c */ -#line 1830 "program_parse.y" +#line 1869 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_PSIZ; @@ -4385,10 +4448,10 @@ yyreduce: ;} break; - case 243: + case 246: /* Line 1455 of yacc.c */ -#line 1839 "program_parse.y" +#line 1878 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer); @@ -4399,10 +4462,10 @@ yyreduce: ;} break; - case 244: + case 247: /* Line 1455 of yacc.c */ -#line 1848 "program_parse.y" +#line 1887 "program_parse.y" { if (state->mode == ARB_fragment) { (yyval.result) = FRAG_RESULT_DEPTH; @@ -4413,19 +4476,19 @@ yyreduce: ;} break; - case 245: + case 248: /* Line 1455 of yacc.c */ -#line 1859 "program_parse.y" +#line 1898 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer); ;} break; - case 246: + case 249: /* Line 1455 of yacc.c */ -#line 1865 "program_parse.y" +#line 1904 "program_parse.y" { (yyval.integer) = (state->mode == ARB_vertex) ? VERT_RESULT_COL0 @@ -4433,10 +4496,10 @@ yyreduce: ;} break; - case 247: + case 250: /* Line 1455 of yacc.c */ -#line 1871 "program_parse.y" +#line 1910 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_COL0; @@ -4447,10 +4510,10 @@ yyreduce: ;} break; - case 248: + case 251: /* Line 1455 of yacc.c */ -#line 1880 "program_parse.y" +#line 1919 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_BFC0; @@ -4461,19 +4524,19 @@ yyreduce: ;} break; - case 249: + case 252: /* Line 1455 of yacc.c */ -#line 1891 "program_parse.y" +#line 1930 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 250: + case 253: /* Line 1455 of yacc.c */ -#line 1895 "program_parse.y" +#line 1934 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 0; @@ -4484,10 +4547,10 @@ yyreduce: ;} break; - case 251: + case 254: /* Line 1455 of yacc.c */ -#line 1904 "program_parse.y" +#line 1943 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 1; @@ -4498,94 +4561,94 @@ yyreduce: ;} break; - case 252: + case 255: /* Line 1455 of yacc.c */ -#line 1914 "program_parse.y" +#line 1953 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 253: + case 256: /* Line 1455 of yacc.c */ -#line 1915 "program_parse.y" +#line 1954 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 254: + case 257: /* Line 1455 of yacc.c */ -#line 1916 "program_parse.y" +#line 1955 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 255: + case 258: /* Line 1455 of yacc.c */ -#line 1919 "program_parse.y" +#line 1958 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 256: + case 259: /* Line 1455 of yacc.c */ -#line 1920 "program_parse.y" +#line 1959 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 257: + case 260: /* Line 1455 of yacc.c */ -#line 1921 "program_parse.y" +#line 1960 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 258: + case 261: /* Line 1455 of yacc.c */ -#line 1924 "program_parse.y" +#line 1963 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 259: + case 262: /* Line 1455 of yacc.c */ -#line 1925 "program_parse.y" +#line 1964 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 260: + case 263: /* Line 1455 of yacc.c */ -#line 1928 "program_parse.y" +#line 1967 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 261: + case 264: /* Line 1455 of yacc.c */ -#line 1929 "program_parse.y" +#line 1968 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 262: + case 265: /* Line 1455 of yacc.c */ -#line 1932 "program_parse.y" +#line 1971 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 263: + case 266: /* Line 1455 of yacc.c */ -#line 1933 "program_parse.y" +#line 1972 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 264: + case 267: /* Line 1455 of yacc.c */ -#line 1937 "program_parse.y" +#line 1976 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector"); @@ -4596,10 +4659,10 @@ yyreduce: ;} break; - case 265: + case 268: /* Line 1455 of yacc.c */ -#line 1948 "program_parse.y" +#line 1987 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector"); @@ -4610,10 +4673,10 @@ yyreduce: ;} break; - case 266: + case 269: /* Line 1455 of yacc.c */ -#line 1959 "program_parse.y" +#line 1998 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector"); @@ -4624,10 +4687,10 @@ yyreduce: ;} break; - case 267: + case 270: /* Line 1455 of yacc.c */ -#line 1970 "program_parse.y" +#line 2009 "program_parse.y" { struct asm_symbol *exist = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string)); @@ -4651,7 +4714,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 4655 "program_parse.tab.c" +#line 4718 "program_parse.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4870,7 +4933,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 1990 "program_parse.y" +#line 2029 "program_parse.y" struct asm_instruction * diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index fa94f763c4..32aa9d503f 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -181,7 +181,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op, %type KIL_instruction %type dstReg maskedDstReg maskedAddrReg -%type srcReg scalarSrcReg swizzleSrcReg +%type srcReg scalarUse scalarSrcReg swizzleSrcReg %type scalarSuffix swizzleSuffix extendedSwizzle %type extSwizComp extSwizSel %type optionalMask @@ -523,29 +523,50 @@ SWZ_instruction: SWZ maskedDstReg ',' srcReg ',' extendedSwizzle } ; -scalarSrcReg: optionalSign srcReg scalarSuffix +scalarSrcReg: optionalSign scalarUse { $$ = $2; if ($1) { $$.Base.Negate = ~$$.Base.Negate; } + } + | optionalSign '|' scalarUse '|' + { + $$ = $3; + + if (!state->option.NV_fragment) { + yyerror(& @2, state, "unexpected character '|'"); + YYERROR; + } + + if ($1) { + $$.Base.Negate = ~$$.Base.Negate; + } + + $$.Base.Abs = 1; + } + ; + +scalarUse: srcReg scalarSuffix + { + $$ = $1; $$.Base.Swizzle = _mesa_combine_swizzles($$.Base.Swizzle, - $3.swizzle); + $2.swizzle); } - | optionalSign paramConstScalarUse + | paramConstScalarUse { struct asm_symbol temp_sym; if (!state->option.NV_fragment) { - yyerror(& @2, state, "expected scalar suffix"); + yyerror(& @1, state, "expected scalar suffix"); YYERROR; } memset(& temp_sym, 0, sizeof(temp_sym)); temp_sym.param_binding_begin = ~0; - initialize_symbol_from_const(state->prog, & temp_sym, & $2); + initialize_symbol_from_const(state->prog, & temp_sym, & $1); init_src_reg(& $$); $$.Base.File = PROGRAM_CONSTANT; @@ -564,6 +585,24 @@ swizzleSrcReg: optionalSign srcReg swizzleSuffix $$.Base.Swizzle = _mesa_combine_swizzles($$.Base.Swizzle, $3.swizzle); } + | optionalSign '|' srcReg swizzleSuffix '|' + { + $$ = $3; + + if (!state->option.NV_fragment) { + yyerror(& @2, state, "unexpected character '|'"); + YYERROR; + } + + if ($1) { + $$.Base.Negate = ~$$.Base.Negate; + } + + $$.Base.Abs = 1; + $$.Base.Swizzle = _mesa_combine_swizzles($$.Base.Swizzle, + $4.swizzle); + } + ; maskedDstReg: dstReg optionalMask -- cgit v1.2.3 From 9ea4319744fb7474635cb1994e1babe1552d4d4f Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 4 Sep 2009 16:35:50 -0700 Subject: ARB prog parser: Add new constructor for asm_instruction The new constructor copies fields from the prog_instruction that the parser expects the lexer to set. --- src/mesa/shader/program_parse.tab.c | 621 +++++++++++++++++++----------------- src/mesa/shader/program_parse.tab.h | 2 +- src/mesa/shader/program_parse.y | 111 ++++--- 3 files changed, 400 insertions(+), 334 deletions(-) diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index 505a1eb94f..b9a0e557ad 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -139,10 +139,19 @@ static void init_dst_reg(struct prog_dst_register *r); static void init_src_reg(struct asm_src_register *r); +static void asm_instruction_set_operands(struct asm_instruction *inst, + const struct prog_dst_register *dst, const struct asm_src_register *src0, + const struct asm_src_register *src1, const struct asm_src_register *src2); + static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op, const struct prog_dst_register *dst, const struct asm_src_register *src0, const struct asm_src_register *src1, const struct asm_src_register *src2); +static struct asm_instruction *asm_instruction_copy_ctor( + const struct prog_instruction *base, const struct prog_dst_register *dst, + const struct asm_src_register *src0, const struct asm_src_register *src1, + const struct asm_src_register *src2); + #ifndef FALSE #define FALSE 0 #define TRUE (!FALSE) @@ -170,7 +179,7 @@ static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op, /* Line 189 of yacc.c */ -#line 174 "program_parse.tab.c" +#line 183 "program_parse.tab.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -311,7 +320,7 @@ typedef union YYSTYPE { /* Line 214 of yacc.c */ -#line 107 "program_parse.y" +#line 116 "program_parse.y" struct asm_instruction *inst; struct asm_symbol *sym; @@ -340,7 +349,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 344 "program_parse.tab.c" +#line 353 "program_parse.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -364,14 +373,14 @@ typedef struct YYLTYPE /* Copy the second part of user declarations. */ /* Line 264 of yacc.c */ -#line 249 "program_parse.y" +#line 258 "program_parse.y" extern int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, void *yyscanner); /* Line 264 of yacc.c */ -#line 375 "program_parse.tab.c" +#line 384 "program_parse.tab.c" #ifdef short # undef short @@ -768,34 +777,34 @@ static const yytype_int16 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 256, 256, 259, 267, 279, 280, 283, 305, 306, - 309, 324, 327, 332, 339, 340, 341, 342, 343, 344, - 345, 348, 349, 350, 353, 359, 366, 373, 381, 388, - 396, 441, 448, 493, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 513, 526, 534, 551, - 558, 577, 588, 608, 630, 639, 672, 679, 694, 744, - 786, 797, 818, 828, 834, 865, 882, 882, 884, 891, - 903, 904, 905, 908, 920, 932, 950, 961, 973, 975, - 976, 977, 978, 981, 981, 981, 981, 982, 985, 986, - 987, 988, 989, 990, 993, 1011, 1015, 1021, 1025, 1029, - 1033, 1042, 1051, 1055, 1060, 1066, 1077, 1077, 1078, 1080, - 1084, 1088, 1092, 1098, 1098, 1100, 1116, 1139, 1142, 1153, - 1159, 1165, 1166, 1173, 1179, 1185, 1193, 1199, 1205, 1213, - 1219, 1225, 1233, 1234, 1237, 1238, 1239, 1240, 1241, 1242, - 1243, 1244, 1245, 1246, 1247, 1250, 1259, 1263, 1267, 1273, - 1282, 1286, 1290, 1299, 1303, 1309, 1315, 1322, 1327, 1335, - 1345, 1347, 1355, 1361, 1365, 1369, 1375, 1386, 1395, 1399, - 1404, 1408, 1412, 1416, 1422, 1429, 1433, 1439, 1447, 1458, - 1465, 1469, 1475, 1485, 1496, 1500, 1518, 1527, 1530, 1536, - 1540, 1544, 1550, 1561, 1566, 1571, 1576, 1581, 1586, 1594, - 1597, 1602, 1615, 1623, 1634, 1642, 1642, 1644, 1644, 1646, - 1656, 1661, 1668, 1678, 1687, 1692, 1699, 1709, 1719, 1731, - 1731, 1732, 1732, 1734, 1744, 1752, 1762, 1770, 1778, 1787, - 1798, 1802, 1808, 1809, 1810, 1813, 1813, 1816, 1816, 1819, - 1825, 1833, 1846, 1855, 1864, 1868, 1877, 1886, 1897, 1904, - 1909, 1918, 1930, 1933, 1942, 1953, 1954, 1955, 1958, 1959, - 1960, 1963, 1964, 1967, 1968, 1971, 1972, 1975, 1986, 1997, - 2008 + 0, 265, 265, 268, 276, 288, 289, 292, 314, 315, + 318, 333, 336, 341, 348, 349, 350, 351, 352, 353, + 354, 357, 358, 359, 362, 368, 374, 380, 387, 393, + 400, 444, 451, 495, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 515, 527, 535, 552, + 559, 578, 589, 609, 631, 640, 673, 680, 695, 745, + 787, 798, 819, 829, 835, 866, 883, 883, 885, 892, + 904, 905, 906, 909, 921, 933, 951, 962, 974, 976, + 977, 978, 979, 982, 982, 982, 982, 983, 986, 987, + 988, 989, 990, 991, 994, 1012, 1016, 1022, 1026, 1030, + 1034, 1043, 1052, 1056, 1061, 1067, 1078, 1078, 1079, 1081, + 1085, 1089, 1093, 1099, 1099, 1101, 1117, 1140, 1143, 1154, + 1160, 1166, 1167, 1174, 1180, 1186, 1194, 1200, 1206, 1214, + 1220, 1226, 1234, 1235, 1238, 1239, 1240, 1241, 1242, 1243, + 1244, 1245, 1246, 1247, 1248, 1251, 1260, 1264, 1268, 1274, + 1283, 1287, 1291, 1300, 1304, 1310, 1316, 1323, 1328, 1336, + 1346, 1348, 1356, 1362, 1366, 1370, 1376, 1387, 1396, 1400, + 1405, 1409, 1413, 1417, 1423, 1430, 1434, 1440, 1448, 1459, + 1466, 1470, 1476, 1486, 1497, 1501, 1519, 1528, 1531, 1537, + 1541, 1545, 1551, 1562, 1567, 1572, 1577, 1582, 1587, 1595, + 1598, 1603, 1616, 1624, 1635, 1643, 1643, 1645, 1645, 1647, + 1657, 1662, 1669, 1679, 1688, 1693, 1700, 1710, 1720, 1732, + 1732, 1733, 1733, 1735, 1745, 1753, 1763, 1771, 1779, 1788, + 1799, 1803, 1809, 1810, 1811, 1814, 1814, 1817, 1817, 1820, + 1826, 1834, 1847, 1856, 1865, 1869, 1878, 1887, 1898, 1905, + 1910, 1919, 1931, 1934, 1943, 1954, 1955, 1956, 1959, 1960, + 1961, 1964, 1965, 1968, 1969, 1972, 1973, 1976, 1987, 1998, + 2009 }; #endif @@ -2088,7 +2097,7 @@ yyreduce: case 3: /* Line 1455 of yacc.c */ -#line 260 "program_parse.y" +#line 269 "program_parse.y" { if (state->prog->Target != GL_VERTEX_PROGRAM_ARB) { yyerror(& (yylsp[(1) - (1)]), state, "invalid fragment program header"); @@ -2101,7 +2110,7 @@ yyreduce: case 4: /* Line 1455 of yacc.c */ -#line 268 "program_parse.y" +#line 277 "program_parse.y" { if (state->prog->Target != GL_FRAGMENT_PROGRAM_ARB) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex program header"); @@ -2116,7 +2125,7 @@ yyreduce: case 7: /* Line 1455 of yacc.c */ -#line 284 "program_parse.y" +#line 293 "program_parse.y" { int valid = 0; @@ -2141,7 +2150,7 @@ yyreduce: case 10: /* Line 1455 of yacc.c */ -#line 310 "program_parse.y" +#line 319 "program_parse.y" { if ((yyvsp[(1) - (2)].inst) != NULL) { if (state->inst_tail == NULL) { @@ -2161,7 +2170,7 @@ yyreduce: case 12: /* Line 1455 of yacc.c */ -#line 328 "program_parse.y" +#line 337 "program_parse.y" { (yyval.inst) = (yyvsp[(1) - (1)].inst); state->prog->NumAluInstructions++; @@ -2171,7 +2180,7 @@ yyreduce: case 13: /* Line 1455 of yacc.c */ -#line 333 "program_parse.y" +#line 342 "program_parse.y" { (yyval.inst) = (yyvsp[(1) - (1)].inst); state->prog->NumTexInstructions++; @@ -2181,7 +2190,7 @@ yyreduce: case 24: /* Line 1455 of yacc.c */ -#line 354 "program_parse.y" +#line 363 "program_parse.y" { (yyval.inst) = asm_instruction_ctor(OPCODE_ARL, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} @@ -2190,66 +2199,60 @@ yyreduce: case 25: /* Line 1455 of yacc.c */ -#line 360 "program_parse.y" +#line 369 "program_parse.y" { - (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (4)].temp_inst).Opcode, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); - (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (4)].temp_inst).SaturateMode; + (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (4)].temp_inst), & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} break; case 26: /* Line 1455 of yacc.c */ -#line 367 "program_parse.y" +#line 375 "program_parse.y" { - (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (4)].temp_inst).Opcode, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); - (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (4)].temp_inst).SaturateMode; + (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (4)].temp_inst), & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} break; case 27: /* Line 1455 of yacc.c */ -#line 374 "program_parse.y" +#line 381 "program_parse.y" { - (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (6)].temp_inst).Opcode, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); - (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode; + (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); ;} break; case 28: /* Line 1455 of yacc.c */ -#line 382 "program_parse.y" +#line 388 "program_parse.y" { - (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (6)].temp_inst).Opcode, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); - (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode; + (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); ;} break; case 29: /* Line 1455 of yacc.c */ -#line 390 "program_parse.y" +#line 395 "program_parse.y" { - (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (8)].temp_inst).Opcode, & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), & (yyvsp[(6) - (8)].src_reg), & (yyvsp[(8) - (8)].src_reg)); - (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (8)].temp_inst).SaturateMode; + (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (8)].temp_inst), & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), & (yyvsp[(6) - (8)].src_reg), & (yyvsp[(8) - (8)].src_reg)); ;} break; case 30: /* Line 1455 of yacc.c */ -#line 397 "program_parse.y" +#line 401 "program_parse.y" { - (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (8)].temp_inst).Opcode, & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), NULL, NULL); + (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (8)].temp_inst), & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), NULL, NULL); if ((yyval.inst) != NULL) { const GLbitfield tex_mask = (1U << (yyvsp[(6) - (8)].integer)); GLbitfield shadow_tex = 0; GLbitfield target_mask = 0; - (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (8)].temp_inst).SaturateMode; (yyval.inst)->Base.TexSrcUnit = (yyvsp[(6) - (8)].integer); if ((yyvsp[(8) - (8)].integer) < 0) { @@ -2288,7 +2291,7 @@ yyreduce: case 31: /* Line 1455 of yacc.c */ -#line 442 "program_parse.y" +#line 445 "program_parse.y" { (yyval.inst) = asm_instruction_ctor(OPCODE_KIL, NULL, & (yyvsp[(2) - (2)].src_reg), NULL, NULL); state->fragment.UsesKill = 1; @@ -2298,16 +2301,15 @@ yyreduce: case 32: /* Line 1455 of yacc.c */ -#line 449 "program_parse.y" +#line 452 "program_parse.y" { - (yyval.inst) = asm_instruction_ctor((yyvsp[(1) - (12)].temp_inst).Opcode, & (yyvsp[(2) - (12)].dst_reg), & (yyvsp[(4) - (12)].src_reg), & (yyvsp[(6) - (12)].src_reg), & (yyvsp[(8) - (12)].src_reg)); + (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (12)].temp_inst), & (yyvsp[(2) - (12)].dst_reg), & (yyvsp[(4) - (12)].src_reg), & (yyvsp[(6) - (12)].src_reg), & (yyvsp[(8) - (12)].src_reg)); if ((yyval.inst) != NULL) { const GLbitfield tex_mask = (1U << (yyvsp[(10) - (12)].integer)); GLbitfield shadow_tex = 0; GLbitfield target_mask = 0; - (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (12)].temp_inst).SaturateMode; (yyval.inst)->Base.TexSrcUnit = (yyvsp[(10) - (12)].integer); if ((yyvsp[(12) - (12)].integer) < 0) { @@ -2346,7 +2348,7 @@ yyreduce: case 33: /* Line 1455 of yacc.c */ -#line 494 "program_parse.y" +#line 496 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} @@ -2355,91 +2357,91 @@ yyreduce: case 34: /* Line 1455 of yacc.c */ -#line 499 "program_parse.y" +#line 501 "program_parse.y" { (yyval.integer) = TEXTURE_1D_INDEX; ;} break; case 35: /* Line 1455 of yacc.c */ -#line 500 "program_parse.y" +#line 502 "program_parse.y" { (yyval.integer) = TEXTURE_2D_INDEX; ;} break; case 36: /* Line 1455 of yacc.c */ -#line 501 "program_parse.y" +#line 503 "program_parse.y" { (yyval.integer) = TEXTURE_3D_INDEX; ;} break; case 37: /* Line 1455 of yacc.c */ -#line 502 "program_parse.y" +#line 504 "program_parse.y" { (yyval.integer) = TEXTURE_CUBE_INDEX; ;} break; case 38: /* Line 1455 of yacc.c */ -#line 503 "program_parse.y" +#line 505 "program_parse.y" { (yyval.integer) = TEXTURE_RECT_INDEX; ;} break; case 39: /* Line 1455 of yacc.c */ -#line 504 "program_parse.y" +#line 506 "program_parse.y" { (yyval.integer) = -TEXTURE_1D_INDEX; ;} break; case 40: /* Line 1455 of yacc.c */ -#line 505 "program_parse.y" +#line 507 "program_parse.y" { (yyval.integer) = -TEXTURE_2D_INDEX; ;} break; case 41: /* Line 1455 of yacc.c */ -#line 506 "program_parse.y" +#line 508 "program_parse.y" { (yyval.integer) = -TEXTURE_RECT_INDEX; ;} break; case 42: /* Line 1455 of yacc.c */ -#line 507 "program_parse.y" +#line 509 "program_parse.y" { (yyval.integer) = TEXTURE_1D_ARRAY_INDEX; ;} break; case 43: /* Line 1455 of yacc.c */ -#line 508 "program_parse.y" +#line 510 "program_parse.y" { (yyval.integer) = TEXTURE_2D_ARRAY_INDEX; ;} break; case 44: /* Line 1455 of yacc.c */ -#line 509 "program_parse.y" +#line 511 "program_parse.y" { (yyval.integer) = -TEXTURE_1D_ARRAY_INDEX; ;} break; case 45: /* Line 1455 of yacc.c */ -#line 510 "program_parse.y" +#line 512 "program_parse.y" { (yyval.integer) = -TEXTURE_2D_ARRAY_INDEX; ;} break; case 46: /* Line 1455 of yacc.c */ -#line 514 "program_parse.y" +#line 516 "program_parse.y" { /* FIXME: Is this correct? Should the extenedSwizzle be applied * FIXME: to the existing swizzle? @@ -2447,15 +2449,14 @@ yyreduce: (yyvsp[(4) - (6)].src_reg).Base.Swizzle = (yyvsp[(6) - (6)].swiz_mask).swizzle; (yyvsp[(4) - (6)].src_reg).Base.Negate = (yyvsp[(6) - (6)].swiz_mask).mask; - (yyval.inst) = asm_instruction_ctor(OPCODE_SWZ, & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), NULL, NULL); - (yyval.inst)->Base.SaturateMode = (yyvsp[(1) - (6)].temp_inst).SaturateMode; + (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), NULL, NULL); ;} break; case 47: /* Line 1455 of yacc.c */ -#line 527 "program_parse.y" +#line 528 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (2)].src_reg); @@ -2468,7 +2469,7 @@ yyreduce: case 48: /* Line 1455 of yacc.c */ -#line 535 "program_parse.y" +#line 536 "program_parse.y" { (yyval.src_reg) = (yyvsp[(3) - (4)].src_reg); @@ -2488,7 +2489,7 @@ yyreduce: case 49: /* Line 1455 of yacc.c */ -#line 552 "program_parse.y" +#line 553 "program_parse.y" { (yyval.src_reg) = (yyvsp[(1) - (2)].src_reg); @@ -2500,7 +2501,7 @@ yyreduce: case 50: /* Line 1455 of yacc.c */ -#line 559 "program_parse.y" +#line 560 "program_parse.y" { struct asm_symbol temp_sym; @@ -2522,7 +2523,7 @@ yyreduce: case 51: /* Line 1455 of yacc.c */ -#line 578 "program_parse.y" +#line 579 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (3)].src_reg); @@ -2538,7 +2539,7 @@ yyreduce: case 52: /* Line 1455 of yacc.c */ -#line 589 "program_parse.y" +#line 590 "program_parse.y" { (yyval.src_reg) = (yyvsp[(3) - (5)].src_reg); @@ -2560,7 +2561,7 @@ yyreduce: case 53: /* Line 1455 of yacc.c */ -#line 609 "program_parse.y" +#line 610 "program_parse.y" { (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg); (yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask; @@ -2585,7 +2586,7 @@ yyreduce: case 54: /* Line 1455 of yacc.c */ -#line 631 "program_parse.y" +#line 632 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_ADDRESS; @@ -2597,7 +2598,7 @@ yyreduce: case 55: /* Line 1455 of yacc.c */ -#line 640 "program_parse.y" +#line 641 "program_parse.y" { const unsigned xyzw_valid = ((yyvsp[(1) - (7)].ext_swizzle).xyzw_valid << 0) @@ -2633,7 +2634,7 @@ yyreduce: case 56: /* Line 1455 of yacc.c */ -#line 673 "program_parse.y" +#line 674 "program_parse.y" { (yyval.ext_swizzle) = (yyvsp[(2) - (2)].ext_swizzle); (yyval.ext_swizzle).negate = ((yyvsp[(1) - (2)].negate)) ? 1 : 0; @@ -2643,7 +2644,7 @@ yyreduce: case 57: /* Line 1455 of yacc.c */ -#line 680 "program_parse.y" +#line 681 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2663,7 +2664,7 @@ yyreduce: case 58: /* Line 1455 of yacc.c */ -#line 695 "program_parse.y" +#line 696 "program_parse.y" { if (strlen((yyvsp[(1) - (1)].string)) > 1) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2716,7 +2717,7 @@ yyreduce: case 59: /* Line 1455 of yacc.c */ -#line 745 "program_parse.y" +#line 746 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2763,7 +2764,7 @@ yyreduce: case 60: /* Line 1455 of yacc.c */ -#line 787 "program_parse.y" +#line 788 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = PROGRAM_INPUT; @@ -2779,7 +2780,7 @@ yyreduce: case 61: /* Line 1455 of yacc.c */ -#line 798 "program_parse.y" +#line 799 "program_parse.y" { if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr && ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) { @@ -2805,7 +2806,7 @@ yyreduce: case 62: /* Line 1455 of yacc.c */ -#line 819 "program_parse.y" +#line 820 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL) @@ -2818,7 +2819,7 @@ yyreduce: case 63: /* Line 1455 of yacc.c */ -#line 829 "program_parse.y" +#line 830 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_OUTPUT; @@ -2829,7 +2830,7 @@ yyreduce: case 64: /* Line 1455 of yacc.c */ -#line 835 "program_parse.y" +#line 836 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2863,7 +2864,7 @@ yyreduce: case 65: /* Line 1455 of yacc.c */ -#line 866 "program_parse.y" +#line 867 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2883,7 +2884,7 @@ yyreduce: case 68: /* Line 1455 of yacc.c */ -#line 885 "program_parse.y" +#line 886 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer); @@ -2893,7 +2894,7 @@ yyreduce: case 69: /* Line 1455 of yacc.c */ -#line 892 "program_parse.y" +#line 893 "program_parse.y" { /* FINISHME: Add support for multiple address registers. */ @@ -2908,28 +2909,28 @@ yyreduce: case 70: /* Line 1455 of yacc.c */ -#line 903 "program_parse.y" +#line 904 "program_parse.y" { (yyval.integer) = 0; ;} break; case 71: /* Line 1455 of yacc.c */ -#line 904 "program_parse.y" +#line 905 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; case 72: /* Line 1455 of yacc.c */ -#line 905 "program_parse.y" +#line 906 "program_parse.y" { (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;} break; case 73: /* Line 1455 of yacc.c */ -#line 909 "program_parse.y" +#line 910 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2944,7 +2945,7 @@ yyreduce: case 74: /* Line 1455 of yacc.c */ -#line 921 "program_parse.y" +#line 922 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2959,7 +2960,7 @@ yyreduce: case 75: /* Line 1455 of yacc.c */ -#line 933 "program_parse.y" +#line 934 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2980,7 +2981,7 @@ yyreduce: case 76: /* Line 1455 of yacc.c */ -#line 951 "program_parse.y" +#line 952 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector"); @@ -2994,7 +2995,7 @@ yyreduce: case 77: /* Line 1455 of yacc.c */ -#line 962 "program_parse.y" +#line 963 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, @@ -3009,21 +3010,21 @@ yyreduce: case 82: /* Line 1455 of yacc.c */ -#line 978 "program_parse.y" +#line 979 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; case 87: /* Line 1455 of yacc.c */ -#line 982 "program_parse.y" +#line 983 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; case 94: /* Line 1455 of yacc.c */ -#line 994 "program_parse.y" +#line 995 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)])); @@ -3044,7 +3045,7 @@ yyreduce: case 95: /* Line 1455 of yacc.c */ -#line 1012 "program_parse.y" +#line 1013 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} @@ -3053,7 +3054,7 @@ yyreduce: case 96: /* Line 1455 of yacc.c */ -#line 1016 "program_parse.y" +#line 1017 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} @@ -3062,7 +3063,7 @@ yyreduce: case 97: /* Line 1455 of yacc.c */ -#line 1022 "program_parse.y" +#line 1023 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_POS; ;} @@ -3071,7 +3072,7 @@ yyreduce: case 98: /* Line 1455 of yacc.c */ -#line 1026 "program_parse.y" +#line 1027 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_WEIGHT; ;} @@ -3080,7 +3081,7 @@ yyreduce: case 99: /* Line 1455 of yacc.c */ -#line 1030 "program_parse.y" +#line 1031 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_NORMAL; ;} @@ -3089,7 +3090,7 @@ yyreduce: case 100: /* Line 1455 of yacc.c */ -#line 1034 "program_parse.y" +#line 1035 "program_parse.y" { if (!state->ctx->Extensions.EXT_secondary_color) { yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported"); @@ -3103,7 +3104,7 @@ yyreduce: case 101: /* Line 1455 of yacc.c */ -#line 1043 "program_parse.y" +#line 1044 "program_parse.y" { if (!state->ctx->Extensions.EXT_fog_coord) { yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported"); @@ -3117,7 +3118,7 @@ yyreduce: case 102: /* Line 1455 of yacc.c */ -#line 1052 "program_parse.y" +#line 1053 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} @@ -3126,7 +3127,7 @@ yyreduce: case 103: /* Line 1455 of yacc.c */ -#line 1056 "program_parse.y" +#line 1057 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; @@ -3136,7 +3137,7 @@ yyreduce: case 104: /* Line 1455 of yacc.c */ -#line 1061 "program_parse.y" +#line 1062 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer); ;} @@ -3145,7 +3146,7 @@ yyreduce: case 105: /* Line 1455 of yacc.c */ -#line 1067 "program_parse.y" +#line 1068 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference"); @@ -3159,7 +3160,7 @@ yyreduce: case 109: /* Line 1455 of yacc.c */ -#line 1081 "program_parse.y" +#line 1082 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_WPOS; ;} @@ -3168,7 +3169,7 @@ yyreduce: case 110: /* Line 1455 of yacc.c */ -#line 1085 "program_parse.y" +#line 1086 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer); ;} @@ -3177,7 +3178,7 @@ yyreduce: case 111: /* Line 1455 of yacc.c */ -#line 1089 "program_parse.y" +#line 1090 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_FOGC; ;} @@ -3186,7 +3187,7 @@ yyreduce: case 112: /* Line 1455 of yacc.c */ -#line 1093 "program_parse.y" +#line 1094 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} @@ -3195,7 +3196,7 @@ yyreduce: case 115: /* Line 1455 of yacc.c */ -#line 1101 "program_parse.y" +#line 1102 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)])); @@ -3214,7 +3215,7 @@ yyreduce: case 116: /* Line 1455 of yacc.c */ -#line 1117 "program_parse.y" +#line 1118 "program_parse.y" { if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) { yyerror(& (yylsp[(4) - (6)]), state, @@ -3239,7 +3240,7 @@ yyreduce: case 117: /* Line 1455 of yacc.c */ -#line 1139 "program_parse.y" +#line 1140 "program_parse.y" { (yyval.integer) = 0; ;} @@ -3248,7 +3249,7 @@ yyreduce: case 118: /* Line 1455 of yacc.c */ -#line 1143 "program_parse.y" +#line 1144 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size"); @@ -3262,7 +3263,7 @@ yyreduce: case 119: /* Line 1455 of yacc.c */ -#line 1154 "program_parse.y" +#line 1155 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym); ;} @@ -3271,7 +3272,7 @@ yyreduce: case 120: /* Line 1455 of yacc.c */ -#line 1160 "program_parse.y" +#line 1161 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym); ;} @@ -3280,7 +3281,7 @@ yyreduce: case 122: /* Line 1455 of yacc.c */ -#line 1167 "program_parse.y" +#line 1168 "program_parse.y" { (yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length; (yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym); @@ -3290,7 +3291,7 @@ yyreduce: case 123: /* Line 1455 of yacc.c */ -#line 1174 "program_parse.y" +#line 1175 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3301,7 +3302,7 @@ yyreduce: case 124: /* Line 1455 of yacc.c */ -#line 1180 "program_parse.y" +#line 1181 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3312,7 +3313,7 @@ yyreduce: case 125: /* Line 1455 of yacc.c */ -#line 1186 "program_parse.y" +#line 1187 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3323,7 +3324,7 @@ yyreduce: case 126: /* Line 1455 of yacc.c */ -#line 1194 "program_parse.y" +#line 1195 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3334,7 +3335,7 @@ yyreduce: case 127: /* Line 1455 of yacc.c */ -#line 1200 "program_parse.y" +#line 1201 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3345,7 +3346,7 @@ yyreduce: case 128: /* Line 1455 of yacc.c */ -#line 1206 "program_parse.y" +#line 1207 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3356,7 +3357,7 @@ yyreduce: case 129: /* Line 1455 of yacc.c */ -#line 1214 "program_parse.y" +#line 1215 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3367,7 +3368,7 @@ yyreduce: case 130: /* Line 1455 of yacc.c */ -#line 1220 "program_parse.y" +#line 1221 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3378,7 +3379,7 @@ yyreduce: case 131: /* Line 1455 of yacc.c */ -#line 1226 "program_parse.y" +#line 1227 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3389,98 +3390,98 @@ yyreduce: case 132: /* Line 1455 of yacc.c */ -#line 1233 "program_parse.y" +#line 1234 "program_parse.y" { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;} break; case 133: /* Line 1455 of yacc.c */ -#line 1234 "program_parse.y" +#line 1235 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 134: /* Line 1455 of yacc.c */ -#line 1237 "program_parse.y" +#line 1238 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 135: /* Line 1455 of yacc.c */ -#line 1238 "program_parse.y" +#line 1239 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 136: /* Line 1455 of yacc.c */ -#line 1239 "program_parse.y" +#line 1240 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 137: /* Line 1455 of yacc.c */ -#line 1240 "program_parse.y" +#line 1241 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 138: /* Line 1455 of yacc.c */ -#line 1241 "program_parse.y" +#line 1242 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 139: /* Line 1455 of yacc.c */ -#line 1242 "program_parse.y" +#line 1243 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 140: /* Line 1455 of yacc.c */ -#line 1243 "program_parse.y" +#line 1244 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 141: /* Line 1455 of yacc.c */ -#line 1244 "program_parse.y" +#line 1245 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 142: /* Line 1455 of yacc.c */ -#line 1245 "program_parse.y" +#line 1246 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 143: /* Line 1455 of yacc.c */ -#line 1246 "program_parse.y" +#line 1247 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 144: /* Line 1455 of yacc.c */ -#line 1247 "program_parse.y" +#line 1248 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 145: /* Line 1455 of yacc.c */ -#line 1251 "program_parse.y" +#line 1252 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_MATERIAL; @@ -3492,7 +3493,7 @@ yyreduce: case 146: /* Line 1455 of yacc.c */ -#line 1260 "program_parse.y" +#line 1261 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} @@ -3501,7 +3502,7 @@ yyreduce: case 147: /* Line 1455 of yacc.c */ -#line 1264 "program_parse.y" +#line 1265 "program_parse.y" { (yyval.integer) = STATE_EMISSION; ;} @@ -3510,7 +3511,7 @@ yyreduce: case 148: /* Line 1455 of yacc.c */ -#line 1268 "program_parse.y" +#line 1269 "program_parse.y" { (yyval.integer) = STATE_SHININESS; ;} @@ -3519,7 +3520,7 @@ yyreduce: case 149: /* Line 1455 of yacc.c */ -#line 1274 "program_parse.y" +#line 1275 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHT; @@ -3531,7 +3532,7 @@ yyreduce: case 150: /* Line 1455 of yacc.c */ -#line 1283 "program_parse.y" +#line 1284 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} @@ -3540,7 +3541,7 @@ yyreduce: case 151: /* Line 1455 of yacc.c */ -#line 1287 "program_parse.y" +#line 1288 "program_parse.y" { (yyval.integer) = STATE_POSITION; ;} @@ -3549,7 +3550,7 @@ yyreduce: case 152: /* Line 1455 of yacc.c */ -#line 1291 "program_parse.y" +#line 1292 "program_parse.y" { if (!state->ctx->Extensions.EXT_point_parameters) { yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported"); @@ -3563,7 +3564,7 @@ yyreduce: case 153: /* Line 1455 of yacc.c */ -#line 1300 "program_parse.y" +#line 1301 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} @@ -3572,7 +3573,7 @@ yyreduce: case 154: /* Line 1455 of yacc.c */ -#line 1304 "program_parse.y" +#line 1305 "program_parse.y" { (yyval.integer) = STATE_HALF_VECTOR; ;} @@ -3581,7 +3582,7 @@ yyreduce: case 155: /* Line 1455 of yacc.c */ -#line 1310 "program_parse.y" +#line 1311 "program_parse.y" { (yyval.integer) = STATE_SPOT_DIRECTION; ;} @@ -3590,7 +3591,7 @@ yyreduce: case 156: /* Line 1455 of yacc.c */ -#line 1316 "program_parse.y" +#line 1317 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (2)].state)[1]; @@ -3600,7 +3601,7 @@ yyreduce: case 157: /* Line 1455 of yacc.c */ -#line 1323 "program_parse.y" +#line 1324 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT; @@ -3610,7 +3611,7 @@ yyreduce: case 158: /* Line 1455 of yacc.c */ -#line 1328 "program_parse.y" +#line 1329 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR; @@ -3621,7 +3622,7 @@ yyreduce: case 159: /* Line 1455 of yacc.c */ -#line 1336 "program_parse.y" +#line 1337 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTPROD; @@ -3634,7 +3635,7 @@ yyreduce: case 161: /* Line 1455 of yacc.c */ -#line 1348 "program_parse.y" +#line 1349 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(3) - (3)].integer); @@ -3645,7 +3646,7 @@ yyreduce: case 162: /* Line 1455 of yacc.c */ -#line 1356 "program_parse.y" +#line 1357 "program_parse.y" { (yyval.integer) = STATE_TEXENV_COLOR; ;} @@ -3654,7 +3655,7 @@ yyreduce: case 163: /* Line 1455 of yacc.c */ -#line 1362 "program_parse.y" +#line 1363 "program_parse.y" { (yyval.integer) = STATE_AMBIENT; ;} @@ -3663,7 +3664,7 @@ yyreduce: case 164: /* Line 1455 of yacc.c */ -#line 1366 "program_parse.y" +#line 1367 "program_parse.y" { (yyval.integer) = STATE_DIFFUSE; ;} @@ -3672,7 +3673,7 @@ yyreduce: case 165: /* Line 1455 of yacc.c */ -#line 1370 "program_parse.y" +#line 1371 "program_parse.y" { (yyval.integer) = STATE_SPECULAR; ;} @@ -3681,7 +3682,7 @@ yyreduce: case 166: /* Line 1455 of yacc.c */ -#line 1376 "program_parse.y" +#line 1377 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) { yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector"); @@ -3695,7 +3696,7 @@ yyreduce: case 167: /* Line 1455 of yacc.c */ -#line 1387 "program_parse.y" +#line 1388 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_TEXGEN; @@ -3707,7 +3708,7 @@ yyreduce: case 168: /* Line 1455 of yacc.c */ -#line 1396 "program_parse.y" +#line 1397 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S; ;} @@ -3716,7 +3717,7 @@ yyreduce: case 169: /* Line 1455 of yacc.c */ -#line 1400 "program_parse.y" +#line 1401 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_OBJECT_S; ;} @@ -3725,7 +3726,7 @@ yyreduce: case 170: /* Line 1455 of yacc.c */ -#line 1405 "program_parse.y" +#line 1406 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S; ;} @@ -3734,7 +3735,7 @@ yyreduce: case 171: /* Line 1455 of yacc.c */ -#line 1409 "program_parse.y" +#line 1410 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S; ;} @@ -3743,7 +3744,7 @@ yyreduce: case 172: /* Line 1455 of yacc.c */ -#line 1413 "program_parse.y" +#line 1414 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S; ;} @@ -3752,7 +3753,7 @@ yyreduce: case 173: /* Line 1455 of yacc.c */ -#line 1417 "program_parse.y" +#line 1418 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S; ;} @@ -3761,7 +3762,7 @@ yyreduce: case 174: /* Line 1455 of yacc.c */ -#line 1423 "program_parse.y" +#line 1424 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); @@ -3771,7 +3772,7 @@ yyreduce: case 175: /* Line 1455 of yacc.c */ -#line 1430 "program_parse.y" +#line 1431 "program_parse.y" { (yyval.integer) = STATE_FOG_COLOR; ;} @@ -3780,7 +3781,7 @@ yyreduce: case 176: /* Line 1455 of yacc.c */ -#line 1434 "program_parse.y" +#line 1435 "program_parse.y" { (yyval.integer) = STATE_FOG_PARAMS; ;} @@ -3789,7 +3790,7 @@ yyreduce: case 177: /* Line 1455 of yacc.c */ -#line 1440 "program_parse.y" +#line 1441 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_CLIPPLANE; @@ -3800,7 +3801,7 @@ yyreduce: case 178: /* Line 1455 of yacc.c */ -#line 1448 "program_parse.y" +#line 1449 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) { yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector"); @@ -3814,7 +3815,7 @@ yyreduce: case 179: /* Line 1455 of yacc.c */ -#line 1459 "program_parse.y" +#line 1460 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); @@ -3824,7 +3825,7 @@ yyreduce: case 180: /* Line 1455 of yacc.c */ -#line 1466 "program_parse.y" +#line 1467 "program_parse.y" { (yyval.integer) = STATE_POINT_SIZE; ;} @@ -3833,7 +3834,7 @@ yyreduce: case 181: /* Line 1455 of yacc.c */ -#line 1470 "program_parse.y" +#line 1471 "program_parse.y" { (yyval.integer) = STATE_POINT_ATTENUATION; ;} @@ -3842,7 +3843,7 @@ yyreduce: case 182: /* Line 1455 of yacc.c */ -#line 1476 "program_parse.y" +#line 1477 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (5)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (5)].state)[1]; @@ -3855,7 +3856,7 @@ yyreduce: case 183: /* Line 1455 of yacc.c */ -#line 1486 "program_parse.y" +#line 1487 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (2)].state)[1]; @@ -3868,7 +3869,7 @@ yyreduce: case 184: /* Line 1455 of yacc.c */ -#line 1496 "program_parse.y" +#line 1497 "program_parse.y" { (yyval.state)[2] = 0; (yyval.state)[3] = 3; @@ -3878,7 +3879,7 @@ yyreduce: case 185: /* Line 1455 of yacc.c */ -#line 1501 "program_parse.y" +#line 1502 "program_parse.y" { /* It seems logical that the matrix row range specifier would have * to specify a range or more than one row (i.e., $5 > $3). @@ -3899,7 +3900,7 @@ yyreduce: case 186: /* Line 1455 of yacc.c */ -#line 1519 "program_parse.y" +#line 1520 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (3)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (3)].state)[1]; @@ -3910,7 +3911,7 @@ yyreduce: case 187: /* Line 1455 of yacc.c */ -#line 1527 "program_parse.y" +#line 1528 "program_parse.y" { (yyval.integer) = 0; ;} @@ -3919,7 +3920,7 @@ yyreduce: case 188: /* Line 1455 of yacc.c */ -#line 1531 "program_parse.y" +#line 1532 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} @@ -3928,7 +3929,7 @@ yyreduce: case 189: /* Line 1455 of yacc.c */ -#line 1537 "program_parse.y" +#line 1538 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVERSE; ;} @@ -3937,7 +3938,7 @@ yyreduce: case 190: /* Line 1455 of yacc.c */ -#line 1541 "program_parse.y" +#line 1542 "program_parse.y" { (yyval.integer) = STATE_MATRIX_TRANSPOSE; ;} @@ -3946,7 +3947,7 @@ yyreduce: case 191: /* Line 1455 of yacc.c */ -#line 1545 "program_parse.y" +#line 1546 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVTRANS; ;} @@ -3955,7 +3956,7 @@ yyreduce: case 192: /* Line 1455 of yacc.c */ -#line 1551 "program_parse.y" +#line 1552 "program_parse.y" { if ((yyvsp[(1) - (1)].integer) > 3) { yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference"); @@ -3969,7 +3970,7 @@ yyreduce: case 193: /* Line 1455 of yacc.c */ -#line 1562 "program_parse.y" +#line 1563 "program_parse.y" { (yyval.state)[0] = STATE_MODELVIEW_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); @@ -3979,7 +3980,7 @@ yyreduce: case 194: /* Line 1455 of yacc.c */ -#line 1567 "program_parse.y" +#line 1568 "program_parse.y" { (yyval.state)[0] = STATE_PROJECTION_MATRIX; (yyval.state)[1] = 0; @@ -3989,7 +3990,7 @@ yyreduce: case 195: /* Line 1455 of yacc.c */ -#line 1572 "program_parse.y" +#line 1573 "program_parse.y" { (yyval.state)[0] = STATE_MVP_MATRIX; (yyval.state)[1] = 0; @@ -3999,7 +4000,7 @@ yyreduce: case 196: /* Line 1455 of yacc.c */ -#line 1577 "program_parse.y" +#line 1578 "program_parse.y" { (yyval.state)[0] = STATE_TEXTURE_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); @@ -4009,7 +4010,7 @@ yyreduce: case 197: /* Line 1455 of yacc.c */ -#line 1582 "program_parse.y" +#line 1583 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; @@ -4019,7 +4020,7 @@ yyreduce: case 198: /* Line 1455 of yacc.c */ -#line 1587 "program_parse.y" +#line 1588 "program_parse.y" { (yyval.state)[0] = STATE_PROGRAM_MATRIX; (yyval.state)[1] = (yyvsp[(3) - (4)].integer); @@ -4029,7 +4030,7 @@ yyreduce: case 199: /* Line 1455 of yacc.c */ -#line 1594 "program_parse.y" +#line 1595 "program_parse.y" { (yyval.integer) = 0; ;} @@ -4038,7 +4039,7 @@ yyreduce: case 200: /* Line 1455 of yacc.c */ -#line 1598 "program_parse.y" +#line 1599 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} @@ -4047,7 +4048,7 @@ yyreduce: case 201: /* Line 1455 of yacc.c */ -#line 1603 "program_parse.y" +#line 1604 "program_parse.y" { /* Since GL_ARB_vertex_blend isn't supported, only modelview matrix * zero is valid. @@ -4064,7 +4065,7 @@ yyreduce: case 202: /* Line 1455 of yacc.c */ -#line 1616 "program_parse.y" +#line 1617 "program_parse.y" { /* Since GL_ARB_matrix_palette isn't supported, just let any value * through here. The error will be generated later. @@ -4076,7 +4077,7 @@ yyreduce: case 203: /* Line 1455 of yacc.c */ -#line 1624 "program_parse.y" +#line 1625 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) { yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector"); @@ -4090,7 +4091,7 @@ yyreduce: case 204: /* Line 1455 of yacc.c */ -#line 1635 "program_parse.y" +#line 1636 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_DEPTH_RANGE; @@ -4100,7 +4101,7 @@ yyreduce: case 209: /* Line 1455 of yacc.c */ -#line 1647 "program_parse.y" +#line 1648 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4113,7 +4114,7 @@ yyreduce: case 210: /* Line 1455 of yacc.c */ -#line 1657 "program_parse.y" +#line 1658 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); @@ -4123,7 +4124,7 @@ yyreduce: case 211: /* Line 1455 of yacc.c */ -#line 1662 "program_parse.y" +#line 1663 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); @@ -4133,7 +4134,7 @@ yyreduce: case 212: /* Line 1455 of yacc.c */ -#line 1669 "program_parse.y" +#line 1670 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4146,7 +4147,7 @@ yyreduce: case 213: /* Line 1455 of yacc.c */ -#line 1679 "program_parse.y" +#line 1680 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4159,7 +4160,7 @@ yyreduce: case 214: /* Line 1455 of yacc.c */ -#line 1688 "program_parse.y" +#line 1689 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); @@ -4169,7 +4170,7 @@ yyreduce: case 215: /* Line 1455 of yacc.c */ -#line 1693 "program_parse.y" +#line 1694 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); @@ -4179,7 +4180,7 @@ yyreduce: case 216: /* Line 1455 of yacc.c */ -#line 1700 "program_parse.y" +#line 1701 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4192,7 +4193,7 @@ yyreduce: case 217: /* Line 1455 of yacc.c */ -#line 1710 "program_parse.y" +#line 1711 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference"); @@ -4205,7 +4206,7 @@ yyreduce: case 218: /* Line 1455 of yacc.c */ -#line 1720 "program_parse.y" +#line 1721 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference"); @@ -4218,7 +4219,7 @@ yyreduce: case 223: /* Line 1455 of yacc.c */ -#line 1735 "program_parse.y" +#line 1736 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4231,7 +4232,7 @@ yyreduce: case 224: /* Line 1455 of yacc.c */ -#line 1745 "program_parse.y" +#line 1746 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4244,7 +4245,7 @@ yyreduce: case 225: /* Line 1455 of yacc.c */ -#line 1753 "program_parse.y" +#line 1754 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer); @@ -4257,7 +4258,7 @@ yyreduce: case 226: /* Line 1455 of yacc.c */ -#line 1763 "program_parse.y" +#line 1764 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (3)].real); @@ -4270,7 +4271,7 @@ yyreduce: case 227: /* Line 1455 of yacc.c */ -#line 1771 "program_parse.y" +#line 1772 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (5)].real); @@ -4283,7 +4284,7 @@ yyreduce: case 228: /* Line 1455 of yacc.c */ -#line 1780 "program_parse.y" +#line 1781 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (7)].real); @@ -4296,7 +4297,7 @@ yyreduce: case 229: /* Line 1455 of yacc.c */ -#line 1789 "program_parse.y" +#line 1790 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (9)].real); @@ -4309,7 +4310,7 @@ yyreduce: case 230: /* Line 1455 of yacc.c */ -#line 1799 "program_parse.y" +#line 1800 "program_parse.y" { (yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real); ;} @@ -4318,7 +4319,7 @@ yyreduce: case 231: /* Line 1455 of yacc.c */ -#line 1803 "program_parse.y" +#line 1804 "program_parse.y" { (yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer)); ;} @@ -4327,42 +4328,42 @@ yyreduce: case 232: /* Line 1455 of yacc.c */ -#line 1808 "program_parse.y" +#line 1809 "program_parse.y" { (yyval.negate) = FALSE; ;} break; case 233: /* Line 1455 of yacc.c */ -#line 1809 "program_parse.y" +#line 1810 "program_parse.y" { (yyval.negate) = TRUE; ;} break; case 234: /* Line 1455 of yacc.c */ -#line 1810 "program_parse.y" +#line 1811 "program_parse.y" { (yyval.negate) = FALSE; ;} break; case 235: /* Line 1455 of yacc.c */ -#line 1813 "program_parse.y" +#line 1814 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; case 237: /* Line 1455 of yacc.c */ -#line 1816 "program_parse.y" +#line 1817 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; case 239: /* Line 1455 of yacc.c */ -#line 1820 "program_parse.y" +#line 1821 "program_parse.y" { if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) { YYERROR; @@ -4373,7 +4374,7 @@ yyreduce: case 240: /* Line 1455 of yacc.c */ -#line 1826 "program_parse.y" +#line 1827 "program_parse.y" { if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) { YYERROR; @@ -4384,7 +4385,7 @@ yyreduce: case 241: /* Line 1455 of yacc.c */ -#line 1834 "program_parse.y" +#line 1835 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)])); @@ -4400,7 +4401,7 @@ yyreduce: case 242: /* Line 1455 of yacc.c */ -#line 1847 "program_parse.y" +#line 1848 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_HPOS; @@ -4414,7 +4415,7 @@ yyreduce: case 243: /* Line 1455 of yacc.c */ -#line 1856 "program_parse.y" +#line 1857 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_FOGC; @@ -4428,7 +4429,7 @@ yyreduce: case 244: /* Line 1455 of yacc.c */ -#line 1865 "program_parse.y" +#line 1866 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (2)].result); ;} @@ -4437,7 +4438,7 @@ yyreduce: case 245: /* Line 1455 of yacc.c */ -#line 1869 "program_parse.y" +#line 1870 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_PSIZ; @@ -4451,7 +4452,7 @@ yyreduce: case 246: /* Line 1455 of yacc.c */ -#line 1878 "program_parse.y" +#line 1879 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer); @@ -4465,7 +4466,7 @@ yyreduce: case 247: /* Line 1455 of yacc.c */ -#line 1887 "program_parse.y" +#line 1888 "program_parse.y" { if (state->mode == ARB_fragment) { (yyval.result) = FRAG_RESULT_DEPTH; @@ -4479,7 +4480,7 @@ yyreduce: case 248: /* Line 1455 of yacc.c */ -#line 1898 "program_parse.y" +#line 1899 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer); ;} @@ -4488,7 +4489,7 @@ yyreduce: case 249: /* Line 1455 of yacc.c */ -#line 1904 "program_parse.y" +#line 1905 "program_parse.y" { (yyval.integer) = (state->mode == ARB_vertex) ? VERT_RESULT_COL0 @@ -4499,7 +4500,7 @@ yyreduce: case 250: /* Line 1455 of yacc.c */ -#line 1910 "program_parse.y" +#line 1911 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_COL0; @@ -4513,7 +4514,7 @@ yyreduce: case 251: /* Line 1455 of yacc.c */ -#line 1919 "program_parse.y" +#line 1920 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_BFC0; @@ -4527,7 +4528,7 @@ yyreduce: case 252: /* Line 1455 of yacc.c */ -#line 1930 "program_parse.y" +#line 1931 "program_parse.y" { (yyval.integer) = 0; ;} @@ -4536,7 +4537,7 @@ yyreduce: case 253: /* Line 1455 of yacc.c */ -#line 1934 "program_parse.y" +#line 1935 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 0; @@ -4550,7 +4551,7 @@ yyreduce: case 254: /* Line 1455 of yacc.c */ -#line 1943 "program_parse.y" +#line 1944 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 1; @@ -4564,91 +4565,91 @@ yyreduce: case 255: /* Line 1455 of yacc.c */ -#line 1953 "program_parse.y" +#line 1954 "program_parse.y" { (yyval.integer) = 0; ;} break; case 256: /* Line 1455 of yacc.c */ -#line 1954 "program_parse.y" +#line 1955 "program_parse.y" { (yyval.integer) = 0; ;} break; case 257: /* Line 1455 of yacc.c */ -#line 1955 "program_parse.y" +#line 1956 "program_parse.y" { (yyval.integer) = 1; ;} break; case 258: /* Line 1455 of yacc.c */ -#line 1958 "program_parse.y" +#line 1959 "program_parse.y" { (yyval.integer) = 0; ;} break; case 259: /* Line 1455 of yacc.c */ -#line 1959 "program_parse.y" +#line 1960 "program_parse.y" { (yyval.integer) = 0; ;} break; case 260: /* Line 1455 of yacc.c */ -#line 1960 "program_parse.y" +#line 1961 "program_parse.y" { (yyval.integer) = 1; ;} break; case 261: /* Line 1455 of yacc.c */ -#line 1963 "program_parse.y" +#line 1964 "program_parse.y" { (yyval.integer) = 0; ;} break; case 262: /* Line 1455 of yacc.c */ -#line 1964 "program_parse.y" +#line 1965 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; case 263: /* Line 1455 of yacc.c */ -#line 1967 "program_parse.y" +#line 1968 "program_parse.y" { (yyval.integer) = 0; ;} break; case 264: /* Line 1455 of yacc.c */ -#line 1968 "program_parse.y" +#line 1969 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; case 265: /* Line 1455 of yacc.c */ -#line 1971 "program_parse.y" +#line 1972 "program_parse.y" { (yyval.integer) = 0; ;} break; case 266: /* Line 1455 of yacc.c */ -#line 1972 "program_parse.y" +#line 1973 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; case 267: /* Line 1455 of yacc.c */ -#line 1976 "program_parse.y" +#line 1977 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector"); @@ -4662,7 +4663,7 @@ yyreduce: case 268: /* Line 1455 of yacc.c */ -#line 1987 "program_parse.y" +#line 1988 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector"); @@ -4676,7 +4677,7 @@ yyreduce: case 269: /* Line 1455 of yacc.c */ -#line 1998 "program_parse.y" +#line 1999 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector"); @@ -4690,7 +4691,7 @@ yyreduce: case 270: /* Line 1455 of yacc.c */ -#line 2009 "program_parse.y" +#line 2010 "program_parse.y" { struct asm_symbol *exist = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string)); @@ -4714,7 +4715,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 4718 "program_parse.tab.c" +#line 4719 "program_parse.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4933,7 +4934,42 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 2029 "program_parse.y" +#line 2030 "program_parse.y" + + +void +asm_instruction_set_operands(struct asm_instruction *inst, + const struct prog_dst_register *dst, + const struct asm_src_register *src0, + const struct asm_src_register *src1, + const struct asm_src_register *src2) +{ + /* In the core ARB extensions only the KIL instruction doesn't have a + * destination register. + */ + if (dst == NULL) { + init_dst_reg(& inst->Base.DstReg); + } else { + inst->Base.DstReg = *dst; + } + + inst->Base.SrcReg[0] = src0->Base; + inst->SrcReg[0] = *src0; + + if (src1 != NULL) { + inst->Base.SrcReg[1] = src1->Base; + inst->SrcReg[1] = *src1; + } else { + init_src_reg(& inst->SrcReg[1]); + } + + if (src2 != NULL) { + inst->Base.SrcReg[2] = src2->Base; + inst->SrcReg[2] = *src2; + } else { + init_src_reg(& inst->SrcReg[2]); + } +} struct asm_instruction * @@ -4943,37 +4979,34 @@ asm_instruction_ctor(gl_inst_opcode op, const struct asm_src_register *src1, const struct asm_src_register *src2) { - struct asm_instruction *inst = calloc(1, sizeof(struct asm_instruction)); + struct asm_instruction *inst = CALLOC_STRUCT(asm_instruction); if (inst) { _mesa_init_instructions(& inst->Base, 1); inst->Base.Opcode = op; - /* In the core ARB extensions only the KIL instruction doesn't have a - * destination register. - */ - if (dst == NULL) { - init_dst_reg(& inst->Base.DstReg); - } else { - inst->Base.DstReg = *dst; - } + asm_instruction_set_operands(inst, dst, src0, src1, src2); + } - inst->Base.SrcReg[0] = src0->Base; - inst->SrcReg[0] = *src0; + return inst; +} - if (src1 != NULL) { - inst->Base.SrcReg[1] = src1->Base; - inst->SrcReg[1] = *src1; - } else { - init_src_reg(& inst->SrcReg[1]); - } - if (src2 != NULL) { - inst->Base.SrcReg[2] = src2->Base; - inst->SrcReg[2] = *src2; - } else { - init_src_reg(& inst->SrcReg[2]); - } +struct asm_instruction * +asm_instruction_copy_ctor(const struct prog_instruction *base, + const struct prog_dst_register *dst, + const struct asm_src_register *src0, + const struct asm_src_register *src1, + const struct asm_src_register *src2) +{ + struct asm_instruction *inst = CALLOC_STRUCT(asm_instruction); + + if (inst) { + _mesa_init_instructions(& inst->Base, 1); + inst->Base.Opcode = base->Opcode; + inst->Base.SaturateMode = base->SaturateMode; + + asm_instruction_set_operands(inst, dst, src0, src1, src2); } return inst; diff --git a/src/mesa/shader/program_parse.tab.h b/src/mesa/shader/program_parse.tab.h index 7ab6f6b23e..5f89532d65 100644 --- a/src/mesa/shader/program_parse.tab.h +++ b/src/mesa/shader/program_parse.tab.h @@ -153,7 +153,7 @@ typedef union YYSTYPE { /* Line 1676 of yacc.c */ -#line 107 "program_parse.y" +#line 116 "program_parse.y" struct asm_instruction *inst; struct asm_symbol *sym; diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 32aa9d503f..4e2912d1c4 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -68,10 +68,19 @@ static void init_dst_reg(struct prog_dst_register *r); static void init_src_reg(struct asm_src_register *r); +static void asm_instruction_set_operands(struct asm_instruction *inst, + const struct prog_dst_register *dst, const struct asm_src_register *src0, + const struct asm_src_register *src1, const struct asm_src_register *src2); + static struct asm_instruction *asm_instruction_ctor(gl_inst_opcode op, const struct prog_dst_register *dst, const struct asm_src_register *src0, const struct asm_src_register *src1, const struct asm_src_register *src2); +static struct asm_instruction *asm_instruction_copy_ctor( + const struct prog_instruction *base, const struct prog_dst_register *dst, + const struct asm_src_register *src0, const struct asm_src_register *src1, + const struct asm_src_register *src2); + #ifndef FALSE #define FALSE 0 #define TRUE (!FALSE) @@ -358,51 +367,45 @@ ARL_instruction: ARL maskedAddrReg ',' scalarSrcReg VECTORop_instruction: VECTOR_OP maskedDstReg ',' swizzleSrcReg { - $$ = asm_instruction_ctor($1.Opcode, & $2, & $4, NULL, NULL); - $$->Base.SaturateMode = $1.SaturateMode; + $$ = asm_instruction_copy_ctor(& $1, & $2, & $4, NULL, NULL); } ; SCALARop_instruction: SCALAR_OP maskedDstReg ',' scalarSrcReg { - $$ = asm_instruction_ctor($1.Opcode, & $2, & $4, NULL, NULL); - $$->Base.SaturateMode = $1.SaturateMode; + $$ = asm_instruction_copy_ctor(& $1, & $2, & $4, NULL, NULL); } ; BINSCop_instruction: BINSC_OP maskedDstReg ',' scalarSrcReg ',' scalarSrcReg { - $$ = asm_instruction_ctor($1.Opcode, & $2, & $4, & $6, NULL); - $$->Base.SaturateMode = $1.SaturateMode; + $$ = asm_instruction_copy_ctor(& $1, & $2, & $4, & $6, NULL); } ; BINop_instruction: BIN_OP maskedDstReg ',' swizzleSrcReg ',' swizzleSrcReg { - $$ = asm_instruction_ctor($1.Opcode, & $2, & $4, & $6, NULL); - $$->Base.SaturateMode = $1.SaturateMode; + $$ = asm_instruction_copy_ctor(& $1, & $2, & $4, & $6, NULL); } ; TRIop_instruction: TRI_OP maskedDstReg ',' swizzleSrcReg ',' swizzleSrcReg ',' swizzleSrcReg { - $$ = asm_instruction_ctor($1.Opcode, & $2, & $4, & $6, & $8); - $$->Base.SaturateMode = $1.SaturateMode; + $$ = asm_instruction_copy_ctor(& $1, & $2, & $4, & $6, & $8); } ; SAMPLE_instruction: SAMPLE_OP maskedDstReg ',' swizzleSrcReg ',' texImageUnit ',' texTarget { - $$ = asm_instruction_ctor($1.Opcode, & $2, & $4, NULL, NULL); + $$ = asm_instruction_copy_ctor(& $1, & $2, & $4, NULL, NULL); if ($$ != NULL) { const GLbitfield tex_mask = (1U << $6); GLbitfield shadow_tex = 0; GLbitfield target_mask = 0; - $$->Base.SaturateMode = $1.SaturateMode; $$->Base.TexSrcUnit = $6; if ($8 < 0) { @@ -447,14 +450,13 @@ KIL_instruction: KIL swizzleSrcReg TXD_instruction: TXD_OP maskedDstReg ',' swizzleSrcReg ',' swizzleSrcReg ',' swizzleSrcReg ',' texImageUnit ',' texTarget { - $$ = asm_instruction_ctor($1.Opcode, & $2, & $4, & $6, & $8); + $$ = asm_instruction_copy_ctor(& $1, & $2, & $4, & $6, & $8); if ($$ != NULL) { const GLbitfield tex_mask = (1U << $10); GLbitfield shadow_tex = 0; GLbitfield target_mask = 0; - $$->Base.SaturateMode = $1.SaturateMode; $$->Base.TexSrcUnit = $10; if ($12 < 0) { @@ -518,8 +520,7 @@ SWZ_instruction: SWZ maskedDstReg ',' srcReg ',' extendedSwizzle $4.Base.Swizzle = $6.swizzle; $4.Base.Negate = $6.mask; - $$ = asm_instruction_ctor(OPCODE_SWZ, & $2, & $4, NULL, NULL); - $$->Base.SaturateMode = $1.SaturateMode; + $$ = asm_instruction_copy_ctor(& $1, & $2, & $4, NULL, NULL); } ; @@ -2028,6 +2029,41 @@ ALIAS_statement: ALIAS IDENTIFIER '=' IDENTIFIER %% +void +asm_instruction_set_operands(struct asm_instruction *inst, + const struct prog_dst_register *dst, + const struct asm_src_register *src0, + const struct asm_src_register *src1, + const struct asm_src_register *src2) +{ + /* In the core ARB extensions only the KIL instruction doesn't have a + * destination register. + */ + if (dst == NULL) { + init_dst_reg(& inst->Base.DstReg); + } else { + inst->Base.DstReg = *dst; + } + + inst->Base.SrcReg[0] = src0->Base; + inst->SrcReg[0] = *src0; + + if (src1 != NULL) { + inst->Base.SrcReg[1] = src1->Base; + inst->SrcReg[1] = *src1; + } else { + init_src_reg(& inst->SrcReg[1]); + } + + if (src2 != NULL) { + inst->Base.SrcReg[2] = src2->Base; + inst->SrcReg[2] = *src2; + } else { + init_src_reg(& inst->SrcReg[2]); + } +} + + struct asm_instruction * asm_instruction_ctor(gl_inst_opcode op, const struct prog_dst_register *dst, @@ -2035,37 +2071,34 @@ asm_instruction_ctor(gl_inst_opcode op, const struct asm_src_register *src1, const struct asm_src_register *src2) { - struct asm_instruction *inst = calloc(1, sizeof(struct asm_instruction)); + struct asm_instruction *inst = CALLOC_STRUCT(asm_instruction); if (inst) { _mesa_init_instructions(& inst->Base, 1); inst->Base.Opcode = op; - /* In the core ARB extensions only the KIL instruction doesn't have a - * destination register. - */ - if (dst == NULL) { - init_dst_reg(& inst->Base.DstReg); - } else { - inst->Base.DstReg = *dst; - } + asm_instruction_set_operands(inst, dst, src0, src1, src2); + } - inst->Base.SrcReg[0] = src0->Base; - inst->SrcReg[0] = *src0; + return inst; +} - if (src1 != NULL) { - inst->Base.SrcReg[1] = src1->Base; - inst->SrcReg[1] = *src1; - } else { - init_src_reg(& inst->SrcReg[1]); - } - if (src2 != NULL) { - inst->Base.SrcReg[2] = src2->Base; - inst->SrcReg[2] = *src2; - } else { - init_src_reg(& inst->SrcReg[2]); - } +struct asm_instruction * +asm_instruction_copy_ctor(const struct prog_instruction *base, + const struct prog_dst_register *dst, + const struct asm_src_register *src0, + const struct asm_src_register *src1, + const struct asm_src_register *src2) +{ + struct asm_instruction *inst = CALLOC_STRUCT(asm_instruction); + + if (inst) { + _mesa_init_instructions(& inst->Base, 1); + inst->Base.Opcode = base->Opcode; + inst->Base.SaturateMode = base->SaturateMode; + + asm_instruction_set_operands(inst, dst, src0, src1, src2); } return inst; -- cgit v1.2.3 From d0adebb8d5ef680590b0f281a20516318c0b8b62 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 4 Sep 2009 17:27:27 -0700 Subject: NV fp parser: Support instruction and TEMP / OUTPUT sizes Adds support for declaring TEMP and OUTPUT variables as 'LONG' or 'SHORT' precision. The precision specifiers are parsed, but they are currently ignored. Some support for this may be added in the future, but neither Intel hardware nor, as far as I'm aware, Radeon hardware support multiple precisions. Also adds support for instruction precision ('X', 'H', and 'R') suffixes and instruction condition code output ('C') suffix. This results in a fairly major change to the lexer. Instructions are matched with all the possible suffix strings. The suffix string are then carved off by a context (i.e., which program mode and options are set) aware parser that converts the suffixes to bits in prog_instruction. This could have been handled in the same way _SAT was originally handled in the lexer, but it would have resulted in a very large lexer with lots of opportunity for cut-and-paste errors. --- src/mesa/shader/lex.yy.c | 1874 +++++++++++++++------------------ src/mesa/shader/program_lexer.l | 194 ++-- src/mesa/shader/program_parse.tab.c | 776 +++++++------- src/mesa/shader/program_parse.y | 50 +- src/mesa/shader/program_parse_extra.c | 61 ++ src/mesa/shader/program_parser.h | 14 + 6 files changed, 1463 insertions(+), 1506 deletions(-) diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c index 5bde12a6b7..d71a13c3bd 100644 --- a/src/mesa/shader/lex.yy.c +++ b/src/mesa/shader/lex.yy.c @@ -357,8 +357,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 217 -#define YY_END_OF_BUFFER 218 +#define YY_NUM_RULES 168 +#define YY_END_OF_BUFFER 169 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -366,93 +366,100 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[776] = +static yyconst flex_int16_t yy_accept[836] = { 0, - 0, 0, 218, 216, 214, 213, 216, 216, 186, 212, - 188, 188, 188, 188, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 214, 0, 0, 215, 186, - 0, 187, 189, 209, 209, 0, 0, 0, 0, 209, - 0, 0, 0, 0, 0, 0, 0, 166, 210, 167, - 168, 200, 200, 200, 200, 0, 188, 0, 174, 175, - 176, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 207, 207, 0, 0, 0, + 0, 0, 169, 167, 165, 164, 167, 167, 137, 163, + 139, 139, 139, 139, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 165, 0, 0, 166, 137, + 0, 138, 140, 160, 160, 0, 0, 0, 0, 160, + 0, 0, 0, 0, 0, 0, 0, 117, 161, 118, + 119, 151, 151, 151, 151, 0, 139, 0, 125, 126, + 127, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 206, 206, 206, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 197, 197, 197, 198, 198, 199, 190, - 189, 190, 0, 191, 11, 13, 186, 15, 186, 186, - 16, 18, 186, 20, 22, 24, 26, 28, 30, 6, - - 32, 34, 35, 37, 39, 42, 40, 44, 45, 47, - 49, 51, 53, 55, 186, 186, 186, 186, 186, 65, - 67, 186, 69, 71, 73, 75, 77, 79, 81, 186, - 83, 85, 87, 89, 91, 93, 95, 186, 97, 99, - 101, 103, 186, 109, 111, 186, 186, 186, 186, 186, - 186, 0, 0, 0, 0, 189, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 127, 128, 130, 0, - 205, 0, 0, 0, 0, 0, 0, 144, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 204, 203, - 203, 156, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 194, 194, 195, 196, 0, 192, 186, 186, - 186, 186, 186, 186, 186, 186, 177, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 57, 186, 61, - 186, 186, 186, 178, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 10, - 186, 186, 186, 186, 105, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 0, 211, 0, 0, 0, 120, - 121, 0, 0, 0, 0, 0, 0, 0, 132, 0, + 157, 157, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 148, 148, 149, 149, 150, 141, + 140, 141, 0, 142, 11, 12, 137, 13, 137, 137, + 14, 15, 137, 16, 17, 18, 19, 20, 21, 6, + + 22, 23, 24, 25, 26, 28, 27, 29, 30, 31, + 32, 33, 34, 35, 137, 137, 137, 137, 137, 40, + 41, 137, 42, 43, 44, 45, 46, 47, 48, 137, + 49, 50, 51, 52, 53, 54, 55, 137, 56, 57, + 58, 59, 137, 62, 63, 137, 137, 137, 137, 137, + 137, 0, 0, 0, 0, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 78, 79, 81, 0, + 156, 0, 0, 0, 0, 0, 0, 95, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 154, + 154, 107, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 145, 145, 146, 147, 0, 143, 11, 11, + 137, 12, 12, 12, 137, 137, 137, 137, 137, 15, + 15, 137, 128, 16, 16, 137, 17, 17, 137, 18, + 18, 137, 19, 19, 137, 20, 20, 137, 21, 21, + 137, 22, 22, 137, 24, 24, 137, 25, 25, 137, + 28, 28, 137, 27, 27, 137, 30, 30, 137, 31, + 31, 137, 32, 32, 137, 33, 33, 137, 34, 34, + 137, 35, 35, 137, 137, 137, 137, 36, 137, 38, + 137, 40, 40, 137, 41, 41, 137, 129, 42, 42, + 137, 43, 43, 137, 137, 45, 45, 137, 46, 46, + + 137, 47, 47, 137, 48, 48, 137, 137, 49, 49, + 137, 50, 50, 137, 51, 51, 137, 52, 52, 137, + 53, 53, 137, 54, 54, 137, 137, 10, 56, 137, + 57, 137, 58, 137, 59, 137, 60, 137, 62, 62, + 137, 137, 137, 137, 137, 137, 137, 137, 0, 162, + 0, 0, 0, 71, 72, 0, 0, 0, 0, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, - 0, 160, 0, 162, 0, 0, 0, 0, 0, 0, - 201, 193, 186, 186, 186, 4, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 9, - 186, 59, 186, 63, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 107, 186, 186, 186, - 186, 186, 116, 186, 186, 0, 0, 0, 0, 0, - 122, 123, 0, 0, 0, 0, 131, 0, 0, 135, - - 138, 0, 0, 0, 0, 0, 0, 0, 149, 150, - 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 186, 186, 186, 186, 186, - 186, 5, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 7, 8, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 117, 186, 113, 0, 0, 0, - 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 141, 0, 145, 146, 0, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 164, 165, 0, - 0, 172, 12, 3, 14, 182, 183, 186, 17, 19, - 21, 23, 25, 27, 29, 31, 33, 36, 38, 43, - 41, 46, 48, 50, 52, 54, 56, 186, 186, 186, - 186, 66, 68, 70, 72, 74, 76, 78, 80, 82, - 186, 186, 186, 84, 86, 88, 90, 92, 94, 96, - 98, 100, 102, 104, 186, 186, 110, 112, 186, 115, - 173, 0, 0, 118, 0, 124, 0, 0, 0, 133, - 0, 0, 0, 0, 0, 0, 147, 0, 0, 153, - - 140, 0, 0, 0, 0, 0, 0, 169, 0, 186, - 58, 186, 62, 186, 179, 180, 186, 106, 186, 114, - 0, 0, 0, 0, 126, 129, 134, 0, 0, 139, - 0, 0, 0, 152, 0, 0, 0, 0, 161, 163, - 0, 186, 60, 64, 186, 108, 2, 1, 0, 125, - 0, 137, 0, 143, 151, 0, 0, 158, 159, 170, - 186, 181, 0, 136, 0, 154, 157, 186, 119, 142, - 186, 186, 184, 185, 0 + 0, 153, 0, 0, 0, 111, 0, 113, 0, 0, + 0, 0, 0, 0, 152, 144, 137, 137, 137, 4, + + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 9, 37, 39, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 60, 137, 61, + 137, 137, 137, 137, 137, 67, 137, 137, 0, 0, + 0, 0, 0, 73, 74, 0, 0, 0, 0, 82, + 0, 0, 86, 89, 0, 0, 0, 0, 0, 0, + 0, 100, 101, 0, 0, 0, 0, 106, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 137, 137, + + 137, 137, 137, 137, 5, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 7, 8, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 61, 137, + 137, 137, 137, 137, 68, 137, 64, 0, 0, 0, + 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 0, 96, 97, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 116, 0, + 0, 123, 11, 3, 12, 133, 134, 137, 14, 15, + + 16, 17, 18, 19, 20, 21, 22, 24, 25, 28, + 27, 30, 31, 32, 33, 34, 35, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 137, 137, 137, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 137, 137, 62, 63, 137, 66, 124, 0, 0, 69, + 0, 75, 0, 0, 0, 84, 0, 0, 0, 0, + 0, 0, 98, 0, 0, 104, 91, 0, 0, 0, + 0, 0, 0, 120, 0, 137, 130, 131, 137, 60, + 137, 65, 0, 0, 0, 0, 77, 80, 85, 0, + 0, 90, 0, 0, 0, 103, 0, 0, 0, 0, + + 112, 114, 0, 137, 137, 61, 2, 1, 0, 76, + 0, 88, 0, 94, 102, 0, 0, 109, 110, 121, + 137, 132, 0, 87, 0, 105, 108, 137, 70, 93, + 137, 137, 135, 136, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -498,185 +505,199 @@ static yyconst flex_int32_t yy_meta[68] = 2, 2, 2, 2, 2, 2, 2 } ; -static yyconst flex_int16_t yy_base[779] = +static yyconst flex_int16_t yy_base[839] = { 0, - 0, 0, 1054, 1055, 66, 1055, 1048, 1049, 0, 69, - 85, 128, 140, 152, 151, 58, 56, 63, 76, 1027, - 158, 160, 39, 163, 173, 189, 52, 1020, 76, 990, - 989, 1001, 985, 999, 998, 105, 1027, 1039, 1055, 0, - 225, 1055, 218, 160, 157, 20, 123, 66, 119, 192, - 999, 985, 54, 162, 983, 995, 194, 1055, 200, 195, - 98, 227, 196, 231, 235, 293, 305, 316, 1055, 1055, - 1055, 1004, 1017, 1011, 223, 1000, 1003, 999, 1014, 107, - 298, 996, 1010, 246, 996, 1009, 1000, 1013, 990, 1001, - 992, 182, 993, 984, 993, 984, 983, 984, 144, 978, - - 984, 995, 986, 980, 977, 978, 982, 289, 991, 978, - 302, 985, 972, 986, 962, 65, 315, 989, 981, 980, - 956, 941, 936, 953, 929, 934, 960, 279, 949, 293, - 944, 342, 299, 946, 927, 317, 937, 933, 928, 207, - 934, 920, 936, 933, 924, 320, 324, 926, 915, 929, - 932, 914, 929, 916, 913, 920, 284, 928, 227, 288, - 327, 342, 345, 905, 922, 923, 916, 898, 318, 899, - 921, 912, 330, 341, 345, 349, 353, 357, 361, 1055, - 419, 430, 436, 442, 920, 205, 944, 0, 943, 926, - 916, 915, 935, 913, 912, 911, 910, 909, 908, 0, - - 907, 0, 906, 905, 0, 904, 903, 0, 902, 901, - 900, 899, 898, 897, 913, 906, 919, 354, 356, 893, - 892, 898, 890, 889, 888, 887, 886, 885, 884, 905, - 882, 881, 880, 879, 878, 877, 876, 886, 874, 873, - 872, 871, 357, 870, 869, 861, 860, 845, 845, 844, - 843, 886, 858, 846, 448, 456, 430, 850, 418, 847, - 841, 841, 835, 848, 848, 833, 1055, 1055, 848, 836, - 432, 843, 135, 840, 846, 433, 841, 1055, 832, 839, - 838, 841, 827, 826, 830, 825, 330, 830, 439, 442, - 451, 1055, 822, 820, 820, 828, 829, 811, 456, 816, - - 822, 441, 447, 454, 458, 462, 520, 526, 836, 848, - 834, 833, 826, 840, 830, 829, 0, 828, 827, 826, - 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, - 815, 814, 813, 812, 815, 808, 815, 800, 807, 798, - 821, 804, 803, 0, 802, 801, 800, 799, 798, 797, - 796, 799, 794, 793, 792, 791, 790, 789, 788, 0, - 787, 786, 785, 784, 775, 782, 781, 780, 758, 752, - 757, 763, 746, 761, 495, 1055, 760, 750, 754, 1055, - 1055, 744, 753, 739, 756, 739, 742, 736, 1055, 737, - 736, 733, 740, 733, 741, 737, 747, 744, 726, 732, - - 739, 723, 722, 740, 722, 734, 733, 1055, 732, 722, - 726, 1055, 713, 1055, 718, 718, 726, 709, 710, 720, - 1055, 1055, 752, 734, 750, 0, 532, 748, 748, 747, - 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, - 736, 735, 734, 733, 732, 731, 730, 717, 710, 0, - 710, 701, 708, 699, 723, 722, 721, 720, 719, 718, - 717, 716, 715, 693, 713, 712, 711, 710, 709, 708, - 707, 706, 705, 704, 703, 685, 676, 700, 699, 668, - 671, 651, 0, 652, 645, 652, 651, 652, 644, 662, - 1055, 1055, 644, 642, 652, 645, 1055, 640, 657, 345, - - 1055, 648, 632, 633, 642, 633, 632, 632, 1055, 631, - 640, 630, 646, 643, 1055, 642, 640, 629, 630, 626, - 618, 625, 620, 621, 616, 642, 642, 640, 654, 653, - 648, 0, 636, 635, 634, 633, 632, 631, 630, 629, - 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, - 618, 0, 0, 635, 617, 633, 615, 613, 612, 611, - 610, 609, 608, 607, 606, 605, 484, 604, 603, 602, - 601, 600, 599, 598, 597, 596, 595, 594, 611, 593, - 591, 590, 568, 568, 0, 575, 0, 609, 608, 557, - 575, 1055, 570, 565, 558, 554, 566, 556, 554, 550, - - 566, 557, 556, 1055, 1055, 559, 1055, 554, 547, 536, - 547, 539, 543, 556, 551, 554, 536, 1055, 1055, 548, - 537, 1055, 0, 0, 0, 0, 0, 576, 0, 0, + 0, 0, 1283, 1284, 66, 1284, 1277, 1278, 0, 69, + 85, 128, 140, 152, 151, 58, 56, 63, 76, 1256, + 158, 160, 39, 163, 173, 189, 52, 1249, 76, 1219, + 1218, 1230, 1214, 1228, 1227, 105, 1256, 1268, 1284, 0, + 225, 1284, 218, 160, 157, 20, 123, 66, 119, 192, + 1228, 1214, 54, 162, 1212, 1224, 194, 1284, 200, 195, + 98, 227, 196, 231, 235, 293, 305, 316, 1284, 1284, + 1284, 1233, 1246, 1240, 223, 1229, 1232, 1228, 1243, 107, + 298, 1225, 1239, 246, 1225, 1238, 1229, 1242, 1219, 1230, + 1221, 182, 1222, 1213, 1222, 1213, 1212, 1213, 144, 1207, + + 1213, 1224, 1215, 1209, 1206, 1207, 1211, 289, 1220, 1207, + 302, 1214, 1201, 1215, 1191, 65, 315, 1218, 1210, 1209, + 1185, 1170, 1165, 1182, 1158, 1163, 1189, 279, 1178, 293, + 1173, 342, 299, 1175, 1156, 317, 1166, 1162, 1157, 207, + 1163, 1149, 1165, 1162, 1153, 320, 324, 1155, 1144, 1158, + 1161, 1143, 1158, 1145, 1142, 1149, 284, 1157, 227, 288, + 327, 342, 345, 1134, 1151, 1152, 1145, 1127, 318, 1128, + 1150, 1141, 330, 341, 345, 349, 353, 357, 361, 1284, + 419, 430, 436, 442, 440, 441, 1174, 0, 1173, 1156, + 1146, 443, 1166, 444, 451, 468, 470, 472, 471, 0, + + 496, 0, 497, 498, 0, 499, 500, 0, 524, 525, + 526, 536, 537, 553, 1161, 1154, 1167, 354, 356, 561, + 563, 1148, 564, 565, 1140, 580, 590, 591, 592, 1161, + 593, 617, 618, 619, 629, 630, 1138, 1148, 247, 330, + 362, 419, 445, 646, 1136, 1128, 1127, 1112, 1112, 1111, + 1110, 1153, 1125, 1113, 662, 669, 643, 1117, 487, 1114, + 1108, 1108, 1102, 1115, 1115, 1100, 1284, 1284, 1115, 1103, + 646, 1110, 135, 1107, 1113, 561, 1108, 1284, 1099, 1106, + 1105, 1108, 1094, 1093, 1097, 1092, 330, 1097, 650, 653, + 665, 1284, 1089, 1087, 1087, 1095, 1096, 1078, 670, 1083, + + 1089, 432, 460, 486, 579, 655, 715, 722, 1095, 682, + 1102, 1093, 697, 721, 1100, 1099, 1092, 1106, 1096, 1087, + 699, 1094, 0, 1085, 724, 1092, 1083, 725, 1090, 1081, + 726, 1088, 1079, 727, 1086, 1077, 728, 1084, 1075, 729, + 1082, 1073, 730, 1080, 1071, 731, 1078, 1069, 732, 1076, + 1067, 733, 1074, 1065, 734, 1072, 1063, 735, 1070, 1061, + 736, 1068, 1059, 737, 1066, 1057, 738, 1064, 1055, 739, + 1062, 1053, 740, 1060, 1063, 1056, 1063, 0, 1056, 0, + 1071, 1046, 741, 1053, 1044, 742, 1051, 0, 1042, 743, + 1049, 1040, 745, 1047, 1046, 1037, 746, 1044, 1035, 767, + + 1042, 1033, 770, 1040, 1031, 771, 1038, 1041, 1028, 772, + 1035, 1026, 773, 1033, 1024, 774, 1031, 1022, 775, 1029, + 1020, 776, 1027, 1018, 777, 1025, 1024, 0, 1015, 1022, + 1013, 1020, 1011, 1018, 1009, 1016, 778, 1015, 1006, 779, + 1013, 1012, 990, 984, 989, 995, 978, 993, 424, 1284, + 992, 982, 986, 1284, 1284, 976, 985, 971, 988, 971, + 974, 968, 1284, 969, 968, 965, 972, 965, 973, 969, + 979, 976, 958, 964, 971, 955, 954, 972, 954, 966, + 965, 1284, 964, 954, 958, 1284, 945, 1284, 950, 950, + 958, 941, 942, 952, 1284, 1284, 984, 966, 982, 0, + + 788, 980, 980, 979, 978, 977, 976, 975, 974, 973, + 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, + 962, 949, 942, 0, 0, 0, 959, 958, 957, 956, + 955, 954, 953, 952, 951, 929, 949, 948, 947, 946, + 945, 944, 943, 942, 941, 940, 939, 913, 920, 783, + 936, 935, 904, 907, 887, 0, 888, 881, 888, 887, + 888, 880, 898, 1284, 1284, 880, 878, 888, 881, 1284, + 876, 893, 345, 1284, 884, 868, 869, 878, 869, 868, + 868, 1284, 867, 876, 866, 882, 879, 1284, 878, 876, + 865, 866, 862, 854, 861, 856, 857, 852, 878, 878, + + 876, 890, 889, 884, 0, 872, 871, 870, 869, 868, + 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, + 857, 856, 855, 854, 0, 0, 853, 852, 851, 850, + 849, 848, 847, 846, 845, 791, 844, 843, 842, 841, + 840, 839, 838, 837, 836, 835, 834, 851, 825, 832, + 830, 829, 807, 807, 0, 814, 0, 848, 847, 796, + 814, 1284, 809, 804, 797, 793, 805, 795, 793, 789, + 805, 796, 795, 1284, 1284, 798, 1284, 793, 786, 775, + 786, 778, 782, 795, 790, 793, 775, 1284, 1284, 787, + 776, 1284, 0, 0, 0, 0, 0, 815, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 811, 803, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 557, 574, 555, - 572, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 568, 567, 565, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 550, 567, 0, 0, 521, 0, - 0, 572, 571, 1055, 518, 1055, 522, 522, 531, 1055, - 515, 529, 517, 519, 516, 518, 1055, 496, 507, 1055, - - 1055, 511, 507, 500, 497, 497, 510, 1055, 494, 534, - 0, 518, 0, 517, 0, 0, 532, 0, 515, 0, - 67, 187, 172, 202, 1055, 1055, 1055, 219, 243, 1055, - 245, 246, 300, 1055, 292, 315, 332, 340, 1055, 1055, - 357, 406, 0, 0, 402, 0, 1055, 1055, 381, 1055, - 423, 1055, 437, 1055, 1055, 431, 429, 1055, 1055, 1055, - 460, 0, 448, 1055, 444, 1055, 1055, 534, 1055, 1055, - 496, 528, 0, 0, 1055, 565, 546, 568 + 775, 791, 0, 0, 745, 0, 0, 796, 795, 1284, + 737, 1284, 655, 655, 661, 1284, 644, 658, 643, 644, + 635, 620, 1284, 598, 608, 1284, 1284, 604, 586, 579, + 567, 567, 574, 1284, 557, 582, 0, 0, 582, 0, + 565, 0, 582, 580, 539, 525, 1284, 1284, 1284, 527, + 527, 1284, 525, 497, 499, 1284, 478, 451, 439, 441, + + 1284, 1284, 431, 441, 366, 0, 1284, 1284, 21, 1284, + 144, 1284, 176, 1284, 1284, 182, 187, 1284, 1284, 1284, + 220, 0, 235, 1284, 245, 1284, 1284, 424, 1284, 1284, + 327, 373, 0, 0, 1284, 824, 396, 827 } ; -static yyconst flex_int16_t yy_def[779] = +static yyconst flex_int16_t yy_def[839] = { 0, - 775, 1, 775, 775, 775, 775, 775, 776, 777, 775, - 775, 775, 775, 775, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 775, 775, 776, 775, 777, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 778, 775, 775, 775, 775, - 775, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 777, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 777, - 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 777, 777, 777, 777, 777, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 777, 777, 775, 775, 775, 775, 775, 777, 775, 775, - 777, 777, 777, 777, 0, 775, 775, 775 + 835, 1, 835, 835, 835, 835, 835, 836, 837, 835, + 835, 835, 835, 835, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 835, 835, 836, 835, 837, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 838, 835, 835, 835, 835, + 835, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + + 835, 835, 835, 835, 835, 835, 835, 835, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 837, 837, 837, 837, + + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 837, 837, + + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 837, 837, 837, 837, 837, 837, 837, 837, + + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 837, 837, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 837, 837, 837, 837, 837, + 837, 837, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + + 835, 835, 835, 837, 837, 837, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 837, 837, 835, 835, 835, 835, 835, 837, 835, 835, + 837, 837, 837, 837, 0, 835, 835, 835 } ; -static yyconst flex_int16_t yy_nxt[1123] = +static yyconst flex_int16_t yy_nxt[1352] = { 0, 4, 5, 6, 5, 7, 8, 9, 4, 10, 11, 12, 13, 14, 11, 11, 15, 9, 16, 17, 18, @@ -685,7 +706,7 @@ static yyconst flex_int16_t yy_nxt[1123] = 9, 9, 9, 9, 9, 9, 30, 9, 9, 9, 9, 9, 9, 9, 9, 9, 31, 9, 32, 33, 34, 9, 35, 9, 9, 9, 9, 36, 96, 36, - 41, 116, 137, 97, 80, 138, 747, 42, 43, 43, + 41, 116, 137, 97, 80, 138, 823, 42, 43, 43, 43, 43, 43, 43, 77, 81, 78, 119, 82, 117, 83, 238, 79, 66, 67, 67, 67, 67, 67, 67, @@ -697,114 +718,139 @@ static yyconst flex_int16_t yy_nxt[1123] = 67, 67, 67, 67, 67, 218, 171, 219, 70, 68, 66, 67, 67, 67, 67, 67, 67, 72, 139, 73, 71, 68, 140, 68, 144, 92, 74, 145, 98, 88, - 390, 89, 75, 93, 76, 68, 90, 99, 94, 91, - 101, 100, 102, 103, 95, 391, 748, 68, 136, 133, + 464, 89, 75, 93, 76, 68, 90, 99, 94, 91, + 101, 100, 102, 103, 95, 465, 824, 68, 136, 133, 210, 133, 133, 152, 133, 104, 105, 133, 106, 107, 108, 109, 110, 134, 111, 133, 112, 153, 133, 211, - 135, 749, 113, 114, 154, 115, 41, 43, 43, 43, - 43, 43, 43, 146, 147, 157, 310, 132, 165, 133, - 166, 161, 162, 167, 168, 311, 158, 163, 188, 159, - 133, 169, 160, 264, 189, 164, 750, 201, 133, 174, - 173, 175, 176, 132, 751, 265, 128, 129, 46, 47, + 135, 825, 113, 114, 154, 115, 41, 43, 43, 43, + 43, 43, 43, 146, 147, 157, 826, 132, 165, 133, + 166, 161, 162, 167, 168, 827, 158, 163, 188, 159, + 133, 169, 160, 264, 189, 164, 828, 201, 133, 174, + 173, 175, 176, 132, 429, 265, 128, 129, 46, 47, 48, 49, 172, 51, 52, 202, 284, 53, 54, 55, - 56, 57, 58, 130, 60, 61, 285, 752, 131, 753, + 56, 57, 58, 130, 60, 61, 285, 430, 131, 829, 173, 173, 173, 173, 177, 173, 173, 178, 179, 173, - 173, 173, 181, 181, 181, 181, 181, 181, 228, 754, + 173, 173, 181, 181, 181, 181, 181, 181, 228, 830, 196, 197, 182, 66, 67, 67, 67, 67, 67, 67, 198, 232, 229, 183, 68, 184, 184, 184, 184, 184, 184, 240, 134, 241, 254, 233, 281, 286, 182, 135, - 257, 257, 282, 287, 242, 755, 257, 756, 164, 255, + 257, 257, 282, 287, 242, 833, 257, 431, 164, 255, 68, 256, 256, 256, 256, 256, 256, 257, 257, 257, 260, 257, 257, 297, 257, 271, 257, 257, 257, 257, - 757, 257, 340, 298, 257, 257, 338, 405, 257, 365, - 406, 288, 257, 289, 257, 257, 290, 291, 339, 257, - 341, 366, 257, 302, 302, 302, 302, 758, 599, 759, + 432, 257, 380, 298, 257, 257, 378, 479, 257, 433, + 480, 288, 257, 289, 257, 257, 290, 291, 379, 257, + 381, 834, 257, 302, 302, 302, 302, 40, 669, 822, - 257, 600, 760, 257, 302, 302, 302, 302, 303, 302, + 257, 670, 434, 257, 302, 302, 302, 302, 303, 302, 302, 304, 305, 302, 302, 302, 302, 302, 302, 302, 306, 302, 302, 302, 302, 302, 302, 302, 43, 43, - 43, 43, 43, 43, 761, 762, 763, 307, 132, 308, + 43, 43, 43, 43, 831, 832, 435, 307, 132, 308, 308, 308, 308, 308, 308, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 256, 256, 256, - 256, 256, 256, 378, 132, 256, 256, 256, 256, 256, - 256, 376, 376, 376, 376, 764, 379, 376, 394, 376, - 376, 376, 765, 376, 376, 766, 376, 767, 376, 376, - 376, 395, 408, 376, 661, 662, 768, 376, 376, 415, - - 376, 416, 769, 417, 421, 421, 421, 421, 770, 376, - 421, 421, 421, 421, 773, 663, 418, 422, 421, 421, - 421, 421, 421, 421, 421, 421, 421, 421, 421, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 486, 529, 530, 771, 772, 774, 40, 746, 745, - 744, 743, 742, 741, 740, 739, 738, 487, 737, 736, - 735, 734, 733, 732, 531, 38, 38, 38, 180, 180, - 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, - 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, - 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, - - 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, - 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, - 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, - 671, 670, 669, 668, 667, 666, 665, 664, 660, 659, - 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, - 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, - 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, - 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, - 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, - 608, 607, 606, 605, 604, 603, 602, 601, 598, 597, - - 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, - 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, - 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, - 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, - 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, - 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, - 536, 535, 534, 533, 532, 528, 527, 526, 525, 524, - 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, - 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, - 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, - - 493, 492, 491, 490, 489, 488, 485, 484, 483, 482, - 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, - 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, - 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, - 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, - 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, - 431, 430, 429, 428, 427, 426, 425, 424, 423, 420, - 419, 414, 413, 412, 411, 410, 409, 407, 404, 403, - 402, 401, 400, 399, 398, 397, 396, 393, 392, 389, - 388, 387, 386, 385, 384, 383, 382, 381, 380, 377, - - 288, 260, 375, 374, 373, 372, 371, 370, 369, 368, - 367, 364, 363, 362, 361, 360, 359, 358, 357, 356, - 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, - 345, 344, 343, 342, 337, 336, 335, 334, 333, 332, - 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, - 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, - 309, 301, 300, 299, 296, 295, 294, 293, 292, 283, - 280, 279, 278, 277, 276, 275, 274, 273, 272, 270, - 269, 268, 267, 266, 263, 262, 261, 259, 258, 172, - 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, - - 243, 237, 236, 235, 234, 231, 230, 227, 226, 225, - 224, 223, 222, 221, 220, 217, 216, 215, 214, 213, - 212, 209, 208, 207, 206, 205, 204, 203, 200, 199, - 193, 192, 191, 190, 187, 186, 185, 156, 155, 149, - 148, 39, 127, 126, 125, 124, 123, 122, 121, 118, - 87, 39, 37, 775, 3, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775 + 184, 184, 184, 184, 184, 184, 184, 309, 312, 436, + 320, 324, 310, 313, 132, 321, 325, 437, 327, 821, + 559, 310, 314, 328, 321, 325, 820, 310, 313, 438, + 311, 315, 328, 322, 326, 330, 560, 333, 339, 336, + 331, 329, 334, 340, 337, 495, 495, 495, 495, 331, + + 819, 334, 340, 337, 818, 331, 817, 334, 332, 337, + 335, 341, 338, 342, 345, 348, 351, 354, 343, 346, + 349, 352, 355, 495, 495, 495, 495, 343, 346, 349, + 352, 355, 452, 816, 346, 349, 344, 347, 350, 353, + 356, 357, 360, 363, 815, 453, 358, 361, 364, 496, + 495, 495, 495, 366, 369, 358, 361, 364, 367, 370, + 814, 358, 361, 364, 359, 362, 365, 367, 370, 813, + 372, 812, 811, 367, 370, 373, 368, 371, 382, 810, + 385, 389, 392, 383, 373, 386, 390, 393, 809, 808, + 373, 807, 383, 374, 386, 390, 393, 396, 806, 805, + + 804, 384, 397, 387, 391, 394, 468, 399, 402, 405, + 409, 397, 400, 403, 406, 410, 803, 397, 802, 469, + 398, 400, 403, 406, 410, 801, 800, 400, 403, 406, + 401, 404, 407, 411, 412, 415, 418, 799, 798, 413, + 416, 419, 495, 495, 495, 495, 421, 424, 413, 416, + 419, 422, 425, 797, 413, 416, 419, 414, 417, 420, + 422, 425, 796, 439, 795, 794, 422, 425, 440, 423, + 426, 256, 256, 256, 256, 256, 256, 440, 256, 256, + 256, 256, 256, 256, 450, 450, 441, 450, 450, 793, + 450, 450, 450, 450, 450, 450, 792, 450, 791, 309, + + 450, 450, 790, 789, 450, 788, 482, 450, 450, 787, + 786, 450, 450, 489, 312, 490, 320, 491, 495, 495, + 495, 495, 311, 450, 308, 308, 308, 308, 308, 308, + 492, 308, 308, 308, 308, 308, 308, 315, 312, 322, + 498, 324, 327, 330, 333, 336, 339, 342, 345, 348, + 351, 354, 357, 360, 363, 366, 369, 372, 382, 385, + 389, 315, 392, 396, 326, 329, 332, 335, 338, 341, + 344, 347, 350, 353, 356, 359, 362, 365, 368, 371, + 374, 384, 387, 391, 399, 394, 398, 402, 405, 409, + 412, 415, 418, 421, 424, 548, 439, 785, 602, 603, + + 649, 727, 728, 784, 783, 782, 781, 401, 780, 779, + 404, 407, 411, 414, 417, 420, 423, 426, 549, 441, + 604, 778, 729, 650, 38, 38, 38, 180, 180, 777, + 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, + 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, + 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, + 746, 745, 744, 743, 742, 650, 741, 740, 739, 738, + 737, 736, 735, 734, 733, 732, 731, 730, 726, 725, + 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, + 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, + + 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, + 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, + 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, + 674, 673, 672, 671, 668, 667, 666, 665, 664, 663, + 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, + 652, 651, 648, 549, 647, 646, 645, 644, 643, 642, + 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, + 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + 611, 610, 609, 608, 607, 606, 605, 601, 600, 599, + + 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, + 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, + 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, + 568, 567, 566, 565, 564, 563, 562, 561, 558, 557, + 556, 555, 554, 553, 552, 551, 441, 550, 547, 436, + 546, 434, 545, 432, 544, 430, 543, 542, 426, 541, + 423, 540, 420, 539, 417, 538, 414, 537, 411, 536, + 535, 407, 534, 404, 533, 401, 532, 398, 531, 530, + 394, 529, 391, 528, 387, 527, 384, 526, 525, 524, + 523, 522, 521, 374, 520, 371, 519, 368, 518, 365, + + 517, 362, 516, 359, 515, 356, 514, 353, 513, 350, + 512, 347, 511, 344, 510, 341, 509, 338, 508, 335, + 507, 332, 506, 329, 505, 326, 504, 322, 503, 502, + 501, 500, 499, 315, 497, 311, 494, 493, 488, 487, + 486, 485, 484, 483, 481, 478, 477, 476, 475, 474, + 473, 472, 471, 470, 467, 466, 463, 462, 461, 460, + 459, 458, 457, 456, 455, 454, 451, 288, 260, 449, + 448, 447, 446, 445, 444, 443, 442, 428, 427, 408, + 395, 388, 377, 376, 375, 323, 319, 318, 317, 316, + 301, 300, 299, 296, 295, 294, 293, 292, 283, 280, + + 279, 278, 277, 276, 275, 274, 273, 272, 270, 269, + 268, 267, 266, 263, 262, 261, 259, 258, 172, 253, + 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, + 237, 236, 235, 234, 231, 230, 227, 226, 225, 224, + 223, 222, 221, 220, 217, 216, 215, 214, 213, 212, + 209, 208, 207, 206, 205, 204, 203, 200, 199, 193, + 192, 191, 190, 187, 186, 185, 156, 155, 149, 148, + 39, 127, 126, 125, 124, 123, 122, 121, 118, 87, + 39, 37, 835, 3, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835 } ; -static yyconst flex_int16_t yy_chk[1123] = +static yyconst flex_int16_t yy_chk[1352] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -813,7 +859,7 @@ static yyconst flex_int16_t yy_chk[1123] = 1, 1, 1, 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, 23, 5, - 10, 27, 46, 23, 17, 46, 721, 10, 10, 10, + 10, 27, 46, 23, 17, 46, 809, 10, 10, 10, 10, 10, 10, 10, 16, 17, 16, 29, 17, 27, 18, 116, 16, 11, 11, 11, 11, 11, 11, 11, @@ -826,110 +872,135 @@ static yyconst flex_int16_t yy_chk[1123] = 14, 14, 14, 14, 14, 14, 14, 15, 47, 15, 14, 14, 47, 12, 49, 22, 15, 49, 24, 21, 273, 21, 15, 22, 15, 13, 21, 24, 22, 21, - 25, 24, 25, 25, 22, 273, 722, 14, 45, 45, + 25, 24, 25, 25, 22, 273, 811, 14, 45, 45, 92, 44, 44, 54, 45, 25, 26, 44, 26, 26, 26, 26, 26, 44, 26, 45, 26, 54, 44, 92, - 44, 723, 26, 26, 54, 26, 41, 43, 43, 43, - 43, 43, 43, 50, 50, 57, 186, 43, 60, 50, - 60, 59, 59, 60, 60, 186, 57, 59, 75, 57, - 50, 60, 57, 140, 75, 59, 724, 84, 59, 63, - 63, 63, 63, 43, 728, 140, 41, 41, 41, 41, + 44, 813, 26, 26, 54, 26, 41, 43, 43, 43, + 43, 43, 43, 50, 50, 57, 816, 43, 60, 50, + 60, 59, 59, 60, 60, 817, 57, 59, 75, 57, + 50, 60, 57, 140, 75, 59, 821, 84, 59, 63, + 63, 63, 63, 43, 239, 140, 41, 41, 41, 41, 41, 41, 62, 41, 41, 84, 159, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 159, 729, 41, 731, + 41, 41, 41, 41, 41, 41, 159, 239, 41, 823, 62, 62, 62, 62, 64, 64, 64, 64, 65, 65, - 65, 65, 66, 66, 66, 66, 66, 66, 108, 732, + 65, 65, 66, 66, 66, 66, 66, 66, 108, 825, 81, 81, 66, 67, 67, 67, 67, 67, 67, 67, 81, 111, 108, 68, 67, 68, 68, 68, 68, 68, 68, 117, 128, 117, 130, 111, 157, 160, 66, 128, - 133, 133, 157, 160, 117, 733, 133, 735, 130, 132, + 133, 133, 157, 160, 117, 831, 133, 240, 130, 132, 67, 132, 132, 132, 132, 132, 132, 133, 136, 136, 136, 146, 146, 169, 136, 147, 147, 146, 161, 161, - 736, 147, 219, 169, 161, 136, 218, 287, 146, 243, + 240, 147, 219, 169, 161, 136, 218, 287, 146, 241, 287, 161, 147, 162, 162, 161, 163, 163, 218, 162, - 219, 243, 163, 173, 173, 173, 173, 737, 500, 738, + 219, 832, 163, 173, 173, 173, 173, 837, 573, 805, - 162, 500, 741, 163, 174, 174, 174, 174, 175, 175, + 162, 573, 241, 163, 174, 174, 174, 174, 175, 175, 175, 175, 176, 176, 176, 176, 177, 177, 177, 177, 178, 178, 178, 178, 179, 179, 179, 179, 181, 181, - 181, 181, 181, 181, 742, 745, 749, 182, 181, 182, + 181, 181, 181, 181, 828, 828, 242, 182, 181, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, - 183, 184, 184, 184, 184, 184, 184, 255, 255, 255, - 255, 255, 255, 259, 181, 256, 256, 256, 256, 256, - 256, 257, 257, 271, 271, 751, 259, 257, 276, 271, - 289, 289, 753, 290, 290, 756, 289, 757, 257, 290, - 271, 276, 291, 291, 567, 567, 761, 289, 291, 299, - - 290, 299, 763, 299, 302, 302, 302, 302, 765, 291, - 303, 303, 303, 303, 771, 567, 299, 304, 304, 304, - 304, 305, 305, 305, 305, 306, 306, 306, 306, 307, - 307, 307, 307, 307, 307, 308, 308, 308, 308, 308, - 308, 375, 427, 427, 768, 768, 772, 777, 719, 717, - 714, 712, 710, 709, 707, 706, 705, 375, 704, 703, - 702, 699, 698, 696, 427, 776, 776, 776, 778, 778, - 695, 694, 693, 692, 691, 689, 688, 687, 685, 683, - 682, 679, 676, 675, 663, 662, 661, 651, 650, 649, - 648, 628, 621, 620, 617, 616, 615, 614, 613, 612, - - 611, 610, 609, 608, 606, 603, 602, 601, 600, 599, - 598, 597, 596, 595, 594, 593, 591, 590, 589, 588, - 586, 584, 583, 582, 581, 580, 579, 578, 577, 576, - 575, 574, 573, 572, 571, 570, 569, 568, 566, 565, - 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, - 554, 551, 550, 549, 548, 547, 546, 545, 544, 543, - 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, - 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, - 521, 520, 519, 518, 517, 516, 514, 513, 512, 511, - 510, 508, 507, 506, 505, 504, 503, 502, 499, 498, - - 496, 495, 494, 493, 490, 489, 488, 487, 486, 485, - 484, 482, 481, 480, 479, 478, 477, 476, 475, 474, - 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, - 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, - 453, 452, 451, 449, 448, 447, 446, 445, 444, 443, - 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, - 432, 431, 430, 429, 428, 425, 424, 423, 420, 419, - 418, 417, 416, 415, 413, 411, 410, 409, 407, 406, - 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, - 395, 394, 393, 392, 391, 390, 388, 387, 386, 385, - - 384, 383, 382, 379, 378, 377, 374, 373, 372, 371, - 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, - 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, - 349, 348, 347, 346, 345, 343, 342, 341, 340, 339, - 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, - 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, - 318, 316, 315, 314, 313, 312, 311, 310, 309, 301, - 300, 298, 297, 296, 295, 294, 293, 288, 286, 285, - 284, 283, 282, 281, 280, 279, 277, 275, 274, 272, - 270, 269, 266, 265, 264, 263, 262, 261, 260, 258, - - 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, - 244, 242, 241, 240, 239, 238, 237, 236, 235, 234, - 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, - 223, 222, 221, 220, 217, 216, 215, 214, 213, 212, - 211, 210, 209, 207, 206, 204, 203, 201, 199, 198, - 197, 196, 195, 194, 193, 192, 191, 190, 189, 187, - 185, 172, 171, 170, 168, 167, 166, 165, 164, 158, - 156, 155, 154, 153, 152, 151, 150, 149, 148, 145, - 144, 143, 142, 141, 139, 138, 137, 135, 134, 131, - 129, 127, 126, 125, 124, 123, 122, 121, 120, 119, - - 118, 115, 114, 113, 112, 110, 109, 107, 106, 105, - 104, 103, 102, 101, 100, 98, 97, 96, 95, 94, - 93, 91, 90, 89, 88, 87, 86, 85, 83, 82, - 79, 78, 77, 76, 74, 73, 72, 56, 55, 52, - 51, 38, 37, 35, 34, 33, 32, 31, 30, 28, - 20, 8, 7, 3, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775 + 183, 184, 184, 184, 184, 184, 184, 185, 186, 242, + 192, 194, 185, 186, 181, 192, 194, 243, 195, 804, + 449, 185, 186, 195, 192, 194, 803, 185, 186, 243, + 185, 186, 195, 192, 194, 196, 449, 197, 199, 198, + 196, 195, 197, 199, 198, 302, 302, 302, 302, 196, + + 800, 197, 199, 198, 799, 196, 798, 197, 196, 198, + 197, 199, 198, 201, 203, 204, 206, 207, 201, 203, + 204, 206, 207, 303, 303, 303, 303, 201, 203, 204, + 206, 207, 259, 797, 203, 204, 201, 203, 204, 206, + 207, 209, 210, 211, 795, 259, 209, 210, 211, 304, + 304, 304, 304, 212, 213, 209, 210, 211, 212, 213, + 794, 209, 210, 211, 209, 210, 211, 212, 213, 793, + 214, 791, 790, 212, 213, 214, 212, 213, 220, 786, + 221, 223, 224, 220, 214, 221, 223, 224, 785, 784, + 214, 783, 220, 214, 221, 223, 224, 226, 781, 779, + + 776, 220, 226, 221, 223, 224, 276, 227, 228, 229, + 231, 226, 227, 228, 229, 231, 775, 226, 773, 276, + 226, 227, 228, 229, 231, 772, 771, 227, 228, 229, + 227, 228, 229, 231, 232, 233, 234, 770, 769, 232, + 233, 234, 305, 305, 305, 305, 235, 236, 232, 233, + 234, 235, 236, 768, 232, 233, 234, 232, 233, 234, + 235, 236, 765, 244, 764, 762, 235, 236, 244, 235, + 236, 255, 255, 255, 255, 255, 255, 244, 256, 256, + 256, 256, 256, 256, 257, 257, 244, 271, 271, 761, + 257, 289, 289, 271, 290, 290, 760, 289, 759, 310, + + 290, 257, 758, 757, 271, 755, 291, 291, 289, 754, + 753, 290, 291, 299, 313, 299, 321, 299, 306, 306, + 306, 306, 310, 291, 307, 307, 307, 307, 307, 307, + 299, 308, 308, 308, 308, 308, 308, 313, 314, 321, + 314, 325, 328, 331, 334, 337, 340, 343, 346, 349, + 352, 355, 358, 361, 364, 367, 370, 373, 383, 386, + 390, 314, 393, 397, 325, 328, 331, 334, 337, 340, + 343, 346, 349, 352, 355, 358, 361, 364, 367, 370, + 373, 383, 386, 390, 400, 393, 397, 403, 406, 410, + 413, 416, 419, 422, 425, 437, 440, 751, 501, 501, + + 550, 636, 636, 749, 748, 745, 742, 400, 741, 729, + 403, 406, 410, 413, 416, 419, 422, 425, 437, 440, + 501, 728, 636, 550, 836, 836, 836, 838, 838, 727, + 698, 691, 690, 687, 686, 685, 684, 683, 682, 681, + 680, 679, 678, 676, 673, 672, 671, 670, 669, 668, + 667, 666, 665, 664, 663, 661, 660, 659, 658, 656, + 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, + 644, 643, 642, 641, 640, 639, 638, 637, 635, 634, + 633, 632, 631, 630, 629, 628, 627, 624, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + + 611, 610, 609, 608, 607, 606, 604, 603, 602, 601, + 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, + 590, 589, 587, 586, 585, 584, 583, 581, 580, 579, + 578, 577, 576, 575, 572, 571, 569, 568, 567, 566, + 563, 562, 561, 560, 559, 558, 557, 555, 554, 553, + 552, 551, 549, 548, 547, 546, 545, 544, 543, 542, + 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, + 531, 530, 529, 528, 527, 523, 522, 521, 520, 519, + 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, + 508, 507, 506, 505, 504, 503, 502, 499, 498, 497, + + 494, 493, 492, 491, 490, 489, 487, 485, 484, 483, + 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, + 471, 470, 469, 468, 467, 466, 465, 464, 462, 461, + 460, 459, 458, 457, 456, 453, 452, 451, 448, 447, + 446, 445, 444, 443, 442, 441, 439, 438, 436, 435, + 434, 433, 432, 431, 430, 429, 427, 426, 424, 423, + 421, 420, 418, 417, 415, 414, 412, 411, 409, 408, + 407, 405, 404, 402, 401, 399, 398, 396, 395, 394, + 392, 391, 389, 387, 385, 384, 382, 381, 379, 377, + 376, 375, 374, 372, 371, 369, 368, 366, 365, 363, + + 362, 360, 359, 357, 356, 354, 353, 351, 350, 348, + 347, 345, 344, 342, 341, 339, 338, 336, 335, 333, + 332, 330, 329, 327, 326, 324, 322, 320, 319, 318, + 317, 316, 315, 312, 311, 309, 301, 300, 298, 297, + 296, 295, 294, 293, 288, 286, 285, 284, 283, 282, + 281, 280, 279, 277, 275, 274, 272, 270, 269, 266, + 265, 264, 263, 262, 261, 260, 258, 254, 253, 252, + 251, 250, 249, 248, 247, 246, 245, 238, 237, 230, + 225, 222, 217, 216, 215, 193, 191, 190, 189, 187, + 172, 171, 170, 168, 167, 166, 165, 164, 158, 156, + + 155, 154, 153, 152, 151, 150, 149, 148, 145, 144, + 143, 142, 141, 139, 138, 137, 135, 134, 131, 129, + 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, + 115, 114, 113, 112, 110, 109, 107, 106, 105, 104, + 103, 102, 101, 100, 98, 97, 96, 95, 94, 93, + 91, 90, 89, 88, 87, 86, 85, 83, 82, 79, + 78, 77, 76, 74, 73, 72, 56, 55, 52, 51, + 38, 37, 35, 34, 33, 32, 31, 30, 28, 20, + 8, 7, 3, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, + 835 } ; /* The intent behind this definition is that it'll catch @@ -997,11 +1068,13 @@ static yyconst flex_int16_t yy_chk[1123] = } while (0) -#define return_opcode(condition, token, opcode, sat) \ +#define return_opcode(condition, token, opcode, len) \ do { \ - if (condition) { \ + if (condition && \ + _mesa_parse_instruction_suffix(yyextra, \ + yytext + len, \ + & yylval->temp_inst)) { \ yylval->temp_inst.Opcode = OPCODE_ ## opcode; \ - yylval->temp_inst.SaturateMode = SATURATE_ ## sat; \ return token; \ } else { \ yylval->string = strdup(yytext); \ @@ -1067,7 +1140,7 @@ swiz_from_char(char c) } while(0); #define YY_EXTRA_TYPE struct asm_parser_state * -#line 1071 "lex.yy.c" +#line 1144 "lex.yy.c" #define INITIAL 0 @@ -1313,10 +1386,10 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 136 "program_lexer.l" +#line 143 "program_lexer.l" -#line 1320 "lex.yy.c" +#line 1393 "lex.yy.c" yylval = yylval_param; @@ -1373,13 +1446,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 >= 776 ) + if ( yy_current_state >= 836 ) 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_base[yy_current_state] != 1055 ); + while ( yy_base[yy_current_state] != 1284 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1405,17 +1478,17 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 138 "program_lexer.l" +#line 145 "program_lexer.l" { return ARBvp_10; } YY_BREAK case 2: YY_RULE_SETUP -#line 139 "program_lexer.l" +#line 146 "program_lexer.l" { return ARBfp_10; } YY_BREAK case 3: YY_RULE_SETUP -#line 140 "program_lexer.l" +#line 147 "program_lexer.l" { yylval->integer = at_address; return_token_or_IDENTIFIER(require_ARB_vp, ADDRESS); @@ -1423,983 +1496,738 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 144 "program_lexer.l" +#line 151 "program_lexer.l" { return ALIAS; } YY_BREAK case 5: YY_RULE_SETUP -#line 145 "program_lexer.l" +#line 152 "program_lexer.l" { return ATTRIB; } YY_BREAK case 6: YY_RULE_SETUP -#line 146 "program_lexer.l" +#line 153 "program_lexer.l" { return END; } YY_BREAK case 7: YY_RULE_SETUP -#line 147 "program_lexer.l" +#line 154 "program_lexer.l" { return OPTION; } YY_BREAK case 8: YY_RULE_SETUP -#line 148 "program_lexer.l" +#line 155 "program_lexer.l" { return OUTPUT; } YY_BREAK case 9: YY_RULE_SETUP -#line 149 "program_lexer.l" +#line 156 "program_lexer.l" { return PARAM; } YY_BREAK case 10: YY_RULE_SETUP -#line 150 "program_lexer.l" +#line 157 "program_lexer.l" { yylval->integer = at_temp; return TEMP; } YY_BREAK case 11: YY_RULE_SETUP -#line 152 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, ABS, OFF); } +#line 159 "program_lexer.l" +{ return_opcode( 1, VECTOR_OP, ABS, 3); } YY_BREAK case 12: YY_RULE_SETUP -#line 153 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, ABS, ZERO_ONE); } +#line 160 "program_lexer.l" +{ return_opcode( 1, BIN_OP, ADD, 3); } YY_BREAK case 13: YY_RULE_SETUP -#line 154 "program_lexer.l" -{ return_opcode( 1, BIN_OP, ADD, OFF); } +#line 161 "program_lexer.l" +{ return_opcode(require_ARB_vp, ARL, ARL, 3); } YY_BREAK case 14: YY_RULE_SETUP -#line 155 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, ADD, ZERO_ONE); } +#line 163 "program_lexer.l" +{ return_opcode(require_ARB_fp, TRI_OP, CMP, 3); } YY_BREAK case 15: YY_RULE_SETUP -#line 156 "program_lexer.l" -{ return_opcode(require_ARB_vp, ARL, ARL, OFF); } +#line 164 "program_lexer.l" +{ return_opcode(require_ARB_fp, SCALAR_OP, COS, 3); } YY_BREAK case 16: YY_RULE_SETUP -#line 158 "program_lexer.l" -{ return_opcode(require_ARB_fp, TRI_OP, CMP, OFF); } +#line 166 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, DDX, 3); } YY_BREAK case 17: YY_RULE_SETUP -#line 159 "program_lexer.l" -{ return_opcode(require_ARB_fp, TRI_OP, CMP, ZERO_ONE); } +#line 167 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, DDY, 3); } YY_BREAK case 18: YY_RULE_SETUP -#line 160 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, COS, OFF); } +#line 168 "program_lexer.l" +{ return_opcode( 1, BIN_OP, DP3, 3); } YY_BREAK case 19: YY_RULE_SETUP -#line 161 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, COS, ZERO_ONE); } +#line 169 "program_lexer.l" +{ return_opcode( 1, BIN_OP, DP4, 3); } YY_BREAK case 20: YY_RULE_SETUP -#line 163 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, DDX, OFF); } +#line 170 "program_lexer.l" +{ return_opcode( 1, BIN_OP, DPH, 3); } YY_BREAK case 21: YY_RULE_SETUP -#line 164 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, DDX, ZERO_ONE); } +#line 171 "program_lexer.l" +{ return_opcode( 1, BIN_OP, DST, 3); } YY_BREAK case 22: YY_RULE_SETUP -#line 165 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, DDY, OFF); } +#line 173 "program_lexer.l" +{ return_opcode( 1, SCALAR_OP, EX2, 3); } YY_BREAK case 23: YY_RULE_SETUP -#line 166 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, DDY, ZERO_ONE); } +#line 174 "program_lexer.l" +{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, 3); } YY_BREAK case 24: YY_RULE_SETUP -#line 167 "program_lexer.l" -{ return_opcode( 1, BIN_OP, DP3, OFF); } +#line 176 "program_lexer.l" +{ return_opcode( 1, VECTOR_OP, FLR, 3); } YY_BREAK case 25: YY_RULE_SETUP -#line 168 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, DP3, ZERO_ONE); } +#line 177 "program_lexer.l" +{ return_opcode( 1, VECTOR_OP, FRC, 3); } YY_BREAK case 26: YY_RULE_SETUP -#line 169 "program_lexer.l" -{ return_opcode( 1, BIN_OP, DP4, OFF); } +#line 179 "program_lexer.l" +{ return_opcode(require_ARB_fp, KIL, KIL, 3); } YY_BREAK case 27: YY_RULE_SETUP -#line 170 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, DP4, ZERO_ONE); } +#line 181 "program_lexer.l" +{ return_opcode( 1, VECTOR_OP, LIT, 3); } YY_BREAK case 28: YY_RULE_SETUP -#line 171 "program_lexer.l" -{ return_opcode( 1, BIN_OP, DPH, OFF); } +#line 182 "program_lexer.l" +{ return_opcode( 1, SCALAR_OP, LG2, 3); } YY_BREAK case 29: YY_RULE_SETUP -#line 172 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, DPH, ZERO_ONE); } +#line 183 "program_lexer.l" +{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, 3); } YY_BREAK case 30: YY_RULE_SETUP -#line 173 "program_lexer.l" -{ return_opcode( 1, BIN_OP, DST, OFF); } +#line 184 "program_lexer.l" +{ return_opcode(require_ARB_fp, TRI_OP, LRP, 3); } YY_BREAK case 31: YY_RULE_SETUP -#line 174 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, DST, ZERO_ONE); } +#line 186 "program_lexer.l" +{ return_opcode( 1, TRI_OP, MAD, 3); } YY_BREAK case 32: YY_RULE_SETUP -#line 176 "program_lexer.l" -{ return_opcode( 1, SCALAR_OP, EX2, OFF); } +#line 187 "program_lexer.l" +{ return_opcode( 1, BIN_OP, MAX, 3); } YY_BREAK case 33: YY_RULE_SETUP -#line 177 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, EX2, ZERO_ONE); } +#line 188 "program_lexer.l" +{ return_opcode( 1, BIN_OP, MIN, 3); } YY_BREAK case 34: YY_RULE_SETUP -#line 178 "program_lexer.l" -{ return_opcode(require_ARB_vp, SCALAR_OP, EXP, OFF); } +#line 189 "program_lexer.l" +{ return_opcode( 1, VECTOR_OP, MOV, 3); } YY_BREAK case 35: YY_RULE_SETUP -#line 180 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, FLR, OFF); } +#line 190 "program_lexer.l" +{ return_opcode( 1, BIN_OP, MUL, 3); } YY_BREAK case 36: YY_RULE_SETUP -#line 181 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, FLR, ZERO_ONE); } +#line 192 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK2H, 4); } YY_BREAK case 37: YY_RULE_SETUP -#line 182 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, FRC, OFF); } +#line 193 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK2US, 5); } YY_BREAK case 38: YY_RULE_SETUP -#line 183 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, FRC, ZERO_ONE); } +#line 194 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK4B, 4); } YY_BREAK case 39: YY_RULE_SETUP -#line 185 "program_lexer.l" -{ return_opcode(require_ARB_fp, KIL, KIL, OFF); } +#line 195 "program_lexer.l" +{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, 5); } YY_BREAK case 40: YY_RULE_SETUP -#line 187 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, LIT, OFF); } +#line 196 "program_lexer.l" +{ return_opcode( 1, BINSC_OP, POW, 3); } YY_BREAK case 41: YY_RULE_SETUP -#line 188 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, LIT, ZERO_ONE); } +#line 198 "program_lexer.l" +{ return_opcode( 1, SCALAR_OP, RCP, 3); } YY_BREAK case 42: YY_RULE_SETUP -#line 189 "program_lexer.l" -{ return_opcode( 1, SCALAR_OP, LG2, OFF); } +#line 199 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, RFL, 3); } YY_BREAK case 43: YY_RULE_SETUP -#line 190 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, LG2, ZERO_ONE); } +#line 200 "program_lexer.l" +{ return_opcode( 1, SCALAR_OP, RSQ, 3); } YY_BREAK case 44: YY_RULE_SETUP -#line 191 "program_lexer.l" -{ return_opcode(require_ARB_vp, SCALAR_OP, LOG, OFF); } +#line 202 "program_lexer.l" +{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, 3); } YY_BREAK case 45: YY_RULE_SETUP -#line 192 "program_lexer.l" -{ return_opcode(require_ARB_fp, TRI_OP, LRP, OFF); } +#line 203 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SEQ, 3); } YY_BREAK case 46: YY_RULE_SETUP -#line 193 "program_lexer.l" -{ return_opcode(require_ARB_fp, TRI_OP, LRP, ZERO_ONE); } +#line 204 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SFL, 3); } YY_BREAK case 47: YY_RULE_SETUP -#line 195 "program_lexer.l" -{ return_opcode( 1, TRI_OP, MAD, OFF); } +#line 205 "program_lexer.l" +{ return_opcode( 1, BIN_OP, SGE, 3); } YY_BREAK case 48: YY_RULE_SETUP -#line 196 "program_lexer.l" -{ return_opcode(require_ARB_fp, TRI_OP, MAD, ZERO_ONE); } +#line 206 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SGT, 3); } YY_BREAK case 49: YY_RULE_SETUP -#line 197 "program_lexer.l" -{ return_opcode( 1, BIN_OP, MAX, OFF); } +#line 207 "program_lexer.l" +{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, 3); } YY_BREAK case 50: YY_RULE_SETUP -#line 198 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, MAX, ZERO_ONE); } +#line 208 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SLE, 3); } YY_BREAK case 51: YY_RULE_SETUP -#line 199 "program_lexer.l" -{ return_opcode( 1, BIN_OP, MIN, OFF); } +#line 209 "program_lexer.l" +{ return_opcode( 1, BIN_OP, SLT, 3); } YY_BREAK case 52: YY_RULE_SETUP -#line 200 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, MIN, ZERO_ONE); } +#line 210 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, SNE, 3); } YY_BREAK case 53: YY_RULE_SETUP -#line 201 "program_lexer.l" -{ return_opcode( 1, VECTOR_OP, MOV, OFF); } +#line 211 "program_lexer.l" +{ return_opcode(require_NV_fp, BIN_OP, STR, 3); } YY_BREAK case 54: YY_RULE_SETUP -#line 202 "program_lexer.l" -{ return_opcode(require_ARB_fp, VECTOR_OP, MOV, ZERO_ONE); } +#line 212 "program_lexer.l" +{ return_opcode( 1, BIN_OP, SUB, 3); } YY_BREAK case 55: YY_RULE_SETUP -#line 203 "program_lexer.l" -{ return_opcode( 1, BIN_OP, MUL, OFF); } +#line 213 "program_lexer.l" +{ return_opcode( 1, SWZ, SWZ, 3); } YY_BREAK case 56: YY_RULE_SETUP -#line 204 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, MUL, ZERO_ONE); } +#line 215 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, 3); } YY_BREAK case 57: YY_RULE_SETUP -#line 206 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, PK2H, OFF); } +#line 216 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, 3); } YY_BREAK case 58: YY_RULE_SETUP -#line 207 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, PK2H, ZERO_ONE); } +#line 217 "program_lexer.l" +{ return_opcode(require_NV_fp, TXD_OP, TXD, 3); } YY_BREAK case 59: YY_RULE_SETUP -#line 208 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, PK2US, OFF); } +#line 218 "program_lexer.l" +{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, 3); } YY_BREAK case 60: YY_RULE_SETUP -#line 209 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, PK2US, ZERO_ONE); } +#line 220 "program_lexer.l" +{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, 4); } YY_BREAK case 61: YY_RULE_SETUP -#line 210 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, PK4B, OFF); } +#line 221 "program_lexer.l" +{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, 5); } YY_BREAK case 62: YY_RULE_SETUP -#line 211 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, PK4B, ZERO_ONE); } +#line 223 "program_lexer.l" +{ return_opcode(require_NV_fp, TRI_OP, X2D, 3); } YY_BREAK case 63: YY_RULE_SETUP -#line 212 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, OFF); } +#line 224 "program_lexer.l" +{ return_opcode( 1, BIN_OP, XPD, 3); } YY_BREAK case 64: YY_RULE_SETUP -#line 213 "program_lexer.l" -{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, ZERO_ONE); } +#line 226 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } YY_BREAK case 65: YY_RULE_SETUP -#line 214 "program_lexer.l" -{ return_opcode( 1, BINSC_OP, POW, OFF); } +#line 227 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } YY_BREAK case 66: YY_RULE_SETUP -#line 215 "program_lexer.l" -{ return_opcode(require_ARB_fp, BINSC_OP, POW, ZERO_ONE); } +#line 228 "program_lexer.l" +{ return PROGRAM; } YY_BREAK case 67: YY_RULE_SETUP -#line 217 "program_lexer.l" -{ return_opcode( 1, SCALAR_OP, RCP, OFF); } +#line 229 "program_lexer.l" +{ return STATE; } YY_BREAK case 68: YY_RULE_SETUP -#line 218 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, RCP, ZERO_ONE); } +#line 230 "program_lexer.l" +{ return RESULT; } YY_BREAK case 69: YY_RULE_SETUP -#line 219 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, RFL, OFF); } +#line 232 "program_lexer.l" +{ return AMBIENT; } YY_BREAK case 70: YY_RULE_SETUP -#line 220 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, RFL, ZERO_ONE); } +#line 233 "program_lexer.l" +{ return ATTENUATION; } YY_BREAK case 71: YY_RULE_SETUP -#line 221 "program_lexer.l" -{ return_opcode( 1, SCALAR_OP, RSQ, OFF); } +#line 234 "program_lexer.l" +{ return BACK; } YY_BREAK case 72: YY_RULE_SETUP -#line 222 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, RSQ, ZERO_ONE); } +#line 235 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, CLIP); } YY_BREAK case 73: YY_RULE_SETUP -#line 224 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, OFF); } +#line 236 "program_lexer.l" +{ return COLOR; } YY_BREAK case 74: YY_RULE_SETUP -#line 225 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, ZERO_ONE); } +#line 237 "program_lexer.l" +{ return_token_or_DOT(require_ARB_fp, DEPTH); } YY_BREAK case 75: YY_RULE_SETUP -#line 226 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SEQ, OFF); } +#line 238 "program_lexer.l" +{ return DIFFUSE; } YY_BREAK case 76: YY_RULE_SETUP -#line 227 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SEQ, ZERO_ONE); } +#line 239 "program_lexer.l" +{ return DIRECTION; } YY_BREAK case 77: YY_RULE_SETUP -#line 228 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SFL, OFF); } +#line 240 "program_lexer.l" +{ return EMISSION; } YY_BREAK case 78: YY_RULE_SETUP -#line 229 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SFL, ZERO_ONE); } +#line 241 "program_lexer.l" +{ return ENV; } YY_BREAK case 79: YY_RULE_SETUP -#line 230 "program_lexer.l" -{ return_opcode( 1, BIN_OP, SGE, OFF); } +#line 242 "program_lexer.l" +{ return EYE; } YY_BREAK case 80: YY_RULE_SETUP -#line 231 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, SGE, ZERO_ONE); } +#line 243 "program_lexer.l" +{ return FOGCOORD; } YY_BREAK case 81: YY_RULE_SETUP -#line 232 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SGT, OFF); } +#line 244 "program_lexer.l" +{ return FOG; } YY_BREAK case 82: YY_RULE_SETUP -#line 233 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SGT, ZERO_ONE); } +#line 245 "program_lexer.l" +{ return FRONT; } YY_BREAK case 83: YY_RULE_SETUP -#line 234 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, OFF); } +#line 246 "program_lexer.l" +{ return HALF; } YY_BREAK case 84: YY_RULE_SETUP -#line 235 "program_lexer.l" -{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, ZERO_ONE); } +#line 247 "program_lexer.l" +{ return INVERSE; } YY_BREAK case 85: YY_RULE_SETUP -#line 236 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SLE, OFF); } +#line 248 "program_lexer.l" +{ return INVTRANS; } YY_BREAK case 86: YY_RULE_SETUP -#line 237 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SLE, ZERO_ONE); } +#line 249 "program_lexer.l" +{ return LIGHT; } YY_BREAK case 87: YY_RULE_SETUP -#line 238 "program_lexer.l" -{ return_opcode( 1, BIN_OP, SLT, OFF); } +#line 250 "program_lexer.l" +{ return LIGHTMODEL; } YY_BREAK case 88: YY_RULE_SETUP -#line 239 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, SLT, ZERO_ONE); } +#line 251 "program_lexer.l" +{ return LIGHTPROD; } YY_BREAK case 89: YY_RULE_SETUP -#line 240 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SNE, OFF); } +#line 252 "program_lexer.l" +{ return LOCAL; } YY_BREAK case 90: YY_RULE_SETUP -#line 241 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, SNE, ZERO_ONE); } +#line 253 "program_lexer.l" +{ return MATERIAL; } YY_BREAK case 91: YY_RULE_SETUP -#line 242 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, STR, OFF); } +#line 254 "program_lexer.l" +{ return MAT_PROGRAM; } YY_BREAK case 92: YY_RULE_SETUP -#line 243 "program_lexer.l" -{ return_opcode(require_NV_fp, BIN_OP, STR, ZERO_ONE); } +#line 255 "program_lexer.l" +{ return MATRIX; } YY_BREAK case 93: YY_RULE_SETUP -#line 244 "program_lexer.l" -{ return_opcode( 1, BIN_OP, SUB, OFF); } +#line 256 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); } YY_BREAK case 94: YY_RULE_SETUP -#line 245 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, SUB, ZERO_ONE); } +#line 257 "program_lexer.l" +{ return MODELVIEW; } YY_BREAK case 95: YY_RULE_SETUP -#line 246 "program_lexer.l" -{ return_opcode( 1, SWZ, SWZ, OFF); } +#line 258 "program_lexer.l" +{ return MVP; } YY_BREAK case 96: YY_RULE_SETUP -#line 247 "program_lexer.l" -{ return_opcode(require_ARB_fp, SWZ, SWZ, ZERO_ONE); } +#line 259 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, NORMAL); } YY_BREAK case 97: YY_RULE_SETUP -#line 249 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, OFF); } +#line 260 "program_lexer.l" +{ return OBJECT; } YY_BREAK case 98: YY_RULE_SETUP -#line 250 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, ZERO_ONE); } +#line 261 "program_lexer.l" +{ return PALETTE; } YY_BREAK case 99: YY_RULE_SETUP -#line 251 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, OFF); } +#line 262 "program_lexer.l" +{ return PARAMS; } YY_BREAK case 100: YY_RULE_SETUP -#line 252 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, ZERO_ONE); } +#line 263 "program_lexer.l" +{ return PLANE; } YY_BREAK case 101: YY_RULE_SETUP -#line 253 "program_lexer.l" -{ return_opcode(require_NV_fp, TXD_OP, TXD, OFF); } +#line 264 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, POINT); } YY_BREAK case 102: YY_RULE_SETUP -#line 254 "program_lexer.l" -{ return_opcode(require_NV_fp, TXD_OP, TXD, ZERO_ONE); } +#line 265 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, POINTSIZE); } YY_BREAK case 103: YY_RULE_SETUP -#line 255 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, OFF); } +#line 266 "program_lexer.l" +{ return POSITION; } YY_BREAK case 104: YY_RULE_SETUP -#line 256 "program_lexer.l" -{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, ZERO_ONE); } +#line 267 "program_lexer.l" +{ return PRIMARY; } YY_BREAK case 105: YY_RULE_SETUP -#line 258 "program_lexer.l" -{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, OFF); } +#line 268 "program_lexer.l" +{ return PROJECTION; } YY_BREAK case 106: YY_RULE_SETUP -#line 259 "program_lexer.l" -{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, ZERO_ONE); } +#line 269 "program_lexer.l" +{ return_token_or_DOT(require_ARB_fp, RANGE); } YY_BREAK case 107: YY_RULE_SETUP -#line 260 "program_lexer.l" -{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, OFF); } +#line 270 "program_lexer.l" +{ return ROW; } YY_BREAK case 108: YY_RULE_SETUP -#line 261 "program_lexer.l" -{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, ZERO_ONE); } +#line 271 "program_lexer.l" +{ return SCENECOLOR; } YY_BREAK case 109: YY_RULE_SETUP -#line 263 "program_lexer.l" -{ return_opcode(require_NV_fp, TRI_OP, X2D, OFF); } +#line 272 "program_lexer.l" +{ return SECONDARY; } YY_BREAK case 110: YY_RULE_SETUP -#line 264 "program_lexer.l" -{ return_opcode(require_NV_fp, TRI_OP, X2D, ZERO_ONE); } +#line 273 "program_lexer.l" +{ return SHININESS; } YY_BREAK case 111: YY_RULE_SETUP -#line 265 "program_lexer.l" -{ return_opcode( 1, BIN_OP, XPD, OFF); } +#line 274 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, SIZE); } YY_BREAK case 112: YY_RULE_SETUP -#line 266 "program_lexer.l" -{ return_opcode(require_ARB_fp, BIN_OP, XPD, ZERO_ONE); } +#line 275 "program_lexer.l" +{ return SPECULAR; } YY_BREAK case 113: YY_RULE_SETUP -#line 268 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } +#line 276 "program_lexer.l" +{ return SPOT; } YY_BREAK case 114: YY_RULE_SETUP -#line 269 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } +#line 277 "program_lexer.l" +{ return TEXCOORD; } YY_BREAK case 115: YY_RULE_SETUP -#line 270 "program_lexer.l" -{ return PROGRAM; } - YY_BREAK -case 116: -YY_RULE_SETUP -#line 271 "program_lexer.l" -{ return STATE; } - YY_BREAK -case 117: -YY_RULE_SETUP -#line 272 "program_lexer.l" -{ return RESULT; } - YY_BREAK -case 118: -YY_RULE_SETUP -#line 274 "program_lexer.l" -{ return AMBIENT; } - YY_BREAK -case 119: -YY_RULE_SETUP -#line 275 "program_lexer.l" -{ return ATTENUATION; } - YY_BREAK -case 120: -YY_RULE_SETUP -#line 276 "program_lexer.l" -{ return BACK; } - YY_BREAK -case 121: -YY_RULE_SETUP -#line 277 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, CLIP); } - YY_BREAK -case 122: -YY_RULE_SETUP #line 278 "program_lexer.l" -{ return COLOR; } - YY_BREAK -case 123: -YY_RULE_SETUP -#line 279 "program_lexer.l" -{ return_token_or_DOT(require_ARB_fp, DEPTH); } - YY_BREAK -case 124: -YY_RULE_SETUP -#line 280 "program_lexer.l" -{ return DIFFUSE; } - YY_BREAK -case 125: -YY_RULE_SETUP -#line 281 "program_lexer.l" -{ return DIRECTION; } - YY_BREAK -case 126: -YY_RULE_SETUP -#line 282 "program_lexer.l" -{ return EMISSION; } - YY_BREAK -case 127: -YY_RULE_SETUP -#line 283 "program_lexer.l" -{ return ENV; } - YY_BREAK -case 128: -YY_RULE_SETUP -#line 284 "program_lexer.l" -{ return EYE; } - YY_BREAK -case 129: -YY_RULE_SETUP -#line 285 "program_lexer.l" -{ return FOGCOORD; } - YY_BREAK -case 130: -YY_RULE_SETUP -#line 286 "program_lexer.l" -{ return FOG; } - YY_BREAK -case 131: -YY_RULE_SETUP -#line 287 "program_lexer.l" -{ return FRONT; } - YY_BREAK -case 132: -YY_RULE_SETUP -#line 288 "program_lexer.l" -{ return HALF; } - YY_BREAK -case 133: -YY_RULE_SETUP -#line 289 "program_lexer.l" -{ return INVERSE; } - YY_BREAK -case 134: -YY_RULE_SETUP -#line 290 "program_lexer.l" -{ return INVTRANS; } - YY_BREAK -case 135: -YY_RULE_SETUP -#line 291 "program_lexer.l" -{ return LIGHT; } - YY_BREAK -case 136: -YY_RULE_SETUP -#line 292 "program_lexer.l" -{ return LIGHTMODEL; } - YY_BREAK -case 137: -YY_RULE_SETUP -#line 293 "program_lexer.l" -{ return LIGHTPROD; } - YY_BREAK -case 138: -YY_RULE_SETUP -#line 294 "program_lexer.l" -{ return LOCAL; } - YY_BREAK -case 139: -YY_RULE_SETUP -#line 295 "program_lexer.l" -{ return MATERIAL; } - YY_BREAK -case 140: -YY_RULE_SETUP -#line 296 "program_lexer.l" -{ return MAT_PROGRAM; } - YY_BREAK -case 141: -YY_RULE_SETUP -#line 297 "program_lexer.l" -{ return MATRIX; } - YY_BREAK -case 142: -YY_RULE_SETUP -#line 298 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); } - YY_BREAK -case 143: -YY_RULE_SETUP -#line 299 "program_lexer.l" -{ return MODELVIEW; } - YY_BREAK -case 144: -YY_RULE_SETUP -#line 300 "program_lexer.l" -{ return MVP; } - YY_BREAK -case 145: -YY_RULE_SETUP -#line 301 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, NORMAL); } - YY_BREAK -case 146: -YY_RULE_SETUP -#line 302 "program_lexer.l" -{ return OBJECT; } - YY_BREAK -case 147: -YY_RULE_SETUP -#line 303 "program_lexer.l" -{ return PALETTE; } - YY_BREAK -case 148: -YY_RULE_SETUP -#line 304 "program_lexer.l" -{ return PARAMS; } - YY_BREAK -case 149: -YY_RULE_SETUP -#line 305 "program_lexer.l" -{ return PLANE; } - YY_BREAK -case 150: -YY_RULE_SETUP -#line 306 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, POINT); } - YY_BREAK -case 151: -YY_RULE_SETUP -#line 307 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, POINTSIZE); } - YY_BREAK -case 152: -YY_RULE_SETUP -#line 308 "program_lexer.l" -{ return POSITION; } - YY_BREAK -case 153: -YY_RULE_SETUP -#line 309 "program_lexer.l" -{ return PRIMARY; } - YY_BREAK -case 154: -YY_RULE_SETUP -#line 310 "program_lexer.l" -{ return PROJECTION; } - YY_BREAK -case 155: -YY_RULE_SETUP -#line 311 "program_lexer.l" -{ return_token_or_DOT(require_ARB_fp, RANGE); } - YY_BREAK -case 156: -YY_RULE_SETUP -#line 312 "program_lexer.l" -{ return ROW; } - YY_BREAK -case 157: -YY_RULE_SETUP -#line 313 "program_lexer.l" -{ return SCENECOLOR; } - YY_BREAK -case 158: -YY_RULE_SETUP -#line 314 "program_lexer.l" -{ return SECONDARY; } - YY_BREAK -case 159: -YY_RULE_SETUP -#line 315 "program_lexer.l" -{ return SHININESS; } - YY_BREAK -case 160: -YY_RULE_SETUP -#line 316 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, SIZE); } - YY_BREAK -case 161: -YY_RULE_SETUP -#line 317 "program_lexer.l" -{ return SPECULAR; } - YY_BREAK -case 162: -YY_RULE_SETUP -#line 318 "program_lexer.l" -{ return SPOT; } - YY_BREAK -case 163: -YY_RULE_SETUP -#line 319 "program_lexer.l" -{ return TEXCOORD; } - YY_BREAK -case 164: -YY_RULE_SETUP -#line 320 "program_lexer.l" { return_token_or_DOT(require_ARB_fp, TEXENV); } YY_BREAK -case 165: +case 116: YY_RULE_SETUP -#line 321 "program_lexer.l" +#line 279 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN); } YY_BREAK -case 166: +case 117: YY_RULE_SETUP -#line 322 "program_lexer.l" +#line 280 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_Q); } YY_BREAK -case 167: +case 118: YY_RULE_SETUP -#line 323 "program_lexer.l" +#line 281 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_S); } YY_BREAK -case 168: +case 119: YY_RULE_SETUP -#line 324 "program_lexer.l" +#line 282 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_T); } YY_BREAK -case 169: +case 120: YY_RULE_SETUP -#line 325 "program_lexer.l" +#line 283 "program_lexer.l" { return TEXTURE; } YY_BREAK -case 170: +case 121: YY_RULE_SETUP -#line 326 "program_lexer.l" +#line 284 "program_lexer.l" { return TRANSPOSE; } YY_BREAK -case 171: +case 122: YY_RULE_SETUP -#line 327 "program_lexer.l" +#line 285 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, VTXATTRIB); } YY_BREAK -case 172: +case 123: YY_RULE_SETUP -#line 328 "program_lexer.l" +#line 286 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, WEIGHT); } YY_BREAK -case 173: +case 124: YY_RULE_SETUP -#line 330 "program_lexer.l" +#line 288 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); } YY_BREAK -case 174: +case 125: YY_RULE_SETUP -#line 331 "program_lexer.l" +#line 289 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); } YY_BREAK -case 175: +case 126: YY_RULE_SETUP -#line 332 "program_lexer.l" +#line 290 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); } YY_BREAK -case 176: +case 127: YY_RULE_SETUP -#line 333 "program_lexer.l" +#line 291 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); } YY_BREAK -case 177: +case 128: YY_RULE_SETUP -#line 334 "program_lexer.l" +#line 292 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); } YY_BREAK -case 178: +case 129: YY_RULE_SETUP -#line 335 "program_lexer.l" +#line 293 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); } YY_BREAK -case 179: +case 130: YY_RULE_SETUP -#line 336 "program_lexer.l" +#line 294 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); } YY_BREAK -case 180: +case 131: YY_RULE_SETUP -#line 337 "program_lexer.l" +#line 295 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); } YY_BREAK -case 181: +case 132: YY_RULE_SETUP -#line 338 "program_lexer.l" +#line 296 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); } YY_BREAK -case 182: +case 133: YY_RULE_SETUP -#line 339 "program_lexer.l" +#line 297 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); } YY_BREAK -case 183: +case 134: YY_RULE_SETUP -#line 340 "program_lexer.l" +#line 298 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); } YY_BREAK -case 184: +case 135: YY_RULE_SETUP -#line 341 "program_lexer.l" +#line 299 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); } YY_BREAK -case 185: +case 136: YY_RULE_SETUP -#line 342 "program_lexer.l" +#line 300 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); } YY_BREAK -case 186: +case 137: YY_RULE_SETUP -#line 344 "program_lexer.l" +#line 302 "program_lexer.l" { yylval->string = strdup(yytext); return IDENTIFIER; } YY_BREAK -case 187: +case 138: YY_RULE_SETUP -#line 349 "program_lexer.l" +#line 307 "program_lexer.l" { return DOT_DOT; } YY_BREAK -case 188: +case 139: YY_RULE_SETUP -#line 351 "program_lexer.l" +#line 309 "program_lexer.l" { yylval->integer = strtol(yytext, NULL, 10); return INTEGER; } YY_BREAK -case 189: +case 140: YY_RULE_SETUP -#line 355 "program_lexer.l" +#line 313 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 190: -/* rule 190 can match eol */ +case 141: +/* rule 141 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 359 "program_lexer.l" +#line 317 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 191: +case 142: YY_RULE_SETUP -#line 363 "program_lexer.l" +#line 321 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 192: +case 143: YY_RULE_SETUP -#line 367 "program_lexer.l" +#line 325 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 193: +case 144: YY_RULE_SETUP -#line 372 "program_lexer.l" +#line 330 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; return MASK4; } YY_BREAK -case 194: +case 145: YY_RULE_SETUP -#line 378 "program_lexer.l" +#line 336 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2407,27 +2235,27 @@ YY_RULE_SETUP return MASK3; } YY_BREAK -case 195: +case 146: YY_RULE_SETUP -#line 384 "program_lexer.l" +#line 342 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; return MASK3; } YY_BREAK -case 196: +case 147: YY_RULE_SETUP -#line 389 "program_lexer.l" +#line 347 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; return MASK3; } YY_BREAK -case 197: +case 148: YY_RULE_SETUP -#line 395 "program_lexer.l" +#line 353 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2435,9 +2263,9 @@ YY_RULE_SETUP return MASK2; } YY_BREAK -case 198: +case 149: YY_RULE_SETUP -#line 401 "program_lexer.l" +#line 359 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2445,18 +2273,18 @@ YY_RULE_SETUP return MASK2; } YY_BREAK -case 199: +case 150: YY_RULE_SETUP -#line 407 "program_lexer.l" +#line 365 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; return MASK2; } YY_BREAK -case 200: +case 151: YY_RULE_SETUP -#line 413 "program_lexer.l" +#line 371 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2464,9 +2292,9 @@ YY_RULE_SETUP return MASK1; } YY_BREAK -case 201: +case 152: YY_RULE_SETUP -#line 420 "program_lexer.l" +#line 378 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2476,18 +2304,18 @@ YY_RULE_SETUP return SWIZZLE; } YY_BREAK -case 202: +case 153: YY_RULE_SETUP -#line 429 "program_lexer.l" +#line 387 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; return_token_or_DOT(require_ARB_fp, MASK4); } YY_BREAK -case 203: +case 154: YY_RULE_SETUP -#line 435 "program_lexer.l" +#line 393 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2495,27 +2323,27 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 204: +case 155: YY_RULE_SETUP -#line 441 "program_lexer.l" +#line 399 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 205: +case 156: YY_RULE_SETUP -#line 446 "program_lexer.l" +#line 404 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 206: +case 157: YY_RULE_SETUP -#line 452 "program_lexer.l" +#line 410 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2523,9 +2351,9 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 207: +case 158: YY_RULE_SETUP -#line 458 "program_lexer.l" +#line 416 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2533,18 +2361,18 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 208: +case 159: YY_RULE_SETUP -#line 464 "program_lexer.l" +#line 422 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 209: +case 160: YY_RULE_SETUP -#line 470 "program_lexer.l" +#line 428 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2552,9 +2380,9 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK1); } YY_BREAK -case 210: +case 161: YY_RULE_SETUP -#line 478 "program_lexer.l" +#line 436 "program_lexer.l" { if (require_ARB_vp) { return TEXGEN_R; @@ -2566,9 +2394,9 @@ YY_RULE_SETUP } } YY_BREAK -case 211: +case 162: YY_RULE_SETUP -#line 489 "program_lexer.l" +#line 447 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2578,15 +2406,15 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, SWIZZLE); } YY_BREAK -case 212: +case 163: YY_RULE_SETUP -#line 498 "program_lexer.l" +#line 456 "program_lexer.l" { return DOT; } YY_BREAK -case 213: -/* rule 213 can match eol */ +case 164: +/* rule 164 can match eol */ YY_RULE_SETUP -#line 500 "program_lexer.l" +#line 458 "program_lexer.l" { yylloc->first_line++; yylloc->first_column = 1; @@ -2595,30 +2423,30 @@ YY_RULE_SETUP yylloc->position++; } YY_BREAK -case 214: +case 165: YY_RULE_SETUP -#line 507 "program_lexer.l" +#line 465 "program_lexer.l" /* eat whitespace */ ; YY_BREAK -case 215: +case 166: *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 508 "program_lexer.l" +#line 466 "program_lexer.l" /* eat comments */ ; YY_BREAK -case 216: +case 167: YY_RULE_SETUP -#line 509 "program_lexer.l" +#line 467 "program_lexer.l" { return yytext[0]; } YY_BREAK -case 217: +case 168: YY_RULE_SETUP -#line 510 "program_lexer.l" +#line 468 "program_lexer.l" ECHO; YY_BREAK -#line 2622 "lex.yy.c" +#line 2450 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2912,7 +2740,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 >= 776 ) + if ( yy_current_state >= 836 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2941,11 +2769,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 >= 776 ) + if ( yy_current_state >= 836 ) 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 == 775); + yy_is_jam = (yy_current_state == 835); return yy_is_jam ? 0 : yy_current_state; } @@ -3793,7 +3621,7 @@ void yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 510 "program_lexer.l" +#line 468 "program_lexer.l" diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l index 62ca9b6db6..d7493f42fa 100644 --- a/src/mesa/shader/program_lexer.l +++ b/src/mesa/shader/program_lexer.l @@ -55,11 +55,13 @@ } while (0) -#define return_opcode(condition, token, opcode, sat) \ +#define return_opcode(condition, token, opcode, len) \ do { \ - if (condition) { \ + if (condition && \ + _mesa_parse_instruction_suffix(yyextra, \ + yytext + len, \ + & yylval->temp_inst)) { \ yylval->temp_inst.Opcode = OPCODE_ ## opcode; \ - yylval->temp_inst.SaturateMode = SATURATE_ ## sat; \ return token; \ } else { \ yylval->string = strdup(yytext); \ @@ -132,6 +134,11 @@ exp [Ee][-+]?[0-9]+ frac "."[0-9]+ dot "."[ \t]* +sz [HRX]? +szf [HR]? +cc C? +sat (_SAT)? + %option bison-bridge bison-locations reentrant noyywrap %% @@ -149,121 +156,72 @@ OUTPUT { return OUTPUT; } PARAM { return PARAM; } TEMP { yylval->integer = at_temp; return TEMP; } -ABS { return_opcode( 1, VECTOR_OP, ABS, OFF); } -ABS_SAT { return_opcode(require_ARB_fp, VECTOR_OP, ABS, ZERO_ONE); } -ADD { return_opcode( 1, BIN_OP, ADD, OFF); } -ADD_SAT { return_opcode(require_ARB_fp, BIN_OP, ADD, ZERO_ONE); } -ARL { return_opcode(require_ARB_vp, ARL, ARL, OFF); } - -CMP { return_opcode(require_ARB_fp, TRI_OP, CMP, OFF); } -CMP_SAT { return_opcode(require_ARB_fp, TRI_OP, CMP, ZERO_ONE); } -COS { return_opcode(require_ARB_fp, SCALAR_OP, COS, OFF); } -COS_SAT { return_opcode(require_ARB_fp, SCALAR_OP, COS, ZERO_ONE); } - -DDX { return_opcode(require_NV_fp, VECTOR_OP, DDX, OFF); } -DDX_SAT { return_opcode(require_NV_fp, VECTOR_OP, DDX, ZERO_ONE); } -DDY { return_opcode(require_NV_fp, VECTOR_OP, DDY, OFF); } -DDY_SAT { return_opcode(require_NV_fp, VECTOR_OP, DDY, ZERO_ONE); } -DP3 { return_opcode( 1, BIN_OP, DP3, OFF); } -DP3_SAT { return_opcode(require_ARB_fp, BIN_OP, DP3, ZERO_ONE); } -DP4 { return_opcode( 1, BIN_OP, DP4, OFF); } -DP4_SAT { return_opcode(require_ARB_fp, BIN_OP, DP4, ZERO_ONE); } -DPH { return_opcode( 1, BIN_OP, DPH, OFF); } -DPH_SAT { return_opcode(require_ARB_fp, BIN_OP, DPH, ZERO_ONE); } -DST { return_opcode( 1, BIN_OP, DST, OFF); } -DST_SAT { return_opcode(require_ARB_fp, BIN_OP, DST, ZERO_ONE); } - -EX2 { return_opcode( 1, SCALAR_OP, EX2, OFF); } -EX2_SAT { return_opcode(require_ARB_fp, SCALAR_OP, EX2, ZERO_ONE); } -EXP { return_opcode(require_ARB_vp, SCALAR_OP, EXP, OFF); } - -FLR { return_opcode( 1, VECTOR_OP, FLR, OFF); } -FLR_SAT { return_opcode(require_ARB_fp, VECTOR_OP, FLR, ZERO_ONE); } -FRC { return_opcode( 1, VECTOR_OP, FRC, OFF); } -FRC_SAT { return_opcode(require_ARB_fp, VECTOR_OP, FRC, ZERO_ONE); } - -KIL { return_opcode(require_ARB_fp, KIL, KIL, OFF); } - -LIT { return_opcode( 1, VECTOR_OP, LIT, OFF); } -LIT_SAT { return_opcode(require_ARB_fp, VECTOR_OP, LIT, ZERO_ONE); } -LG2 { return_opcode( 1, SCALAR_OP, LG2, OFF); } -LG2_SAT { return_opcode(require_ARB_fp, SCALAR_OP, LG2, ZERO_ONE); } -LOG { return_opcode(require_ARB_vp, SCALAR_OP, LOG, OFF); } -LRP { return_opcode(require_ARB_fp, TRI_OP, LRP, OFF); } -LRP_SAT { return_opcode(require_ARB_fp, TRI_OP, LRP, ZERO_ONE); } - -MAD { return_opcode( 1, TRI_OP, MAD, OFF); } -MAD_SAT { return_opcode(require_ARB_fp, TRI_OP, MAD, ZERO_ONE); } -MAX { return_opcode( 1, BIN_OP, MAX, OFF); } -MAX_SAT { return_opcode(require_ARB_fp, BIN_OP, MAX, ZERO_ONE); } -MIN { return_opcode( 1, BIN_OP, MIN, OFF); } -MIN_SAT { return_opcode(require_ARB_fp, BIN_OP, MIN, ZERO_ONE); } -MOV { return_opcode( 1, VECTOR_OP, MOV, OFF); } -MOV_SAT { return_opcode(require_ARB_fp, VECTOR_OP, MOV, ZERO_ONE); } -MUL { return_opcode( 1, BIN_OP, MUL, OFF); } -MUL_SAT { return_opcode(require_ARB_fp, BIN_OP, MUL, ZERO_ONE); } - -PK2H { return_opcode(require_NV_fp, VECTOR_OP, PK2H, OFF); } -PK2H_SAT { return_opcode(require_NV_fp, VECTOR_OP, PK2H, ZERO_ONE); } -PK2US { return_opcode(require_NV_fp, VECTOR_OP, PK2US, OFF); } -PK2US_SAT { return_opcode(require_NV_fp, VECTOR_OP, PK2US, ZERO_ONE); } -PK4B { return_opcode(require_NV_fp, VECTOR_OP, PK4B, OFF); } -PK4B_SAT { return_opcode(require_NV_fp, VECTOR_OP, PK4B, ZERO_ONE); } -PK4UB { return_opcode(require_NV_fp, VECTOR_OP, PK4UB, OFF); } -PK4UB_SAT { return_opcode(require_NV_fp, VECTOR_OP, PK4UB, ZERO_ONE); } -POW { return_opcode( 1, BINSC_OP, POW, OFF); } -POW_SAT { return_opcode(require_ARB_fp, BINSC_OP, POW, ZERO_ONE); } - -RCP { return_opcode( 1, SCALAR_OP, RCP, OFF); } -RCP_SAT { return_opcode(require_ARB_fp, SCALAR_OP, RCP, ZERO_ONE); } -RFL { return_opcode(require_NV_fp, BIN_OP, RFL, OFF); } -RFL_SAT { return_opcode(require_NV_fp, BIN_OP, RFL, ZERO_ONE); } -RSQ { return_opcode( 1, SCALAR_OP, RSQ, OFF); } -RSQ_SAT { return_opcode(require_ARB_fp, SCALAR_OP, RSQ, ZERO_ONE); } - -SCS { return_opcode(require_ARB_fp, SCALAR_OP, SCS, OFF); } -SCS_SAT { return_opcode(require_ARB_fp, SCALAR_OP, SCS, ZERO_ONE); } -SEQ { return_opcode(require_NV_fp, BIN_OP, SEQ, OFF); } -SEQ_SAT { return_opcode(require_NV_fp, BIN_OP, SEQ, ZERO_ONE); } -SFL { return_opcode(require_NV_fp, BIN_OP, SFL, OFF); } -SFL_SAT { return_opcode(require_NV_fp, BIN_OP, SFL, ZERO_ONE); } -SGE { return_opcode( 1, BIN_OP, SGE, OFF); } -SGE_SAT { return_opcode(require_ARB_fp, BIN_OP, SGE, ZERO_ONE); } -SGT { return_opcode(require_NV_fp, BIN_OP, SGT, OFF); } -SGT_SAT { return_opcode(require_NV_fp, BIN_OP, SGT, ZERO_ONE); } -SIN { return_opcode(require_ARB_fp, SCALAR_OP, SIN, OFF); } -SIN_SAT { return_opcode(require_ARB_fp, SCALAR_OP, SIN, ZERO_ONE); } -SLE { return_opcode(require_NV_fp, BIN_OP, SLE, OFF); } -SLE_SAT { return_opcode(require_NV_fp, BIN_OP, SLE, ZERO_ONE); } -SLT { return_opcode( 1, BIN_OP, SLT, OFF); } -SLT_SAT { return_opcode(require_ARB_fp, BIN_OP, SLT, ZERO_ONE); } -SNE { return_opcode(require_NV_fp, BIN_OP, SNE, OFF); } -SNE_SAT { return_opcode(require_NV_fp, BIN_OP, SNE, ZERO_ONE); } -STR { return_opcode(require_NV_fp, BIN_OP, STR, OFF); } -STR_SAT { return_opcode(require_NV_fp, BIN_OP, STR, ZERO_ONE); } -SUB { return_opcode( 1, BIN_OP, SUB, OFF); } -SUB_SAT { return_opcode(require_ARB_fp, BIN_OP, SUB, ZERO_ONE); } -SWZ { return_opcode( 1, SWZ, SWZ, OFF); } -SWZ_SAT { return_opcode(require_ARB_fp, SWZ, SWZ, ZERO_ONE); } - -TEX { return_opcode(require_ARB_fp, SAMPLE_OP, TEX, OFF); } -TEX_SAT { return_opcode(require_ARB_fp, SAMPLE_OP, TEX, ZERO_ONE); } -TXB { return_opcode(require_ARB_fp, SAMPLE_OP, TXB, OFF); } -TXB_SAT { return_opcode(require_ARB_fp, SAMPLE_OP, TXB, ZERO_ONE); } -TXD { return_opcode(require_NV_fp, TXD_OP, TXD, OFF); } -TXD_SAT { return_opcode(require_NV_fp, TXD_OP, TXD, ZERO_ONE); } -TXP { return_opcode(require_ARB_fp, SAMPLE_OP, TXP, OFF); } -TXP_SAT { return_opcode(require_ARB_fp, SAMPLE_OP, TXP, ZERO_ONE); } - -UP2H { return_opcode(require_NV_fp, SCALAR_OP, UP2H, OFF); } -UP2H_SAT { return_opcode(require_NV_fp, SCALAR_OP, UP2H, ZERO_ONE); } -UP2US { return_opcode(require_NV_fp, SCALAR_OP, UP2US, OFF); } -UP2US_SAT { return_opcode(require_NV_fp, SCALAR_OP, UP2US, ZERO_ONE); } - -X2D { return_opcode(require_NV_fp, TRI_OP, X2D, OFF); } -X2D_SAT { return_opcode(require_NV_fp, TRI_OP, X2D, ZERO_ONE); } -XPD { return_opcode( 1, BIN_OP, XPD, OFF); } -XPD_SAT { return_opcode(require_ARB_fp, BIN_OP, XPD, ZERO_ONE); } +ABS{sz}{cc}{sat} { return_opcode( 1, VECTOR_OP, ABS, 3); } +ADD{sz}{cc}{sat} { return_opcode( 1, BIN_OP, ADD, 3); } +ARL { return_opcode(require_ARB_vp, ARL, ARL, 3); } + +CMP{sat} { return_opcode(require_ARB_fp, TRI_OP, CMP, 3); } +COS{szf}{cc}{sat} { return_opcode(require_ARB_fp, SCALAR_OP, COS, 3); } + +DDX{szf}{cc}{sat} { return_opcode(require_NV_fp, VECTOR_OP, DDX, 3); } +DDY{szf}{cc}{sat} { return_opcode(require_NV_fp, VECTOR_OP, DDY, 3); } +DP3{sz}{cc}{sat} { return_opcode( 1, BIN_OP, DP3, 3); } +DP4{sz}{cc}{sat} { return_opcode( 1, BIN_OP, DP4, 3); } +DPH{sz}{cc}{sat} { return_opcode( 1, BIN_OP, DPH, 3); } +DST{szf}{cc}{sat} { return_opcode( 1, BIN_OP, DST, 3); } + +EX2{szf}{cc}{sat} { return_opcode( 1, SCALAR_OP, EX2, 3); } +EXP { return_opcode(require_ARB_vp, SCALAR_OP, EXP, 3); } + +FLR{sz}{cc}{sat} { return_opcode( 1, VECTOR_OP, FLR, 3); } +FRC{sz}{cc}{sat} { return_opcode( 1, VECTOR_OP, FRC, 3); } + +KIL { return_opcode(require_ARB_fp, KIL, KIL, 3); } + +LIT{szf}{cc}{sat} { return_opcode( 1, VECTOR_OP, LIT, 3); } +LG2{szf}{cc}{sat} { return_opcode( 1, SCALAR_OP, LG2, 3); } +LOG { return_opcode(require_ARB_vp, SCALAR_OP, LOG, 3); } +LRP{sz}{cc}{sat} { return_opcode(require_ARB_fp, TRI_OP, LRP, 3); } + +MAD{sz}{cc}{sat} { return_opcode( 1, TRI_OP, MAD, 3); } +MAX{sz}{cc}{sat} { return_opcode( 1, BIN_OP, MAX, 3); } +MIN{sz}{cc}{sat} { return_opcode( 1, BIN_OP, MIN, 3); } +MOV{sz}{cc}{sat} { return_opcode( 1, VECTOR_OP, MOV, 3); } +MUL{sz}{cc}{sat} { return_opcode( 1, BIN_OP, MUL, 3); } + +PK2H { return_opcode(require_NV_fp, VECTOR_OP, PK2H, 4); } +PK2US { return_opcode(require_NV_fp, VECTOR_OP, PK2US, 5); } +PK4B { return_opcode(require_NV_fp, VECTOR_OP, PK4B, 4); } +PK4UB { return_opcode(require_NV_fp, VECTOR_OP, PK4UB, 5); } +POW{szf}{cc}{sat} { return_opcode( 1, BINSC_OP, POW, 3); } + +RCP{szf}{cc}{sat} { return_opcode( 1, SCALAR_OP, RCP, 3); } +RFL{szf}{cc}{sat} { return_opcode(require_NV_fp, BIN_OP, RFL, 3); } +RSQ{szf}{cc}{sat} { return_opcode( 1, SCALAR_OP, RSQ, 3); } + +SCS{sat} { return_opcode(require_ARB_fp, SCALAR_OP, SCS, 3); } +SEQ{sz}{cc}{sat} { return_opcode(require_NV_fp, BIN_OP, SEQ, 3); } +SFL{sz}{cc}{sat} { return_opcode(require_NV_fp, BIN_OP, SFL, 3); } +SGE{sz}{cc}{sat} { return_opcode( 1, BIN_OP, SGE, 3); } +SGT{sz}{cc}{sat} { return_opcode(require_NV_fp, BIN_OP, SGT, 3); } +SIN{szf}{cc}{sat} { return_opcode(require_ARB_fp, SCALAR_OP, SIN, 3); } +SLE{sz}{cc}{sat} { return_opcode(require_NV_fp, BIN_OP, SLE, 3); } +SLT{sz}{cc}{sat} { return_opcode( 1, BIN_OP, SLT, 3); } +SNE{sz}{cc}{sat} { return_opcode(require_NV_fp, BIN_OP, SNE, 3); } +STR{sz}{cc}{sat} { return_opcode(require_NV_fp, BIN_OP, STR, 3); } +SUB{sz}{cc}{sat} { return_opcode( 1, BIN_OP, SUB, 3); } +SWZ{sat} { return_opcode( 1, SWZ, SWZ, 3); } + +TEX{cc}{sat} { return_opcode(require_ARB_fp, SAMPLE_OP, TEX, 3); } +TXB{cc}{sat} { return_opcode(require_ARB_fp, SAMPLE_OP, TXB, 3); } +TXD{cc}{sat} { return_opcode(require_NV_fp, TXD_OP, TXD, 3); } +TXP{cc}{sat} { return_opcode(require_ARB_fp, SAMPLE_OP, TXP, 3); } + +UP2H{cc}{sat} { return_opcode(require_NV_fp, SCALAR_OP, UP2H, 4); } +UP2US{cc}{sat} { return_opcode(require_NV_fp, SCALAR_OP, UP2US, 5); } + +X2D{szf}{cc}{sat} { return_opcode(require_NV_fp, TRI_OP, X2D, 3); } +XPD{sat} { return_opcode( 1, BIN_OP, XPD, 3); } vertex { return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } fragment { return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index b9a0e557ad..e741e9a13b 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -597,16 +597,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 375 +#define YYLAST 383 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 117 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 136 +#define YYNNTS 137 /* YYNRULES -- Number of rules. */ -#define YYNRULES 270 +#define YYNRULES 272 /* YYNRULES -- Number of states. */ -#define YYNSTATES 456 +#define YYNSTATES 458 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -685,11 +685,11 @@ static const yytype_uint16 yyprhs[] = 564, 566, 568, 570, 572, 575, 577, 579, 581, 583, 589, 591, 595, 601, 607, 609, 613, 619, 621, 623, 625, 627, 629, 631, 633, 635, 637, 641, 647, 655, - 665, 668, 671, 673, 675, 676, 677, 681, 682, 686, - 690, 692, 697, 700, 703, 706, 709, 713, 716, 720, - 721, 723, 725, 726, 728, 730, 731, 733, 735, 736, - 738, 740, 741, 745, 746, 750, 751, 755, 757, 759, - 761 + 665, 668, 671, 673, 675, 676, 677, 682, 684, 685, + 686, 690, 694, 696, 702, 705, 708, 711, 714, 718, + 721, 725, 726, 728, 730, 731, 733, 735, 736, 738, + 740, 741, 743, 745, 746, 750, 751, 755, 756, 760, + 762, 764, 766 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -706,7 +706,7 @@ static const yytype_int16 yyrhs[] = 108, 141, -1, 17, 142, 108, 141, 108, 141, 108, 141, -1, 15, 142, 108, 141, 108, 136, 108, 137, -1, 20, 141, -1, 22, 142, 108, 141, 108, 141, - 108, 141, 108, 136, 108, 137, -1, 83, 247, -1, + 108, 141, 108, 136, 108, 137, -1, 83, 248, -1, 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, 21, 142, 108, 147, 108, 144, @@ -715,19 +715,19 @@ static const yytype_int16 yyrhs[] = 147, 160, 109, -1, 148, 161, -1, 156, 158, -1, 145, 108, 145, 108, 145, 108, 145, -1, 233, 146, -1, 23, -1, 99, -1, 99, -1, 164, -1, 149, - 110, 150, 111, -1, 178, -1, 240, -1, 99, -1, + 110, 150, 111, -1, 178, -1, 241, -1, 99, -1, 99, -1, 151, -1, 152, -1, 23, -1, 156, 157, 153, -1, -1, 112, 154, -1, 113, 155, -1, 23, -1, 23, -1, 99, -1, 103, -1, 103, -1, 103, -1, 103, -1, 100, -1, 104, -1, -1, 100, -1, 101, -1, 102, -1, 103, -1, -1, 163, -1, 170, - -1, 234, -1, 236, -1, 239, -1, 252, -1, 7, + -1, 234, -1, 237, -1, 240, -1, 253, -1, 7, 99, 114, 164, -1, 96, 165, -1, 38, 169, -1, - 60, -1, 98, 167, -1, 53, -1, 29, 245, -1, - 37, -1, 74, 246, -1, 50, 110, 168, 111, -1, + 60, -1, 98, 167, -1, 53, -1, 29, 246, -1, + 37, -1, 74, 247, -1, 50, 110, 168, 111, -1, 97, 110, 166, 111, -1, 23, -1, -1, 110, 168, - 111, -1, 23, -1, 60, -1, 29, 245, -1, 37, - -1, 74, 246, -1, 171, -1, 172, -1, 10, 99, + 111, -1, 23, -1, 60, -1, 29, 246, -1, 37, + -1, 74, 247, -1, 171, -1, 172, -1, 10, 99, 174, -1, 10, 99, 110, 173, 111, 175, -1, -1, 23, -1, 114, 177, -1, 114, 115, 176, 116, -1, 179, -1, 176, 108, 179, -1, 181, -1, 217, -1, @@ -736,13 +736,13 @@ static const yytype_int16 yyrhs[] = 182, -1, 73, 184, -1, 73, 187, -1, 73, 189, -1, 73, 195, -1, 73, 191, -1, 73, 198, -1, 73, 200, -1, 73, 202, -1, 73, 204, -1, 73, - 216, -1, 47, 244, 183, -1, 193, -1, 33, -1, + 216, -1, 47, 245, 183, -1, 193, -1, 33, -1, 69, -1, 43, 110, 194, 111, 185, -1, 193, -1, 60, -1, 26, -1, 72, 186, -1, 40, -1, 32, - -1, 44, 188, -1, 25, -1, 244, 67, -1, 45, - 110, 194, 111, 244, 190, -1, 193, -1, 75, 248, + -1, 44, 188, -1, 25, -1, 245, 67, -1, 45, + 110, 194, 111, 245, 190, -1, 193, -1, 75, 249, 192, -1, 29, -1, 25, -1, 31, -1, 71, -1, - 23, -1, 76, 246, 196, 197, -1, 35, -1, 54, + 23, -1, 76, 247, 196, 197, -1, 35, -1, 54, -1, 79, -1, 80, -1, 78, -1, 77, -1, 36, 199, -1, 29, -1, 56, -1, 28, 110, 201, 111, 57, -1, 23, -1, 58, 203, -1, 70, -1, 26, @@ -750,7 +750,7 @@ static const yytype_int16 yyrhs[] = -1, 66, 110, 210, 105, 210, 111, -1, 49, 211, 208, -1, -1, 209, -1, 41, -1, 82, -1, 42, -1, 23, -1, 51, 212, -1, 63, -1, 52, -1, - 81, 246, -1, 55, 110, 214, 111, -1, 48, 110, + 81, 247, -1, 55, 110, 214, 111, -1, 48, 110, 215, 111, -1, -1, 213, -1, 23, -1, 23, -1, 23, -1, 30, 64, -1, 221, -1, 224, -1, 219, -1, 222, -1, 62, 34, 110, 220, 111, -1, 225, @@ -762,16 +762,17 @@ static const yytype_int16 yyrhs[] = -1, 115, 232, 108, 232, 116, -1, 115, 232, 108, 232, 108, 232, 116, -1, 115, 232, 108, 232, 108, 232, 108, 232, 116, -1, 233, 24, -1, 233, 23, - -1, 112, -1, 113, -1, -1, -1, 11, 235, 238, - -1, -1, 5, 237, 238, -1, 238, 108, 99, -1, - 99, -1, 9, 99, 114, 240, -1, 65, 60, -1, - 65, 37, -1, 65, 241, -1, 65, 59, -1, 65, - 74, 246, -1, 65, 30, -1, 29, 242, 243, -1, - -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, - -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, - -1, 110, 249, 111, -1, -1, 110, 250, 111, -1, - -1, 110, 251, 111, -1, 23, -1, 23, -1, 23, - -1, 6, 99, 114, 99, -1 + -1, 112, -1, 113, -1, -1, -1, 236, 11, 235, + 239, -1, 99, -1, -1, -1, 5, 238, 239, -1, + 239, 108, 99, -1, 99, -1, 236, 9, 99, 114, + 241, -1, 65, 60, -1, 65, 37, -1, 65, 242, + -1, 65, 59, -1, 65, 74, 247, -1, 65, 30, + -1, 29, 243, 244, -1, -1, 39, -1, 27, -1, + -1, 61, -1, 68, -1, -1, 39, -1, 27, -1, + -1, 61, -1, 68, -1, -1, 110, 250, 111, -1, + -1, 110, 251, 111, -1, -1, 110, 252, 111, -1, + 23, -1, 23, -1, 23, -1, 6, 99, 114, 99, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -800,11 +801,11 @@ static const yytype_uint16 yyrline[] = 1598, 1603, 1616, 1624, 1635, 1643, 1643, 1645, 1645, 1647, 1657, 1662, 1669, 1679, 1688, 1693, 1700, 1710, 1720, 1732, 1732, 1733, 1733, 1735, 1745, 1753, 1763, 1771, 1779, 1788, - 1799, 1803, 1809, 1810, 1811, 1814, 1814, 1817, 1817, 1820, - 1826, 1834, 1847, 1856, 1865, 1869, 1878, 1887, 1898, 1905, - 1910, 1919, 1931, 1934, 1943, 1954, 1955, 1956, 1959, 1960, - 1961, 1964, 1965, 1968, 1969, 1972, 1973, 1976, 1987, 1998, - 2009 + 1799, 1803, 1809, 1810, 1811, 1814, 1814, 1817, 1852, 1856, + 1856, 1859, 1865, 1873, 1886, 1895, 1904, 1908, 1917, 1926, + 1937, 1944, 1949, 1958, 1970, 1973, 1982, 1993, 1994, 1995, + 1998, 1999, 2000, 2003, 2004, 2007, 2008, 2011, 2012, 2015, + 2026, 2037, 2048 }; #endif @@ -866,9 +867,10 @@ static const char *const yytname[] = "progLocalParam", "progEnvParamNum", "progLocalParamNum", "paramConstDecl", "paramConstUse", "paramConstScalarDecl", "paramConstScalarUse", "paramConstVector", "signedFloatConstant", - "optionalSign", "TEMP_statement", "@1", "ADDRESS_statement", "@2", - "varNameList", "OUTPUT_statement", "resultBinding", "resultColBinding", - "optResultFaceType", "optResultColorType", "optFaceType", "optColorType", + "optionalSign", "TEMP_statement", "@1", "optVarSize", + "ADDRESS_statement", "@2", "varNameList", "OUTPUT_statement", + "resultBinding", "resultColBinding", "optResultFaceType", + "optResultColorType", "optFaceType", "optColorType", "optTexCoordUnitNum", "optTexImageUnitNum", "optLegacyTexUnitNum", "texCoordUnitNum", "texImageUnitNum", "legacyTexUnitNum", "ALIAS_statement", 0 @@ -921,11 +923,11 @@ static const yytype_uint8 yyr1[] = 212, 213, 214, 215, 216, 217, 217, 218, 218, 219, 220, 220, 221, 222, 223, 223, 224, 225, 226, 227, 227, 228, 228, 229, 230, 230, 231, 231, 231, 231, - 232, 232, 233, 233, 233, 235, 234, 237, 236, 238, - 238, 239, 240, 240, 240, 240, 240, 240, 241, 242, - 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, - 245, 246, 246, 247, 247, 248, 248, 249, 250, 251, - 252 + 232, 232, 233, 233, 233, 235, 234, 236, 236, 238, + 237, 239, 239, 240, 241, 241, 241, 241, 241, 241, + 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, + 246, 246, 246, 247, 247, 248, 248, 249, 249, 250, + 251, 252, 253 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -954,11 +956,11 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 2, 1, 1, 1, 1, 5, 1, 3, 5, 5, 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 7, 9, - 2, 2, 1, 1, 0, 0, 3, 0, 3, 3, - 1, 4, 2, 2, 2, 2, 3, 2, 3, 0, - 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, - 1, 0, 3, 0, 3, 0, 3, 1, 1, 1, - 4 + 2, 2, 1, 1, 0, 0, 4, 1, 0, 0, + 3, 3, 1, 5, 2, 2, 2, 2, 3, 2, + 3, 0, 1, 1, 0, 1, 1, 0, 1, 1, + 0, 1, 1, 0, 3, 0, 3, 0, 3, 1, + 1, 1, 4 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -966,143 +968,143 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 3, 4, 0, 6, 1, 9, 0, 5, 0, - 0, 237, 0, 0, 0, 0, 235, 2, 0, 0, - 0, 0, 0, 0, 0, 234, 0, 0, 8, 0, - 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, - 23, 20, 0, 88, 89, 113, 114, 90, 91, 92, - 93, 7, 0, 0, 0, 0, 0, 0, 0, 64, - 0, 87, 63, 0, 0, 0, 0, 0, 75, 0, - 0, 232, 233, 31, 0, 0, 0, 10, 11, 240, - 238, 0, 0, 0, 117, 234, 115, 236, 249, 247, - 243, 245, 242, 261, 244, 234, 83, 84, 85, 86, - 53, 234, 234, 234, 234, 234, 234, 77, 54, 225, - 224, 0, 0, 0, 0, 59, 0, 234, 82, 0, - 60, 62, 126, 127, 205, 206, 128, 221, 222, 0, - 234, 0, 270, 94, 241, 118, 0, 119, 123, 124, - 125, 219, 220, 223, 0, 251, 250, 252, 0, 246, - 0, 0, 0, 0, 26, 0, 25, 24, 258, 111, - 109, 261, 96, 0, 0, 0, 0, 0, 0, 255, - 0, 255, 0, 0, 265, 261, 134, 135, 136, 137, - 139, 138, 140, 141, 142, 143, 0, 144, 258, 101, - 0, 99, 97, 261, 0, 106, 95, 82, 0, 80, - 79, 81, 51, 0, 0, 0, 239, 0, 231, 230, - 253, 254, 248, 267, 0, 234, 234, 0, 47, 0, - 50, 0, 234, 259, 260, 110, 112, 0, 0, 0, - 204, 175, 176, 174, 0, 157, 257, 256, 156, 0, - 0, 0, 0, 199, 195, 0, 194, 261, 187, 181, - 180, 179, 0, 0, 0, 0, 100, 0, 102, 0, - 0, 98, 0, 234, 226, 68, 0, 66, 67, 0, - 234, 234, 0, 116, 262, 28, 27, 0, 78, 49, - 263, 0, 0, 217, 0, 218, 0, 178, 0, 166, - 0, 158, 0, 163, 164, 147, 148, 165, 145, 146, - 0, 201, 193, 200, 0, 196, 189, 191, 190, 186, - 188, 269, 0, 162, 161, 168, 169, 0, 0, 108, - 0, 105, 0, 0, 52, 0, 61, 76, 70, 46, - 0, 0, 0, 234, 48, 0, 33, 0, 234, 212, - 216, 0, 0, 255, 203, 0, 202, 0, 266, 173, - 172, 170, 171, 167, 192, 0, 103, 104, 107, 234, - 227, 0, 0, 69, 234, 57, 58, 56, 234, 0, - 0, 0, 121, 129, 132, 130, 207, 208, 131, 268, - 0, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 30, 29, 177, 152, 154, 151, 0, - 149, 150, 0, 198, 197, 182, 0, 73, 71, 74, - 72, 0, 0, 0, 0, 133, 184, 234, 120, 264, - 155, 153, 159, 160, 234, 228, 234, 0, 0, 0, - 0, 183, 122, 0, 0, 0, 0, 210, 0, 214, - 0, 229, 234, 0, 209, 0, 213, 0, 0, 55, - 32, 211, 215, 0, 0, 185 + 0, 3, 4, 0, 6, 1, 9, 0, 5, 238, + 0, 239, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 234, 0, 0, 237, 8, 0, 12, + 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, + 20, 0, 88, 89, 113, 114, 90, 0, 91, 92, + 93, 7, 0, 0, 0, 0, 0, 64, 0, 87, + 63, 0, 0, 0, 0, 0, 75, 0, 0, 232, + 233, 31, 0, 0, 0, 10, 11, 0, 235, 242, + 240, 0, 0, 117, 234, 115, 251, 249, 245, 247, + 244, 263, 246, 234, 83, 84, 85, 86, 53, 234, + 234, 234, 234, 234, 234, 77, 54, 225, 224, 0, + 0, 0, 0, 59, 0, 234, 82, 0, 60, 62, + 126, 127, 205, 206, 128, 221, 222, 0, 234, 0, + 0, 0, 272, 94, 118, 0, 119, 123, 124, 125, + 219, 220, 223, 0, 253, 252, 254, 0, 248, 0, + 0, 0, 0, 26, 0, 25, 24, 260, 111, 109, + 263, 96, 0, 0, 0, 0, 0, 0, 257, 0, + 257, 0, 0, 267, 263, 134, 135, 136, 137, 139, + 138, 140, 141, 142, 143, 0, 144, 260, 101, 0, + 99, 97, 263, 0, 106, 95, 82, 0, 80, 79, + 81, 51, 0, 0, 0, 0, 236, 241, 0, 231, + 230, 255, 256, 250, 269, 0, 234, 234, 0, 47, + 0, 50, 0, 234, 261, 262, 110, 112, 0, 0, + 0, 204, 175, 176, 174, 0, 157, 259, 258, 156, + 0, 0, 0, 0, 199, 195, 0, 194, 263, 187, + 181, 180, 179, 0, 0, 0, 0, 100, 0, 102, + 0, 0, 98, 0, 234, 226, 68, 0, 66, 67, + 0, 234, 234, 243, 0, 116, 264, 28, 27, 0, + 78, 49, 265, 0, 0, 217, 0, 218, 0, 178, + 0, 166, 0, 158, 0, 163, 164, 147, 148, 165, + 145, 146, 0, 201, 193, 200, 0, 196, 189, 191, + 190, 186, 188, 271, 0, 162, 161, 168, 169, 0, + 0, 108, 0, 105, 0, 0, 52, 0, 61, 76, + 70, 46, 0, 0, 0, 234, 48, 0, 33, 0, + 234, 212, 216, 0, 0, 257, 203, 0, 202, 0, + 268, 173, 172, 170, 171, 167, 192, 0, 103, 104, + 107, 234, 227, 0, 0, 69, 234, 57, 58, 56, + 234, 0, 0, 0, 121, 129, 132, 130, 207, 208, + 131, 270, 0, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 30, 29, 177, 152, 154, + 151, 0, 149, 150, 0, 198, 197, 182, 0, 73, + 71, 74, 72, 0, 0, 0, 0, 133, 184, 234, + 120, 266, 155, 153, 159, 160, 234, 228, 234, 0, + 0, 0, 0, 183, 122, 0, 0, 0, 0, 210, + 0, 214, 0, 229, 234, 0, 209, 0, 213, 0, + 0, 55, 32, 211, 215, 0, 0, 185 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 3, 4, 6, 8, 9, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 281, - 393, 41, 151, 218, 73, 60, 69, 329, 330, 367, - 219, 61, 119, 266, 267, 268, 363, 408, 410, 70, - 328, 108, 279, 202, 100, 42, 43, 120, 196, 322, - 261, 320, 162, 44, 45, 46, 136, 86, 273, 371, - 137, 121, 372, 373, 122, 176, 298, 177, 400, 421, - 178, 238, 179, 422, 180, 314, 299, 290, 181, 317, - 353, 182, 233, 183, 288, 184, 251, 185, 415, 431, - 186, 309, 310, 355, 248, 302, 303, 347, 345, 187, - 123, 375, 376, 436, 124, 377, 438, 125, 284, 286, - 378, 126, 141, 127, 128, 143, 74, 47, 57, 48, - 52, 80, 49, 62, 94, 147, 212, 239, 225, 149, - 336, 253, 214, 380, 312, 50 + -1, 3, 4, 6, 8, 9, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 283, + 395, 40, 150, 219, 71, 58, 67, 331, 332, 369, + 220, 59, 117, 267, 268, 269, 365, 410, 412, 68, + 330, 106, 281, 201, 98, 41, 42, 118, 195, 324, + 262, 322, 161, 43, 44, 45, 135, 85, 275, 373, + 136, 119, 374, 375, 120, 175, 300, 176, 402, 423, + 177, 239, 178, 424, 179, 316, 301, 292, 180, 319, + 355, 181, 234, 182, 290, 183, 252, 184, 417, 433, + 185, 311, 312, 357, 249, 304, 305, 349, 347, 186, + 121, 377, 378, 438, 122, 379, 440, 123, 286, 288, + 380, 124, 140, 125, 126, 142, 72, 46, 130, 47, + 48, 52, 80, 49, 60, 92, 146, 213, 240, 226, + 148, 338, 254, 215, 382, 314, 50 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -403 +#define YYPACT_NINF -386 static const yytype_int16 yypact[] = { - 62, -403, -403, 41, -403, -403, 81, -36, -403, 198, - -8, -403, -5, 18, 20, 35, -403, -403, -23, -23, - -23, -23, -23, -23, 45, 131, -23, -23, -403, 58, - -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, - -403, -403, 67, -403, -403, -403, -403, -403, -403, -403, - -403, -403, 63, 86, 92, 128, 84, 63, 99, -403, - 69, 133, -403, 87, 89, 129, 145, 146, -403, 147, - 154, -403, -403, -403, -13, 150, 151, -403, -403, -403, - 152, 162, -14, 197, 240, -34, -403, 152, 98, -403, - -403, -403, -403, 155, -403, 131, -403, -403, -403, -403, - -403, 131, 131, 131, 131, 131, 131, -403, -403, -403, - -403, 72, 105, 77, 17, 156, 12, 131, 68, 157, - -403, -403, -403, -403, -403, -403, -403, -403, -403, 12, - 131, 165, -403, -403, -403, -403, 158, -403, -403, -403, - -403, -403, -403, -403, 223, -403, -403, -16, 245, -403, - 163, 164, -9, 167, -403, 168, -403, -403, 55, -403, - -403, 155, -403, 170, 171, 172, 206, 2, 173, 34, - 174, 127, 112, 1, 175, 155, -403, -403, -403, -403, - -403, -403, -403, -403, -403, -403, 207, -403, 55, -403, - 177, -403, -403, 155, 178, 179, -403, 68, 22, -403, - -403, -403, -403, -6, 169, 182, -403, 180, -403, -403, - -403, -403, -403, -403, 181, 131, 131, 12, -403, 188, - 190, 195, 131, -403, -403, -403, -403, 272, 273, 274, - -403, -403, -403, -403, 275, -403, -403, -403, -403, 232, - 275, 79, 191, 277, -403, 192, -403, 155, 15, -403, - -403, -403, 280, 276, 8, 194, -403, 283, -403, 284, - 283, -403, 199, 131, -403, -403, 200, -403, -403, 209, - 131, 131, 201, -403, -403, -403, -403, 204, -403, -403, - 205, 210, 211, -403, 203, -403, 212, -403, 213, -403, - 214, -403, 215, -403, -403, -403, -403, -403, -403, -403, - 286, -403, -403, -403, 294, -403, -403, -403, -403, -403, - -403, -403, 216, -403, -403, -403, -403, 161, 297, -403, - 217, -403, 218, 219, -403, 76, -403, -403, 139, -403, - 227, -4, 228, 30, -403, 298, -403, 137, 131, -403, - -403, 265, 130, 127, -403, 220, -403, 226, -403, -403, - -403, -403, -403, -403, -403, 229, -403, -403, -403, 131, - -403, 315, 319, -403, 131, -403, -403, -403, 131, 123, - 77, 80, -403, -403, -403, -403, -403, -403, -403, -403, - 233, -403, -403, -403, -403, -403, -403, -403, -403, -403, - -403, -403, -403, -403, -403, -403, -403, -403, -403, 311, - -403, -403, 9, -403, -403, -403, 83, -403, -403, -403, - -403, 237, 238, 239, 241, -403, 281, 30, -403, -403, - -403, -403, -403, -403, 131, -403, 131, 195, 272, 273, - 242, -403, -403, 234, 246, 247, 248, 243, 249, 251, - 297, -403, 131, 137, -403, 272, -403, 273, 36, -403, - -403, -403, -403, 297, 250, -403 + 203, -386, -386, 23, -386, -386, 67, -50, -386, 20, + 16, -386, 21, 37, 48, -386, -19, -19, -19, -19, + -19, -19, 58, 131, -19, -19, -386, -386, 53, -386, + -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, + -386, 64, -386, -386, -386, -386, -386, 229, -386, -386, + -386, -386, 77, 81, 89, 78, 95, -386, 75, 130, + -386, 119, 139, 140, 142, 146, -386, 147, 136, -386, + -386, -386, -14, 148, 149, -386, -386, 159, -386, -386, + 152, 162, -20, 239, -6, -386, 31, -386, -386, -386, + -386, 153, -386, 131, -386, -386, -386, -386, -386, 131, + 131, 131, 131, 131, 131, -386, -386, -386, -386, 28, + 50, 123, 40, 154, 30, 131, 101, 155, -386, -386, + -386, -386, -386, -386, -386, -386, -386, 30, 131, 156, + 77, 167, -386, -386, -386, 158, -386, -386, -386, -386, + -386, -386, -386, 218, -386, -386, 13, 244, -386, 160, + 163, -10, 164, -386, 165, -386, -386, 73, -386, -386, + 153, -386, 166, 168, 169, 210, 42, 170, 91, 171, + 100, 145, 38, 173, 153, -386, -386, -386, -386, -386, + -386, -386, -386, -386, -386, 209, -386, 73, -386, 174, + -386, -386, 153, 175, 176, -386, 101, 57, -386, -386, + -386, -386, -16, 179, 180, 225, 152, -386, 177, -386, + -386, -386, -386, -386, -386, 181, 131, 131, 30, -386, + 190, 191, 212, 131, -386, -386, -386, -386, 273, 274, + 275, -386, -386, -386, -386, 276, -386, -386, -386, -386, + 233, 276, 115, 192, 278, -386, 193, -386, 153, 9, + -386, -386, -386, 281, 277, 25, 195, -386, 284, -386, + 285, 284, -386, 200, 131, -386, -386, 199, -386, -386, + 208, 131, 131, -386, 197, -386, -386, -386, -386, 206, + -386, -386, 207, 205, 211, -386, 213, -386, 214, -386, + 215, -386, 216, -386, 217, -386, -386, -386, -386, -386, + -386, -386, 293, -386, -386, -386, 295, -386, -386, -386, + -386, -386, -386, -386, 219, -386, -386, -386, -386, 157, + 297, -386, 220, -386, 221, 222, -386, 66, -386, -386, + 133, -386, 226, -12, 230, 49, -386, 298, -386, 125, + 131, -386, -386, 265, 118, 100, -386, 228, -386, 232, + -386, -386, -386, -386, -386, -386, -386, 234, -386, -386, + -386, 131, -386, 300, 306, -386, 131, -386, -386, -386, + 131, 129, 123, 69, -386, -386, -386, -386, -386, -386, + -386, -386, 235, -386, -386, -386, -386, -386, -386, -386, + -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, + -386, 308, -386, -386, 41, -386, -386, -386, 86, -386, + -386, -386, -386, 240, 241, 231, 237, -386, 286, 49, + -386, -386, -386, -386, -386, -386, 131, -386, 131, 212, + 273, 274, 243, -386, -386, 238, 242, 247, 245, 246, + 248, 252, 297, -386, 131, 125, -386, 273, -386, 274, + 45, -386, -386, -386, -386, 297, 250, -386 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, - -403, -403, -403, -403, -403, -403, -403, -403, -403, -74, - -81, -403, -98, 141, -82, 160, -403, -403, -358, -403, - -41, -403, -403, -403, -403, -403, -403, -403, -403, 166, - -403, -403, -403, 176, -403, -403, -403, 282, -403, -403, - -403, 103, -403, -403, -403, -403, -403, -403, -403, -403, - -403, -403, -52, -403, -84, -403, -403, -403, -403, -403, - -403, -403, -403, -403, -403, -403, -333, 126, -403, -403, - -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, - -3, -403, -403, -402, -403, -403, -403, -403, -403, -403, - 285, -403, -403, -403, -403, -403, -403, -403, -398, -392, - 287, -403, -403, -145, -83, -114, -85, -403, -403, -403, - -403, 314, -403, 291, -403, -403, -403, -167, 187, -149, - -403, -403, -403, -403, -403, -403 + -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, + -386, -386, -386, -386, -386, -386, -386, -386, -386, -71, + -80, -386, -96, 144, -81, 204, -386, -386, -350, -386, + -17, -386, -386, -386, -386, -386, -386, -386, -386, 161, + -386, -386, -386, 172, -386, -386, -386, 282, -386, -386, + -386, 105, -386, -386, -386, -386, -386, -386, -386, -386, + -386, -386, -52, -386, -83, -386, -386, -386, -386, -386, + -386, -386, -386, -386, -386, -386, -300, 128, -386, -386, + -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, + -2, -386, -386, -327, -386, -386, -386, -386, -386, -386, + 287, -386, -386, -386, -386, -386, -386, -386, -385, -318, + 288, -386, -386, -145, -82, -112, -84, -386, -386, -386, + -386, -386, 249, -386, 178, -386, -386, -386, -166, 186, + -131, -386, -386, -386, -386, -386, -386 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1112,86 +1114,88 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -222 static const yytype_int16 yytable[] = { - 144, 138, 142, 198, 241, 154, 411, 220, 157, 401, - 109, 110, 226, 150, 109, 110, 152, 265, 152, 365, - 153, 152, 155, 156, 111, 111, 254, 249, 112, 111, - 437, 231, 144, 118, 293, 109, 110, 439, 448, 113, - 294, 5, 58, 315, 258, 210, 188, 451, 205, 112, - 111, 454, 211, 112, 189, 452, 306, 307, 232, 235, - 113, 236, 316, 10, 113, 1, 2, 190, 434, 423, - 191, 250, 220, 237, 112, 197, 59, 192, 71, 72, - 297, 117, 114, 114, 449, 113, 115, 114, 204, 7, - 115, 193, 369, 68, 53, 366, 116, 308, 305, 51, - 217, 158, 117, 370, 293, 165, 117, 166, 114, 159, - 294, 115, 295, 167, 194, 195, 223, 54, 276, 55, - 168, 169, 170, 224, 171, 145, 172, 117, 88, 89, - 263, 152, 160, 275, 56, 173, 90, 146, 264, 163, - 282, 453, 71, 72, 68, 117, 161, 405, 296, 325, - 297, 164, 174, 175, 236, 293, 396, 413, 91, 92, - 242, 294, 79, 243, 244, 77, 237, 245, 199, 414, - 397, 200, 201, 93, 78, 246, 402, 95, 144, 63, - 64, 65, 66, 67, 359, 331, 75, 76, 417, 332, - 398, 424, 360, 247, 84, 101, 418, 102, 85, 425, - 81, 297, 399, 11, 12, 13, 82, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 96, 97, 98, 99, 103, 349, 350, - 351, 352, 83, 71, 72, 406, 208, 209, 144, 374, - 142, 361, 362, 104, 105, 106, 394, 107, 129, 130, - 131, 132, 58, 135, 206, 148, -65, 203, 213, 207, - 230, 215, 216, 255, 144, 221, 222, 270, 280, 331, - 227, 228, 229, 234, 240, 252, 412, 257, 259, 260, - 271, 278, 274, -221, 272, 283, 285, 287, 289, 291, - 301, 300, 304, 311, 318, 313, 319, 321, 324, 344, - 433, 326, 327, 334, 339, 335, 333, 346, 337, 338, - 354, 379, 395, 340, 341, 342, 343, 348, 356, 357, - 358, 403, 144, 374, 142, 364, 368, 404, 407, 144, - 405, 331, 409, 420, 419, 426, 427, 430, 445, 428, - 441, 429, 440, 435, 442, 443, 447, 331, 277, 444, - 446, 455, 450, 323, 133, 432, 292, 416, 0, 269, - 139, 87, 140, 262, 134, 256 + 143, 137, 141, 197, 242, 153, 221, 266, 156, 107, + 108, 367, 149, 107, 108, 151, 413, 151, 109, 152, + 151, 154, 155, 5, 109, 11, 12, 13, 109, 227, + 14, 143, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 255, 403, 439, 56, 204, 110, 10, + 308, 309, 110, 107, 108, 116, 110, 157, 144, 111, + 317, 259, 453, 111, 250, 158, 295, 111, 109, 187, + 145, 232, 296, 221, 211, 7, 112, 188, 436, 318, + 57, 212, 112, 66, 162, 113, 112, 368, 159, 113, + 189, 310, 110, 190, 451, 114, 163, 196, 233, 218, + 191, 115, 160, 111, 425, 115, 69, 70, 251, 115, + 203, 371, 299, 441, 192, 450, 236, 307, 237, 26, + 53, 278, 372, 51, 86, 87, 112, 237, 456, 113, + 238, 454, 88, 151, 224, 277, 54, 193, 194, 238, + 295, 225, 284, 295, 398, 115, 296, 55, 297, 296, + 455, 164, 327, 165, 89, 90, 407, 66, 399, 166, + 75, 69, 70, 415, 115, 264, 167, 168, 169, 91, + 170, 76, 171, 265, 361, 416, 79, 419, 400, 404, + 143, 172, 362, 93, 298, 420, 299, 333, 83, 299, + 401, 334, 84, 243, 426, 81, 244, 245, 173, 174, + 246, 198, 427, 82, 199, 200, 1, 2, 247, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 61, 62, 63, 64, 65, 248, 99, 73, 74, + 94, 95, 96, 97, 351, 352, 353, 354, 77, 105, + 78, 209, 210, 69, 70, 363, 364, 100, 101, 408, + 102, 143, 376, 141, 103, 104, 127, 128, 129, 396, + 131, 132, 134, 147, -65, 202, 207, 214, 216, 208, + 205, 217, 222, 223, 231, 256, 228, 143, 229, 230, + 235, 241, 333, 253, 258, 260, 261, 271, 272, 414, + 56, 274, 276, 280, -221, 282, 285, 287, 289, 291, + 293, 303, 302, 306, 313, 320, 315, 321, 323, 326, + 328, 329, 335, 339, 435, 336, 346, 337, 348, 340, + 356, 381, 397, 409, 341, 342, 343, 344, 345, 411, + 350, 358, 359, 360, 366, 143, 376, 141, 370, 405, + 422, 430, 143, 406, 333, 407, 421, 431, 428, 429, + 444, 447, 432, 442, 443, 445, 446, 449, 437, 448, + 333, 457, 279, 270, 133, 452, 325, 434, 263, 294, + 418, 138, 139, 257, 0, 0, 0, 0, 0, 206, + 0, 0, 0, 273 }; static const yytype_int16 yycheck[] = { - 85, 85, 85, 117, 171, 103, 364, 152, 106, 342, - 23, 24, 161, 95, 23, 24, 101, 23, 103, 23, - 102, 106, 104, 105, 38, 38, 175, 26, 62, 38, - 428, 29, 117, 74, 25, 23, 24, 429, 440, 73, - 31, 0, 65, 35, 193, 61, 29, 445, 130, 62, - 38, 453, 68, 62, 37, 447, 41, 42, 56, 25, - 73, 27, 54, 99, 73, 3, 4, 50, 426, 402, - 53, 70, 217, 39, 62, 116, 99, 60, 112, 113, - 71, 115, 96, 96, 442, 73, 99, 96, 129, 8, - 99, 74, 62, 99, 99, 99, 109, 82, 247, 107, - 109, 29, 115, 73, 25, 28, 115, 30, 96, 37, - 31, 99, 33, 36, 97, 98, 61, 99, 216, 99, - 43, 44, 45, 68, 47, 27, 49, 115, 29, 30, - 108, 216, 60, 215, 99, 58, 37, 39, 116, 34, - 222, 105, 112, 113, 99, 115, 74, 111, 69, 263, - 71, 46, 75, 76, 27, 25, 26, 34, 59, 60, - 48, 31, 99, 51, 52, 107, 39, 55, 100, 46, - 40, 103, 104, 74, 107, 63, 343, 108, 263, 19, - 20, 21, 22, 23, 108, 270, 26, 27, 108, 271, - 60, 108, 116, 81, 110, 108, 116, 108, 114, 116, - 114, 71, 72, 5, 6, 7, 114, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 100, 101, 102, 103, 108, 77, 78, - 79, 80, 114, 112, 113, 359, 23, 24, 333, 333, - 333, 112, 113, 108, 108, 108, 338, 103, 108, 108, - 108, 99, 65, 23, 99, 110, 110, 110, 23, 111, - 64, 108, 108, 66, 359, 108, 108, 108, 83, 364, - 110, 110, 110, 110, 110, 110, 368, 110, 110, 110, - 108, 103, 111, 103, 114, 23, 23, 23, 23, 67, - 23, 110, 110, 23, 110, 29, 23, 23, 109, 23, - 424, 111, 103, 109, 111, 110, 115, 23, 108, 108, - 23, 23, 57, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 417, 417, 417, 108, 108, 111, 23, 424, - 111, 426, 23, 32, 111, 108, 108, 66, 105, 110, - 116, 110, 110, 427, 108, 108, 105, 442, 217, 111, - 111, 111, 443, 260, 82, 417, 240, 370, -1, 203, - 85, 57, 85, 197, 83, 188 + 84, 84, 84, 115, 170, 101, 151, 23, 104, 23, + 24, 23, 93, 23, 24, 99, 366, 101, 38, 100, + 104, 102, 103, 0, 38, 5, 6, 7, 38, 160, + 10, 115, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 174, 344, 430, 65, 128, 62, 99, + 41, 42, 62, 23, 24, 72, 62, 29, 27, 73, + 35, 192, 447, 73, 26, 37, 25, 73, 38, 29, + 39, 29, 31, 218, 61, 8, 96, 37, 428, 54, + 99, 68, 96, 99, 34, 99, 96, 99, 60, 99, + 50, 82, 62, 53, 444, 109, 46, 114, 56, 109, + 60, 115, 74, 73, 404, 115, 112, 113, 70, 115, + 127, 62, 71, 431, 74, 442, 25, 248, 27, 99, + 99, 217, 73, 107, 29, 30, 96, 27, 455, 99, + 39, 449, 37, 217, 61, 216, 99, 97, 98, 39, + 25, 68, 223, 25, 26, 115, 31, 99, 33, 31, + 105, 28, 264, 30, 59, 60, 111, 99, 40, 36, + 107, 112, 113, 34, 115, 108, 43, 44, 45, 74, + 47, 107, 49, 116, 108, 46, 99, 108, 60, 345, + 264, 58, 116, 108, 69, 116, 71, 271, 110, 71, + 72, 272, 114, 48, 108, 114, 51, 52, 75, 76, + 55, 100, 116, 114, 103, 104, 3, 4, 63, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 17, 18, 19, 20, 21, 81, 108, 24, 25, + 100, 101, 102, 103, 77, 78, 79, 80, 9, 103, + 11, 23, 24, 112, 113, 112, 113, 108, 108, 361, + 108, 335, 335, 335, 108, 108, 108, 108, 99, 340, + 108, 99, 23, 110, 110, 110, 99, 23, 108, 111, + 114, 108, 108, 108, 64, 66, 110, 361, 110, 110, + 110, 110, 366, 110, 110, 110, 110, 108, 108, 370, + 65, 114, 111, 103, 103, 83, 23, 23, 23, 23, + 67, 23, 110, 110, 23, 110, 29, 23, 23, 109, + 111, 103, 115, 108, 426, 109, 23, 110, 23, 108, + 23, 23, 57, 23, 111, 111, 111, 111, 111, 23, + 111, 111, 111, 111, 108, 419, 419, 419, 108, 111, + 32, 110, 426, 111, 428, 111, 111, 110, 108, 108, + 108, 105, 66, 110, 116, 108, 111, 105, 429, 111, + 444, 111, 218, 202, 82, 445, 261, 419, 196, 241, + 372, 84, 84, 187, -1, -1, -1, -1, -1, 130, + -1, -1, -1, 205 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1199,51 +1203,51 @@ static const yytype_int16 yycheck[] = static const yytype_uint8 yystos[] = { 0, 3, 4, 118, 119, 0, 120, 8, 121, 122, - 99, 5, 6, 7, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 138, 162, 163, 170, 171, 172, 234, 236, 239, - 252, 107, 237, 99, 99, 99, 99, 235, 65, 99, - 142, 148, 240, 142, 142, 142, 142, 142, 99, 143, - 156, 112, 113, 141, 233, 142, 142, 107, 107, 99, - 238, 114, 114, 114, 110, 114, 174, 238, 29, 30, - 37, 59, 60, 74, 241, 108, 100, 101, 102, 103, - 161, 108, 108, 108, 108, 108, 108, 103, 158, 23, - 24, 38, 62, 73, 96, 99, 109, 115, 147, 149, - 164, 178, 181, 217, 221, 224, 228, 230, 231, 108, - 108, 108, 99, 164, 240, 23, 173, 177, 181, 217, - 227, 229, 231, 232, 233, 27, 39, 242, 110, 246, - 141, 139, 233, 141, 139, 141, 141, 139, 29, 37, - 60, 74, 169, 34, 46, 28, 30, 36, 43, 44, - 45, 47, 49, 58, 75, 76, 182, 184, 187, 189, - 191, 195, 198, 200, 202, 204, 207, 216, 29, 37, - 50, 53, 60, 74, 97, 98, 165, 147, 232, 100, - 103, 104, 160, 110, 147, 141, 99, 111, 23, 24, - 61, 68, 243, 23, 249, 108, 108, 109, 140, 147, - 230, 108, 108, 61, 68, 245, 246, 110, 110, 110, - 64, 29, 56, 199, 110, 25, 27, 39, 188, 244, - 110, 244, 48, 51, 52, 55, 63, 81, 211, 26, - 70, 203, 110, 248, 246, 66, 245, 110, 246, 110, - 110, 167, 160, 108, 116, 23, 150, 151, 152, 156, - 108, 108, 114, 175, 111, 141, 139, 140, 103, 159, - 83, 136, 141, 23, 225, 23, 226, 23, 201, 23, - 194, 67, 194, 25, 31, 33, 69, 71, 183, 193, - 110, 23, 212, 213, 110, 246, 41, 42, 82, 208, - 209, 23, 251, 29, 192, 35, 54, 196, 110, 23, - 168, 23, 166, 168, 109, 232, 111, 103, 157, 144, - 145, 233, 141, 115, 109, 110, 247, 108, 108, 111, - 111, 111, 111, 111, 23, 215, 23, 214, 111, 77, - 78, 79, 80, 197, 23, 210, 111, 111, 111, 108, - 116, 112, 113, 153, 108, 23, 99, 146, 108, 62, - 73, 176, 179, 180, 181, 218, 219, 222, 227, 23, - 250, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 137, 141, 57, 26, 40, 60, 72, - 185, 193, 244, 111, 111, 111, 232, 23, 154, 23, - 155, 145, 141, 34, 46, 205, 207, 108, 116, 111, - 32, 186, 190, 193, 108, 116, 108, 108, 110, 110, - 66, 206, 179, 232, 145, 136, 220, 225, 223, 226, - 110, 116, 108, 108, 111, 105, 111, 105, 210, 145, - 137, 225, 226, 105, 210, 111 + 99, 5, 6, 7, 10, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 99, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 138, 162, 163, 170, 171, 172, 234, 236, 237, 240, + 253, 107, 238, 99, 99, 99, 65, 99, 142, 148, + 241, 142, 142, 142, 142, 142, 99, 143, 156, 112, + 113, 141, 233, 142, 142, 107, 107, 9, 11, 99, + 239, 114, 114, 110, 114, 174, 29, 30, 37, 59, + 60, 74, 242, 108, 100, 101, 102, 103, 161, 108, + 108, 108, 108, 108, 108, 103, 158, 23, 24, 38, + 62, 73, 96, 99, 109, 115, 147, 149, 164, 178, + 181, 217, 221, 224, 228, 230, 231, 108, 108, 99, + 235, 108, 99, 164, 23, 173, 177, 181, 217, 227, + 229, 231, 232, 233, 27, 39, 243, 110, 247, 141, + 139, 233, 141, 139, 141, 141, 139, 29, 37, 60, + 74, 169, 34, 46, 28, 30, 36, 43, 44, 45, + 47, 49, 58, 75, 76, 182, 184, 187, 189, 191, + 195, 198, 200, 202, 204, 207, 216, 29, 37, 50, + 53, 60, 74, 97, 98, 165, 147, 232, 100, 103, + 104, 160, 110, 147, 141, 114, 239, 99, 111, 23, + 24, 61, 68, 244, 23, 250, 108, 108, 109, 140, + 147, 230, 108, 108, 61, 68, 246, 247, 110, 110, + 110, 64, 29, 56, 199, 110, 25, 27, 39, 188, + 245, 110, 245, 48, 51, 52, 55, 63, 81, 211, + 26, 70, 203, 110, 249, 247, 66, 246, 110, 247, + 110, 110, 167, 160, 108, 116, 23, 150, 151, 152, + 156, 108, 108, 241, 114, 175, 111, 141, 139, 140, + 103, 159, 83, 136, 141, 23, 225, 23, 226, 23, + 201, 23, 194, 67, 194, 25, 31, 33, 69, 71, + 183, 193, 110, 23, 212, 213, 110, 247, 41, 42, + 82, 208, 209, 23, 252, 29, 192, 35, 54, 196, + 110, 23, 168, 23, 166, 168, 109, 232, 111, 103, + 157, 144, 145, 233, 141, 115, 109, 110, 248, 108, + 108, 111, 111, 111, 111, 111, 23, 215, 23, 214, + 111, 77, 78, 79, 80, 197, 23, 210, 111, 111, + 111, 108, 116, 112, 113, 153, 108, 23, 99, 146, + 108, 62, 73, 176, 179, 180, 181, 218, 219, 222, + 227, 23, 251, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 137, 141, 57, 26, 40, + 60, 72, 185, 193, 245, 111, 111, 111, 232, 23, + 154, 23, 155, 145, 141, 34, 46, 205, 207, 108, + 116, 111, 32, 186, 190, 193, 108, 116, 108, 108, + 110, 110, 66, 206, 179, 232, 145, 136, 220, 225, + 223, 226, 110, 116, 108, 108, 111, 105, 111, 105, + 210, 145, 137, 225, 226, 105, 210, 111 }; #define yyerrok (yyerrstatus = 0) @@ -4350,20 +4354,67 @@ yyreduce: /* Line 1455 of yacc.c */ #line 1814 "program_parse.y" - { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} + { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; case 237: /* Line 1455 of yacc.c */ -#line 1817 "program_parse.y" - { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} +#line 1818 "program_parse.y" + { + /* NV_fragment_program_option defines the size qualifiers in a + * fairly broken way. "SHORT" or "LONG" can optionally be used + * before TEMP or OUTPUT. However, neither is a reserved word! + * This means that we have to parse it as an identifier, then check + * to make sure it's one of the valid values. *sigh* + * + * In addition, the grammar in the extension spec does *not* allow + * the size specifier to be optional, but all known implementations + * do. + */ + if (!state->option.NV_fragment) { + yyerror(& (yylsp[(1) - (1)]), state, "unexpected IDENTIFIER"); + YYERROR; + } + + if (strcmp("SHORT", (yyvsp[(1) - (1)].string)) == 0) { + } else if (strcmp("LONG", (yyvsp[(1) - (1)].string)) == 0) { + } else { + char *const err_str = + make_error_string("invalid storage size specifier \"%s\"", + (yyvsp[(1) - (1)].string)); + + yyerror(& (yylsp[(1) - (1)]), state, (err_str != NULL) + ? err_str : "invalid storage size specifier"); + + if (err_str != NULL) { + _mesa_free(err_str); + } + + YYERROR; + } + ;} + break; + + case 238: + +/* Line 1455 of yacc.c */ +#line 1852 "program_parse.y" + { + ;} break; case 239: /* Line 1455 of yacc.c */ -#line 1821 "program_parse.y" +#line 1856 "program_parse.y" + { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} + break; + + case 241: + +/* Line 1455 of yacc.c */ +#line 1860 "program_parse.y" { if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) { YYERROR; @@ -4371,10 +4422,10 @@ yyreduce: ;} break; - case 240: + case 242: /* Line 1455 of yacc.c */ -#line 1827 "program_parse.y" +#line 1866 "program_parse.y" { if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) { YYERROR; @@ -4382,26 +4433,26 @@ yyreduce: ;} break; - case 241: + case 243: /* Line 1455 of yacc.c */ -#line 1835 "program_parse.y" +#line 1874 "program_parse.y" { struct asm_symbol *const s = - declare_variable(state, (yyvsp[(2) - (4)].string), at_output, & (yylsp[(2) - (4)])); + declare_variable(state, (yyvsp[(3) - (5)].string), at_output, & (yylsp[(3) - (5)])); if (s == NULL) { YYERROR; } else { - s->output_binding = (yyvsp[(4) - (4)].result); + s->output_binding = (yyvsp[(5) - (5)].result); } ;} break; - case 242: + case 244: /* Line 1455 of yacc.c */ -#line 1848 "program_parse.y" +#line 1887 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_HPOS; @@ -4412,10 +4463,10 @@ yyreduce: ;} break; - case 243: + case 245: /* Line 1455 of yacc.c */ -#line 1857 "program_parse.y" +#line 1896 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_FOGC; @@ -4426,19 +4477,19 @@ yyreduce: ;} break; - case 244: + case 246: /* Line 1455 of yacc.c */ -#line 1866 "program_parse.y" +#line 1905 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (2)].result); ;} break; - case 245: + case 247: /* Line 1455 of yacc.c */ -#line 1870 "program_parse.y" +#line 1909 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_PSIZ; @@ -4449,10 +4500,10 @@ yyreduce: ;} break; - case 246: + case 248: /* Line 1455 of yacc.c */ -#line 1879 "program_parse.y" +#line 1918 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer); @@ -4463,10 +4514,10 @@ yyreduce: ;} break; - case 247: + case 249: /* Line 1455 of yacc.c */ -#line 1888 "program_parse.y" +#line 1927 "program_parse.y" { if (state->mode == ARB_fragment) { (yyval.result) = FRAG_RESULT_DEPTH; @@ -4477,19 +4528,19 @@ yyreduce: ;} break; - case 248: + case 250: /* Line 1455 of yacc.c */ -#line 1899 "program_parse.y" +#line 1938 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer); ;} break; - case 249: + case 251: /* Line 1455 of yacc.c */ -#line 1905 "program_parse.y" +#line 1944 "program_parse.y" { (yyval.integer) = (state->mode == ARB_vertex) ? VERT_RESULT_COL0 @@ -4497,10 +4548,10 @@ yyreduce: ;} break; - case 250: + case 252: /* Line 1455 of yacc.c */ -#line 1911 "program_parse.y" +#line 1950 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_COL0; @@ -4511,10 +4562,10 @@ yyreduce: ;} break; - case 251: + case 253: /* Line 1455 of yacc.c */ -#line 1920 "program_parse.y" +#line 1959 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_BFC0; @@ -4525,19 +4576,19 @@ yyreduce: ;} break; - case 252: + case 254: /* Line 1455 of yacc.c */ -#line 1931 "program_parse.y" +#line 1970 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 253: + case 255: /* Line 1455 of yacc.c */ -#line 1935 "program_parse.y" +#line 1974 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 0; @@ -4548,10 +4599,10 @@ yyreduce: ;} break; - case 254: + case 256: /* Line 1455 of yacc.c */ -#line 1944 "program_parse.y" +#line 1983 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 1; @@ -4562,94 +4613,94 @@ yyreduce: ;} break; - case 255: + case 257: /* Line 1455 of yacc.c */ -#line 1954 "program_parse.y" +#line 1993 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 256: + case 258: /* Line 1455 of yacc.c */ -#line 1955 "program_parse.y" +#line 1994 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 257: + case 259: /* Line 1455 of yacc.c */ -#line 1956 "program_parse.y" +#line 1995 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 258: + case 260: /* Line 1455 of yacc.c */ -#line 1959 "program_parse.y" +#line 1998 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 259: + case 261: /* Line 1455 of yacc.c */ -#line 1960 "program_parse.y" +#line 1999 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 260: + case 262: /* Line 1455 of yacc.c */ -#line 1961 "program_parse.y" +#line 2000 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 261: + case 263: /* Line 1455 of yacc.c */ -#line 1964 "program_parse.y" +#line 2003 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 262: + case 264: /* Line 1455 of yacc.c */ -#line 1965 "program_parse.y" +#line 2004 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 263: + case 265: /* Line 1455 of yacc.c */ -#line 1968 "program_parse.y" +#line 2007 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 264: + case 266: /* Line 1455 of yacc.c */ -#line 1969 "program_parse.y" +#line 2008 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 265: + case 267: /* Line 1455 of yacc.c */ -#line 1972 "program_parse.y" +#line 2011 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 266: + case 268: /* Line 1455 of yacc.c */ -#line 1973 "program_parse.y" +#line 2012 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 267: + case 269: /* Line 1455 of yacc.c */ -#line 1977 "program_parse.y" +#line 2016 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector"); @@ -4660,10 +4711,10 @@ yyreduce: ;} break; - case 268: + case 270: /* Line 1455 of yacc.c */ -#line 1988 "program_parse.y" +#line 2027 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector"); @@ -4674,10 +4725,10 @@ yyreduce: ;} break; - case 269: + case 271: /* Line 1455 of yacc.c */ -#line 1999 "program_parse.y" +#line 2038 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector"); @@ -4688,10 +4739,10 @@ yyreduce: ;} break; - case 270: + case 272: /* Line 1455 of yacc.c */ -#line 2010 "program_parse.y" +#line 2049 "program_parse.y" { struct asm_symbol *exist = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string)); @@ -4715,7 +4766,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 4719 "program_parse.tab.c" +#line 4770 "program_parse.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4934,7 +4985,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 2030 "program_parse.y" +#line 2069 "program_parse.y" void @@ -5004,7 +5055,10 @@ asm_instruction_copy_ctor(const struct prog_instruction *base, if (inst) { _mesa_init_instructions(& inst->Base, 1); inst->Base.Opcode = base->Opcode; + inst->Base.CondUpdate = base->CondUpdate; + inst->Base.CondDst = base->CondDst; inst->Base.SaturateMode = base->SaturateMode; + inst->Base.Precision = base->Precision; asm_instruction_set_operands(inst, dst, src0, src1, src2); } diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 4e2912d1c4..51cc9f7f11 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -1811,7 +1811,46 @@ optionalSign: '+' { $$ = FALSE; } | { $$ = FALSE; } ; -TEMP_statement: TEMP { $$ = $1; } varNameList +TEMP_statement: optVarSize TEMP { $$ = $2; } varNameList + ; + +optVarSize: IDENTIFIER + { + /* NV_fragment_program_option defines the size qualifiers in a + * fairly broken way. "SHORT" or "LONG" can optionally be used + * before TEMP or OUTPUT. However, neither is a reserved word! + * This means that we have to parse it as an identifier, then check + * to make sure it's one of the valid values. *sigh* + * + * In addition, the grammar in the extension spec does *not* allow + * the size specifier to be optional, but all known implementations + * do. + */ + if (!state->option.NV_fragment) { + yyerror(& @1, state, "unexpected IDENTIFIER"); + YYERROR; + } + + if (strcmp("SHORT", $1) == 0) { + } else if (strcmp("LONG", $1) == 0) { + } else { + char *const err_str = + make_error_string("invalid storage size specifier \"%s\"", + $1); + + yyerror(& @1, state, (err_str != NULL) + ? err_str : "invalid storage size specifier"); + + if (err_str != NULL) { + _mesa_free(err_str); + } + + YYERROR; + } + } + | + { + } ; ADDRESS_statement: ADDRESS { $$ = $1; } varNameList @@ -1831,15 +1870,15 @@ varNameList: varNameList ',' IDENTIFIER } ; -OUTPUT_statement: OUTPUT IDENTIFIER '=' resultBinding +OUTPUT_statement: optVarSize OUTPUT IDENTIFIER '=' resultBinding { struct asm_symbol *const s = - declare_variable(state, $2, at_output, & @2); + declare_variable(state, $3, at_output, & @3); if (s == NULL) { YYERROR; } else { - s->output_binding = $4; + s->output_binding = $5; } } ; @@ -2096,7 +2135,10 @@ asm_instruction_copy_ctor(const struct prog_instruction *base, if (inst) { _mesa_init_instructions(& inst->Base, 1); inst->Base.Opcode = base->Opcode; + inst->Base.CondUpdate = base->CondUpdate; + inst->Base.CondDst = base->CondDst; inst->Base.SaturateMode = base->SaturateMode; + inst->Base.Precision = base->Precision; asm_instruction_set_operands(inst, dst, src0, src1, src2); } diff --git a/src/mesa/shader/program_parse_extra.c b/src/mesa/shader/program_parse_extra.c index 79e80c54d7..cb7b7a5fb2 100644 --- a/src/mesa/shader/program_parse_extra.c +++ b/src/mesa/shader/program_parse_extra.c @@ -33,6 +33,67 @@ * \author Ian Romanick */ +int +_mesa_parse_instruction_suffix(const struct asm_parser_state *state, + const char *suffix, + struct prog_instruction *inst) +{ + inst->CondUpdate = 0; + inst->CondDst = 0; + inst->SaturateMode = SATURATE_OFF; + inst->Precision = FLOAT32; + + + /* The first possible suffix element is the precision specifier from + * NV_fragment_program_option. + */ + if (state->option.NV_fragment) { + switch (suffix[0]) { + case 'H': + inst->Precision = FLOAT16; + suffix++; + break; + case 'R': + inst->Precision = FLOAT32; + suffix++; + break; + case 'X': + inst->Precision = FIXED12; + suffix++; + break; + default: + break; + } + } + + /* The next possible suffix element is the condition code modifier selection + * from NV_fragment_program_option. + */ + if (state->option.NV_fragment) { + if (suffix[0] == 'C') { + inst->CondUpdate = 1; + suffix++; + } + } + + + /* The final possible suffix element is the saturation selector from + * ARB_fragment_program. + */ + if (state->mode == ARB_fragment) { + if (strcmp(suffix, "_SAT") == 0) { + inst->SaturateMode = SATURATE_ZERO_ONE; + suffix += 4; + } + } + + + /* It is an error for all of the suffix string not to be consumed. + */ + return suffix[0] == '\0'; +} + + int _mesa_ARBvp_parse_option(struct asm_parser_state *state, const char *option) { diff --git a/src/mesa/shader/program_parser.h b/src/mesa/shader/program_parser.h index be32a1bed1..497891f53d 100644 --- a/src/mesa/shader/program_parser.h +++ b/src/mesa/shader/program_parser.h @@ -264,4 +264,18 @@ extern int _mesa_ARBvp_parse_option(struct asm_parser_state *state, extern int _mesa_ARBfp_parse_option(struct asm_parser_state *state, const char *option); +/** + * Parses and processes instruction suffixes + * + * Instruction suffixes, such as \c _SAT, are processed. The relevant bits + * are set in \c inst. If suffixes are encountered that are either not known + * or not supported by the modes and options set in \c state, zero will be + * returned. + * + * \return + * Non-zero on success, zero on failure. + */ +extern int _mesa_parse_instruction_suffix(const struct asm_parser_state *state, + const char *suffix, struct prog_instruction *inst); + /*@}*/ -- cgit v1.2.3 From 0e7953366f2a8ab1b0e885d94f6635c7640b3cc7 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 10 Sep 2009 14:35:33 -0700 Subject: ARB prog parser: Differentiate between used and unused names in the lexer The lexer will return IDENTIFIER only when the name does not have an associated symbol. Otherwise USED_IDENTIFIER is returned. --- src/mesa/shader/lex.yy.c | 366 +++++----- src/mesa/shader/program_lexer.l | 20 +- src/mesa/shader/program_parse.tab.c | 1259 ++++++++++++++++++----------------- src/mesa/shader/program_parse.tab.h | 17 +- src/mesa/shader/program_parse.y | 23 +- 5 files changed, 851 insertions(+), 834 deletions(-) diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c index d71a13c3bd..959eb854d6 100644 --- a/src/mesa/shader/lex.yy.c +++ b/src/mesa/shader/lex.yy.c @@ -1052,8 +1052,7 @@ static yyconst flex_int16_t yy_chk[1352] = if (condition) { \ return token; \ } else { \ - yylval->string = strdup(yytext); \ - return IDENTIFIER; \ + return handle_ident(yyextra, yytext, yylval); \ } \ } while (0) @@ -1077,8 +1076,7 @@ static yyconst flex_int16_t yy_chk[1352] = yylval->temp_inst.Opcode = OPCODE_ ## opcode; \ return token; \ } else { \ - yylval->string = strdup(yytext); \ - return IDENTIFIER; \ + return handle_ident(yyextra, yytext, yylval); \ } \ } while (0) @@ -1127,6 +1125,15 @@ swiz_from_char(char c) return 0; } +static int +handle_ident(struct asm_parser_state *state, const char *text, YYSTYPE *lval) +{ + lval->string = strdup(text); + + return (_mesa_symbol_table_find_symbol(state->st, 0, text) == NULL) + ? IDENTIFIER : USED_IDENTIFIER; +} + #define YY_USER_ACTION \ do { \ yylloc->first_column = yylloc->last_column; \ @@ -1140,7 +1147,7 @@ swiz_from_char(char c) } while(0); #define YY_EXTRA_TYPE struct asm_parser_state * -#line 1144 "lex.yy.c" +#line 1151 "lex.yy.c" #define INITIAL 0 @@ -1386,10 +1393,10 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 143 "program_lexer.l" +#line 150 "program_lexer.l" -#line 1393 "lex.yy.c" +#line 1400 "lex.yy.c" yylval = yylval_param; @@ -1478,17 +1485,17 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 145 "program_lexer.l" +#line 152 "program_lexer.l" { return ARBvp_10; } YY_BREAK case 2: YY_RULE_SETUP -#line 146 "program_lexer.l" +#line 153 "program_lexer.l" { return ARBfp_10; } YY_BREAK case 3: YY_RULE_SETUP -#line 147 "program_lexer.l" +#line 154 "program_lexer.l" { yylval->integer = at_address; return_token_or_IDENTIFIER(require_ARB_vp, ADDRESS); @@ -1496,685 +1503,682 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 151 "program_lexer.l" +#line 158 "program_lexer.l" { return ALIAS; } YY_BREAK case 5: YY_RULE_SETUP -#line 152 "program_lexer.l" +#line 159 "program_lexer.l" { return ATTRIB; } YY_BREAK case 6: YY_RULE_SETUP -#line 153 "program_lexer.l" +#line 160 "program_lexer.l" { return END; } YY_BREAK case 7: YY_RULE_SETUP -#line 154 "program_lexer.l" +#line 161 "program_lexer.l" { return OPTION; } YY_BREAK case 8: YY_RULE_SETUP -#line 155 "program_lexer.l" +#line 162 "program_lexer.l" { return OUTPUT; } YY_BREAK case 9: YY_RULE_SETUP -#line 156 "program_lexer.l" +#line 163 "program_lexer.l" { return PARAM; } YY_BREAK case 10: YY_RULE_SETUP -#line 157 "program_lexer.l" +#line 164 "program_lexer.l" { yylval->integer = at_temp; return TEMP; } YY_BREAK case 11: YY_RULE_SETUP -#line 159 "program_lexer.l" +#line 166 "program_lexer.l" { return_opcode( 1, VECTOR_OP, ABS, 3); } YY_BREAK case 12: YY_RULE_SETUP -#line 160 "program_lexer.l" +#line 167 "program_lexer.l" { return_opcode( 1, BIN_OP, ADD, 3); } YY_BREAK case 13: YY_RULE_SETUP -#line 161 "program_lexer.l" +#line 168 "program_lexer.l" { return_opcode(require_ARB_vp, ARL, ARL, 3); } YY_BREAK case 14: YY_RULE_SETUP -#line 163 "program_lexer.l" +#line 170 "program_lexer.l" { return_opcode(require_ARB_fp, TRI_OP, CMP, 3); } YY_BREAK case 15: YY_RULE_SETUP -#line 164 "program_lexer.l" +#line 171 "program_lexer.l" { return_opcode(require_ARB_fp, SCALAR_OP, COS, 3); } YY_BREAK case 16: YY_RULE_SETUP -#line 166 "program_lexer.l" +#line 173 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, DDX, 3); } YY_BREAK case 17: YY_RULE_SETUP -#line 167 "program_lexer.l" +#line 174 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, DDY, 3); } YY_BREAK case 18: YY_RULE_SETUP -#line 168 "program_lexer.l" +#line 175 "program_lexer.l" { return_opcode( 1, BIN_OP, DP3, 3); } YY_BREAK case 19: YY_RULE_SETUP -#line 169 "program_lexer.l" +#line 176 "program_lexer.l" { return_opcode( 1, BIN_OP, DP4, 3); } YY_BREAK case 20: YY_RULE_SETUP -#line 170 "program_lexer.l" +#line 177 "program_lexer.l" { return_opcode( 1, BIN_OP, DPH, 3); } YY_BREAK case 21: YY_RULE_SETUP -#line 171 "program_lexer.l" +#line 178 "program_lexer.l" { return_opcode( 1, BIN_OP, DST, 3); } YY_BREAK case 22: YY_RULE_SETUP -#line 173 "program_lexer.l" +#line 180 "program_lexer.l" { return_opcode( 1, SCALAR_OP, EX2, 3); } YY_BREAK case 23: YY_RULE_SETUP -#line 174 "program_lexer.l" +#line 181 "program_lexer.l" { return_opcode(require_ARB_vp, SCALAR_OP, EXP, 3); } YY_BREAK case 24: YY_RULE_SETUP -#line 176 "program_lexer.l" +#line 183 "program_lexer.l" { return_opcode( 1, VECTOR_OP, FLR, 3); } YY_BREAK case 25: YY_RULE_SETUP -#line 177 "program_lexer.l" +#line 184 "program_lexer.l" { return_opcode( 1, VECTOR_OP, FRC, 3); } YY_BREAK case 26: YY_RULE_SETUP -#line 179 "program_lexer.l" +#line 186 "program_lexer.l" { return_opcode(require_ARB_fp, KIL, KIL, 3); } YY_BREAK case 27: YY_RULE_SETUP -#line 181 "program_lexer.l" +#line 188 "program_lexer.l" { return_opcode( 1, VECTOR_OP, LIT, 3); } YY_BREAK case 28: YY_RULE_SETUP -#line 182 "program_lexer.l" +#line 189 "program_lexer.l" { return_opcode( 1, SCALAR_OP, LG2, 3); } YY_BREAK case 29: YY_RULE_SETUP -#line 183 "program_lexer.l" +#line 190 "program_lexer.l" { return_opcode(require_ARB_vp, SCALAR_OP, LOG, 3); } YY_BREAK case 30: YY_RULE_SETUP -#line 184 "program_lexer.l" +#line 191 "program_lexer.l" { return_opcode(require_ARB_fp, TRI_OP, LRP, 3); } YY_BREAK case 31: YY_RULE_SETUP -#line 186 "program_lexer.l" +#line 193 "program_lexer.l" { return_opcode( 1, TRI_OP, MAD, 3); } YY_BREAK case 32: YY_RULE_SETUP -#line 187 "program_lexer.l" +#line 194 "program_lexer.l" { return_opcode( 1, BIN_OP, MAX, 3); } YY_BREAK case 33: YY_RULE_SETUP -#line 188 "program_lexer.l" +#line 195 "program_lexer.l" { return_opcode( 1, BIN_OP, MIN, 3); } YY_BREAK case 34: YY_RULE_SETUP -#line 189 "program_lexer.l" +#line 196 "program_lexer.l" { return_opcode( 1, VECTOR_OP, MOV, 3); } YY_BREAK case 35: YY_RULE_SETUP -#line 190 "program_lexer.l" +#line 197 "program_lexer.l" { return_opcode( 1, BIN_OP, MUL, 3); } YY_BREAK case 36: YY_RULE_SETUP -#line 192 "program_lexer.l" +#line 199 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, PK2H, 4); } YY_BREAK case 37: YY_RULE_SETUP -#line 193 "program_lexer.l" +#line 200 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, PK2US, 5); } YY_BREAK case 38: YY_RULE_SETUP -#line 194 "program_lexer.l" +#line 201 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, PK4B, 4); } YY_BREAK case 39: YY_RULE_SETUP -#line 195 "program_lexer.l" +#line 202 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, PK4UB, 5); } YY_BREAK case 40: YY_RULE_SETUP -#line 196 "program_lexer.l" +#line 203 "program_lexer.l" { return_opcode( 1, BINSC_OP, POW, 3); } YY_BREAK case 41: YY_RULE_SETUP -#line 198 "program_lexer.l" +#line 205 "program_lexer.l" { return_opcode( 1, SCALAR_OP, RCP, 3); } YY_BREAK case 42: YY_RULE_SETUP -#line 199 "program_lexer.l" +#line 206 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, RFL, 3); } YY_BREAK case 43: YY_RULE_SETUP -#line 200 "program_lexer.l" +#line 207 "program_lexer.l" { return_opcode( 1, SCALAR_OP, RSQ, 3); } YY_BREAK case 44: YY_RULE_SETUP -#line 202 "program_lexer.l" +#line 209 "program_lexer.l" { return_opcode(require_ARB_fp, SCALAR_OP, SCS, 3); } YY_BREAK case 45: YY_RULE_SETUP -#line 203 "program_lexer.l" +#line 210 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SEQ, 3); } YY_BREAK case 46: YY_RULE_SETUP -#line 204 "program_lexer.l" +#line 211 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SFL, 3); } YY_BREAK case 47: YY_RULE_SETUP -#line 205 "program_lexer.l" +#line 212 "program_lexer.l" { return_opcode( 1, BIN_OP, SGE, 3); } YY_BREAK case 48: YY_RULE_SETUP -#line 206 "program_lexer.l" +#line 213 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SGT, 3); } YY_BREAK case 49: YY_RULE_SETUP -#line 207 "program_lexer.l" +#line 214 "program_lexer.l" { return_opcode(require_ARB_fp, SCALAR_OP, SIN, 3); } YY_BREAK case 50: YY_RULE_SETUP -#line 208 "program_lexer.l" +#line 215 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SLE, 3); } YY_BREAK case 51: YY_RULE_SETUP -#line 209 "program_lexer.l" +#line 216 "program_lexer.l" { return_opcode( 1, BIN_OP, SLT, 3); } YY_BREAK case 52: YY_RULE_SETUP -#line 210 "program_lexer.l" +#line 217 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SNE, 3); } YY_BREAK case 53: YY_RULE_SETUP -#line 211 "program_lexer.l" +#line 218 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, STR, 3); } YY_BREAK case 54: YY_RULE_SETUP -#line 212 "program_lexer.l" +#line 219 "program_lexer.l" { return_opcode( 1, BIN_OP, SUB, 3); } YY_BREAK case 55: YY_RULE_SETUP -#line 213 "program_lexer.l" +#line 220 "program_lexer.l" { return_opcode( 1, SWZ, SWZ, 3); } YY_BREAK case 56: YY_RULE_SETUP -#line 215 "program_lexer.l" +#line 222 "program_lexer.l" { return_opcode(require_ARB_fp, SAMPLE_OP, TEX, 3); } YY_BREAK case 57: YY_RULE_SETUP -#line 216 "program_lexer.l" +#line 223 "program_lexer.l" { return_opcode(require_ARB_fp, SAMPLE_OP, TXB, 3); } YY_BREAK case 58: YY_RULE_SETUP -#line 217 "program_lexer.l" +#line 224 "program_lexer.l" { return_opcode(require_NV_fp, TXD_OP, TXD, 3); } YY_BREAK case 59: YY_RULE_SETUP -#line 218 "program_lexer.l" +#line 225 "program_lexer.l" { return_opcode(require_ARB_fp, SAMPLE_OP, TXP, 3); } YY_BREAK case 60: YY_RULE_SETUP -#line 220 "program_lexer.l" +#line 227 "program_lexer.l" { return_opcode(require_NV_fp, SCALAR_OP, UP2H, 4); } YY_BREAK case 61: YY_RULE_SETUP -#line 221 "program_lexer.l" +#line 228 "program_lexer.l" { return_opcode(require_NV_fp, SCALAR_OP, UP2US, 5); } YY_BREAK case 62: YY_RULE_SETUP -#line 223 "program_lexer.l" +#line 230 "program_lexer.l" { return_opcode(require_NV_fp, TRI_OP, X2D, 3); } YY_BREAK case 63: YY_RULE_SETUP -#line 224 "program_lexer.l" +#line 231 "program_lexer.l" { return_opcode( 1, BIN_OP, XPD, 3); } YY_BREAK case 64: YY_RULE_SETUP -#line 226 "program_lexer.l" +#line 233 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } YY_BREAK case 65: YY_RULE_SETUP -#line 227 "program_lexer.l" +#line 234 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } YY_BREAK case 66: YY_RULE_SETUP -#line 228 "program_lexer.l" +#line 235 "program_lexer.l" { return PROGRAM; } YY_BREAK case 67: YY_RULE_SETUP -#line 229 "program_lexer.l" +#line 236 "program_lexer.l" { return STATE; } YY_BREAK case 68: YY_RULE_SETUP -#line 230 "program_lexer.l" +#line 237 "program_lexer.l" { return RESULT; } YY_BREAK case 69: YY_RULE_SETUP -#line 232 "program_lexer.l" +#line 239 "program_lexer.l" { return AMBIENT; } YY_BREAK case 70: YY_RULE_SETUP -#line 233 "program_lexer.l" +#line 240 "program_lexer.l" { return ATTENUATION; } YY_BREAK case 71: YY_RULE_SETUP -#line 234 "program_lexer.l" +#line 241 "program_lexer.l" { return BACK; } YY_BREAK case 72: YY_RULE_SETUP -#line 235 "program_lexer.l" +#line 242 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, CLIP); } YY_BREAK case 73: YY_RULE_SETUP -#line 236 "program_lexer.l" +#line 243 "program_lexer.l" { return COLOR; } YY_BREAK case 74: YY_RULE_SETUP -#line 237 "program_lexer.l" +#line 244 "program_lexer.l" { return_token_or_DOT(require_ARB_fp, DEPTH); } YY_BREAK case 75: YY_RULE_SETUP -#line 238 "program_lexer.l" +#line 245 "program_lexer.l" { return DIFFUSE; } YY_BREAK case 76: YY_RULE_SETUP -#line 239 "program_lexer.l" +#line 246 "program_lexer.l" { return DIRECTION; } YY_BREAK case 77: YY_RULE_SETUP -#line 240 "program_lexer.l" +#line 247 "program_lexer.l" { return EMISSION; } YY_BREAK case 78: YY_RULE_SETUP -#line 241 "program_lexer.l" +#line 248 "program_lexer.l" { return ENV; } YY_BREAK case 79: YY_RULE_SETUP -#line 242 "program_lexer.l" +#line 249 "program_lexer.l" { return EYE; } YY_BREAK case 80: YY_RULE_SETUP -#line 243 "program_lexer.l" +#line 250 "program_lexer.l" { return FOGCOORD; } YY_BREAK case 81: YY_RULE_SETUP -#line 244 "program_lexer.l" +#line 251 "program_lexer.l" { return FOG; } YY_BREAK case 82: YY_RULE_SETUP -#line 245 "program_lexer.l" +#line 252 "program_lexer.l" { return FRONT; } YY_BREAK case 83: YY_RULE_SETUP -#line 246 "program_lexer.l" +#line 253 "program_lexer.l" { return HALF; } YY_BREAK case 84: YY_RULE_SETUP -#line 247 "program_lexer.l" +#line 254 "program_lexer.l" { return INVERSE; } YY_BREAK case 85: YY_RULE_SETUP -#line 248 "program_lexer.l" +#line 255 "program_lexer.l" { return INVTRANS; } YY_BREAK case 86: YY_RULE_SETUP -#line 249 "program_lexer.l" +#line 256 "program_lexer.l" { return LIGHT; } YY_BREAK case 87: YY_RULE_SETUP -#line 250 "program_lexer.l" +#line 257 "program_lexer.l" { return LIGHTMODEL; } YY_BREAK case 88: YY_RULE_SETUP -#line 251 "program_lexer.l" +#line 258 "program_lexer.l" { return LIGHTPROD; } YY_BREAK case 89: YY_RULE_SETUP -#line 252 "program_lexer.l" +#line 259 "program_lexer.l" { return LOCAL; } YY_BREAK case 90: YY_RULE_SETUP -#line 253 "program_lexer.l" +#line 260 "program_lexer.l" { return MATERIAL; } YY_BREAK case 91: YY_RULE_SETUP -#line 254 "program_lexer.l" +#line 261 "program_lexer.l" { return MAT_PROGRAM; } YY_BREAK case 92: YY_RULE_SETUP -#line 255 "program_lexer.l" +#line 262 "program_lexer.l" { return MATRIX; } YY_BREAK case 93: YY_RULE_SETUP -#line 256 "program_lexer.l" +#line 263 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, MATRIXINDEX); } YY_BREAK case 94: YY_RULE_SETUP -#line 257 "program_lexer.l" +#line 264 "program_lexer.l" { return MODELVIEW; } YY_BREAK case 95: YY_RULE_SETUP -#line 258 "program_lexer.l" +#line 265 "program_lexer.l" { return MVP; } YY_BREAK case 96: YY_RULE_SETUP -#line 259 "program_lexer.l" +#line 266 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, NORMAL); } YY_BREAK case 97: YY_RULE_SETUP -#line 260 "program_lexer.l" +#line 267 "program_lexer.l" { return OBJECT; } YY_BREAK case 98: YY_RULE_SETUP -#line 261 "program_lexer.l" +#line 268 "program_lexer.l" { return PALETTE; } YY_BREAK case 99: YY_RULE_SETUP -#line 262 "program_lexer.l" +#line 269 "program_lexer.l" { return PARAMS; } YY_BREAK case 100: YY_RULE_SETUP -#line 263 "program_lexer.l" +#line 270 "program_lexer.l" { return PLANE; } YY_BREAK case 101: YY_RULE_SETUP -#line 264 "program_lexer.l" +#line 271 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, POINT); } YY_BREAK case 102: YY_RULE_SETUP -#line 265 "program_lexer.l" +#line 272 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, POINTSIZE); } YY_BREAK case 103: YY_RULE_SETUP -#line 266 "program_lexer.l" +#line 273 "program_lexer.l" { return POSITION; } YY_BREAK case 104: YY_RULE_SETUP -#line 267 "program_lexer.l" +#line 274 "program_lexer.l" { return PRIMARY; } YY_BREAK case 105: YY_RULE_SETUP -#line 268 "program_lexer.l" +#line 275 "program_lexer.l" { return PROJECTION; } YY_BREAK case 106: YY_RULE_SETUP -#line 269 "program_lexer.l" +#line 276 "program_lexer.l" { return_token_or_DOT(require_ARB_fp, RANGE); } YY_BREAK case 107: YY_RULE_SETUP -#line 270 "program_lexer.l" +#line 277 "program_lexer.l" { return ROW; } YY_BREAK case 108: YY_RULE_SETUP -#line 271 "program_lexer.l" +#line 278 "program_lexer.l" { return SCENECOLOR; } YY_BREAK case 109: YY_RULE_SETUP -#line 272 "program_lexer.l" +#line 279 "program_lexer.l" { return SECONDARY; } YY_BREAK case 110: YY_RULE_SETUP -#line 273 "program_lexer.l" +#line 280 "program_lexer.l" { return SHININESS; } YY_BREAK case 111: YY_RULE_SETUP -#line 274 "program_lexer.l" +#line 281 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, SIZE); } YY_BREAK case 112: YY_RULE_SETUP -#line 275 "program_lexer.l" +#line 282 "program_lexer.l" { return SPECULAR; } YY_BREAK case 113: YY_RULE_SETUP -#line 276 "program_lexer.l" +#line 283 "program_lexer.l" { return SPOT; } YY_BREAK case 114: YY_RULE_SETUP -#line 277 "program_lexer.l" +#line 284 "program_lexer.l" { return TEXCOORD; } YY_BREAK case 115: YY_RULE_SETUP -#line 278 "program_lexer.l" +#line 285 "program_lexer.l" { return_token_or_DOT(require_ARB_fp, TEXENV); } YY_BREAK case 116: YY_RULE_SETUP -#line 279 "program_lexer.l" +#line 286 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN); } YY_BREAK case 117: YY_RULE_SETUP -#line 280 "program_lexer.l" +#line 287 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_Q); } YY_BREAK case 118: YY_RULE_SETUP -#line 281 "program_lexer.l" +#line 288 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_S); } YY_BREAK case 119: YY_RULE_SETUP -#line 282 "program_lexer.l" +#line 289 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_T); } YY_BREAK case 120: YY_RULE_SETUP -#line 283 "program_lexer.l" +#line 290 "program_lexer.l" { return TEXTURE; } YY_BREAK case 121: YY_RULE_SETUP -#line 284 "program_lexer.l" +#line 291 "program_lexer.l" { return TRANSPOSE; } YY_BREAK case 122: YY_RULE_SETUP -#line 285 "program_lexer.l" +#line 292 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, VTXATTRIB); } YY_BREAK case 123: YY_RULE_SETUP -#line 286 "program_lexer.l" +#line 293 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, WEIGHT); } YY_BREAK case 124: YY_RULE_SETUP -#line 288 "program_lexer.l" +#line 295 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); } YY_BREAK case 125: YY_RULE_SETUP -#line 289 "program_lexer.l" +#line 296 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); } YY_BREAK case 126: YY_RULE_SETUP -#line 290 "program_lexer.l" +#line 297 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); } YY_BREAK case 127: YY_RULE_SETUP -#line 291 "program_lexer.l" +#line 298 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); } YY_BREAK case 128: YY_RULE_SETUP -#line 292 "program_lexer.l" +#line 299 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); } YY_BREAK case 129: YY_RULE_SETUP -#line 293 "program_lexer.l" +#line 300 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); } YY_BREAK case 130: YY_RULE_SETUP -#line 294 "program_lexer.l" +#line 301 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); } YY_BREAK case 131: YY_RULE_SETUP -#line 295 "program_lexer.l" +#line 302 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); } YY_BREAK case 132: YY_RULE_SETUP -#line 296 "program_lexer.l" +#line 303 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); } YY_BREAK case 133: YY_RULE_SETUP -#line 297 "program_lexer.l" +#line 304 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); } YY_BREAK case 134: YY_RULE_SETUP -#line 298 "program_lexer.l" +#line 305 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); } YY_BREAK case 135: YY_RULE_SETUP -#line 299 "program_lexer.l" +#line 306 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); } YY_BREAK case 136: YY_RULE_SETUP -#line 300 "program_lexer.l" +#line 307 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); } YY_BREAK case 137: YY_RULE_SETUP -#line 302 "program_lexer.l" -{ - yylval->string = strdup(yytext); - return IDENTIFIER; -} +#line 309 "program_lexer.l" +{ return handle_ident(yyextra, yytext, yylval); } YY_BREAK case 138: YY_RULE_SETUP -#line 307 "program_lexer.l" +#line 311 "program_lexer.l" { return DOT_DOT; } YY_BREAK case 139: YY_RULE_SETUP -#line 309 "program_lexer.l" +#line 313 "program_lexer.l" { yylval->integer = strtol(yytext, NULL, 10); return INTEGER; @@ -2182,7 +2186,7 @@ YY_RULE_SETUP YY_BREAK case 140: YY_RULE_SETUP -#line 313 "program_lexer.l" +#line 317 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; @@ -2194,7 +2198,7 @@ case 141: yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 317 "program_lexer.l" +#line 321 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; @@ -2202,7 +2206,7 @@ YY_RULE_SETUP YY_BREAK case 142: YY_RULE_SETUP -#line 321 "program_lexer.l" +#line 325 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; @@ -2210,7 +2214,7 @@ YY_RULE_SETUP YY_BREAK case 143: YY_RULE_SETUP -#line 325 "program_lexer.l" +#line 329 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; @@ -2218,7 +2222,7 @@ YY_RULE_SETUP YY_BREAK case 144: YY_RULE_SETUP -#line 330 "program_lexer.l" +#line 334 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; @@ -2227,7 +2231,7 @@ YY_RULE_SETUP YY_BREAK case 145: YY_RULE_SETUP -#line 336 "program_lexer.l" +#line 340 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2237,7 +2241,7 @@ YY_RULE_SETUP YY_BREAK case 146: YY_RULE_SETUP -#line 342 "program_lexer.l" +#line 346 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; @@ -2246,7 +2250,7 @@ YY_RULE_SETUP YY_BREAK case 147: YY_RULE_SETUP -#line 347 "program_lexer.l" +#line 351 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; @@ -2255,7 +2259,7 @@ YY_RULE_SETUP YY_BREAK case 148: YY_RULE_SETUP -#line 353 "program_lexer.l" +#line 357 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2265,7 +2269,7 @@ YY_RULE_SETUP YY_BREAK case 149: YY_RULE_SETUP -#line 359 "program_lexer.l" +#line 363 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2275,7 +2279,7 @@ YY_RULE_SETUP YY_BREAK case 150: YY_RULE_SETUP -#line 365 "program_lexer.l" +#line 369 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; @@ -2284,7 +2288,7 @@ YY_RULE_SETUP YY_BREAK case 151: YY_RULE_SETUP -#line 371 "program_lexer.l" +#line 375 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2294,7 +2298,7 @@ YY_RULE_SETUP YY_BREAK case 152: YY_RULE_SETUP -#line 378 "program_lexer.l" +#line 382 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2306,7 +2310,7 @@ YY_RULE_SETUP YY_BREAK case 153: YY_RULE_SETUP -#line 387 "program_lexer.l" +#line 391 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; @@ -2315,7 +2319,7 @@ YY_RULE_SETUP YY_BREAK case 154: YY_RULE_SETUP -#line 393 "program_lexer.l" +#line 397 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2325,7 +2329,7 @@ YY_RULE_SETUP YY_BREAK case 155: YY_RULE_SETUP -#line 399 "program_lexer.l" +#line 403 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; @@ -2334,7 +2338,7 @@ YY_RULE_SETUP YY_BREAK case 156: YY_RULE_SETUP -#line 404 "program_lexer.l" +#line 408 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; @@ -2343,7 +2347,7 @@ YY_RULE_SETUP YY_BREAK case 157: YY_RULE_SETUP -#line 410 "program_lexer.l" +#line 414 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2353,7 +2357,7 @@ YY_RULE_SETUP YY_BREAK case 158: YY_RULE_SETUP -#line 416 "program_lexer.l" +#line 420 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2363,7 +2367,7 @@ YY_RULE_SETUP YY_BREAK case 159: YY_RULE_SETUP -#line 422 "program_lexer.l" +#line 426 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; @@ -2372,7 +2376,7 @@ YY_RULE_SETUP YY_BREAK case 160: YY_RULE_SETUP -#line 428 "program_lexer.l" +#line 432 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2382,7 +2386,7 @@ YY_RULE_SETUP YY_BREAK case 161: YY_RULE_SETUP -#line 436 "program_lexer.l" +#line 440 "program_lexer.l" { if (require_ARB_vp) { return TEXGEN_R; @@ -2396,7 +2400,7 @@ YY_RULE_SETUP YY_BREAK case 162: YY_RULE_SETUP -#line 447 "program_lexer.l" +#line 451 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2408,13 +2412,13 @@ YY_RULE_SETUP YY_BREAK case 163: YY_RULE_SETUP -#line 456 "program_lexer.l" +#line 460 "program_lexer.l" { return DOT; } YY_BREAK case 164: /* rule 164 can match eol */ YY_RULE_SETUP -#line 458 "program_lexer.l" +#line 462 "program_lexer.l" { yylloc->first_line++; yylloc->first_column = 1; @@ -2425,7 +2429,7 @@ YY_RULE_SETUP YY_BREAK case 165: YY_RULE_SETUP -#line 465 "program_lexer.l" +#line 469 "program_lexer.l" /* eat whitespace */ ; YY_BREAK case 166: @@ -2433,20 +2437,20 @@ case 166: yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 466 "program_lexer.l" +#line 470 "program_lexer.l" /* eat comments */ ; YY_BREAK case 167: YY_RULE_SETUP -#line 467 "program_lexer.l" +#line 471 "program_lexer.l" { return yytext[0]; } YY_BREAK case 168: YY_RULE_SETUP -#line 468 "program_lexer.l" +#line 472 "program_lexer.l" ECHO; YY_BREAK -#line 2450 "lex.yy.c" +#line 2454 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -3621,7 +3625,7 @@ void yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 468 "program_lexer.l" +#line 472 "program_lexer.l" diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l index d7493f42fa..9e68c34ac0 100644 --- a/src/mesa/shader/program_lexer.l +++ b/src/mesa/shader/program_lexer.l @@ -39,8 +39,7 @@ if (condition) { \ return token; \ } else { \ - yylval->string = strdup(yytext); \ - return IDENTIFIER; \ + return handle_ident(yyextra, yytext, yylval); \ } \ } while (0) @@ -64,8 +63,7 @@ yylval->temp_inst.Opcode = OPCODE_ ## opcode; \ return token; \ } else { \ - yylval->string = strdup(yytext); \ - return IDENTIFIER; \ + return handle_ident(yyextra, yytext, yylval); \ } \ } while (0) @@ -114,6 +112,15 @@ swiz_from_char(char c) return 0; } +static int +handle_ident(struct asm_parser_state *state, const char *text, YYSTYPE *lval) +{ + lval->string = strdup(text); + + return (_mesa_symbol_table_find_symbol(state->st, 0, text) == NULL) + ? IDENTIFIER : USED_IDENTIFIER; +} + #define YY_USER_ACTION \ do { \ yylloc->first_column = yylloc->last_column; \ @@ -299,10 +306,7 @@ ARRAY2D { return_token_or_IDENTIFIER(require_ARB_fp && require ARRAYSHADOW1D { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); } ARRAYSHADOW2D { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); } -[_a-zA-Z$][_a-zA-Z0-9$]* { - yylval->string = strdup(yytext); - return IDENTIFIER; -} +[_a-zA-Z$][_a-zA-Z0-9$]* { return handle_ident(yyextra, yytext, yylval); } ".." { return DOT_DOT; } diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index e741e9a13b..d37b20ba42 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -303,13 +303,14 @@ static struct asm_instruction *asm_instruction_copy_ctor( VTXATTRIB = 352, WEIGHT = 353, IDENTIFIER = 354, - MASK4 = 355, - MASK3 = 356, - MASK2 = 357, - MASK1 = 358, - SWIZZLE = 359, - DOT_DOT = 360, - DOT = 361 + USED_IDENTIFIER = 355, + MASK4 = 356, + MASK3 = 357, + MASK2 = 358, + MASK1 = 359, + SWIZZLE = 360, + DOT_DOT = 361, + DOT = 362 }; #endif @@ -349,7 +350,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 353 "program_parse.tab.c" +#line 354 "program_parse.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -373,14 +374,14 @@ typedef struct YYLTYPE /* Copy the second part of user declarations. */ /* Line 264 of yacc.c */ -#line 258 "program_parse.y" +#line 259 "program_parse.y" extern int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, void *yyscanner); /* Line 264 of yacc.c */ -#line 384 "program_parse.tab.c" +#line 385 "program_parse.tab.c" #ifdef short # undef short @@ -597,20 +598,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 383 +#define YYLAST 393 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 117 +#define YYNTOKENS 118 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 137 +#define YYNNTS 138 /* YYNRULES -- Number of rules. */ -#define YYNRULES 272 +#define YYNRULES 274 /* YYNRULES -- Number of states. */ -#define YYNSTATES 458 +#define YYNSTATES 460 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 361 +#define YYMAXUTOK 362 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -622,15 +623,15 @@ static const yytype_uint8 yytranslate[] = 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, 112, 108, 113, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 107, - 2, 114, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 113, 109, 114, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 108, + 2, 115, 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, 110, 2, 111, 2, 2, 2, 2, 2, 2, + 2, 111, 2, 112, 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, 115, 109, 116, 2, 2, 2, 2, + 2, 2, 2, 116, 110, 117, 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, 2, @@ -654,7 +655,7 @@ static const yytype_uint8 yytranslate[] = 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106 + 105, 106, 107 }; #if YYDEBUG @@ -689,123 +690,123 @@ static const yytype_uint16 yyprhs[] = 686, 690, 694, 696, 702, 705, 708, 711, 714, 718, 721, 725, 726, 728, 730, 731, 733, 735, 736, 738, 740, 741, 743, 745, 746, 750, 751, 755, 756, 760, - 762, 764, 766 + 762, 764, 766, 771, 773 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 118, 0, -1, 119, 120, 122, 12, -1, 3, -1, - 4, -1, 120, 121, -1, -1, 8, 99, 107, -1, - 122, 123, -1, -1, 124, 107, -1, 162, 107, -1, - 125, -1, 126, -1, 127, -1, 128, -1, 129, -1, - 130, -1, 131, -1, 132, -1, 138, -1, 133, -1, - 134, -1, 135, -1, 19, 143, 108, 139, -1, 18, - 142, 108, 141, -1, 16, 142, 108, 139, -1, 14, - 142, 108, 139, 108, 139, -1, 13, 142, 108, 141, - 108, 141, -1, 17, 142, 108, 141, 108, 141, 108, - 141, -1, 15, 142, 108, 141, 108, 136, 108, 137, - -1, 20, 141, -1, 22, 142, 108, 141, 108, 141, - 108, 141, 108, 136, 108, 137, -1, 83, 248, -1, + 119, 0, -1, 120, 121, 123, 12, -1, 3, -1, + 4, -1, 121, 122, -1, -1, 8, 255, 108, -1, + 123, 124, -1, -1, 125, 108, -1, 163, 108, -1, + 126, -1, 127, -1, 128, -1, 129, -1, 130, -1, + 131, -1, 132, -1, 133, -1, 139, -1, 134, -1, + 135, -1, 136, -1, 19, 144, 109, 140, -1, 18, + 143, 109, 142, -1, 16, 143, 109, 140, -1, 14, + 143, 109, 140, 109, 140, -1, 13, 143, 109, 142, + 109, 142, -1, 17, 143, 109, 142, 109, 142, 109, + 142, -1, 15, 143, 109, 142, 109, 137, 109, 138, + -1, 20, 142, -1, 22, 143, 109, 142, 109, 142, + 109, 142, 109, 137, 109, 138, -1, 83, 249, -1, 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, 93, -1, - 94, -1, 95, -1, 21, 142, 108, 147, 108, 144, - -1, 233, 140, -1, 233, 109, 140, 109, -1, 147, - 159, -1, 230, -1, 233, 147, 160, -1, 233, 109, - 147, 160, 109, -1, 148, 161, -1, 156, 158, -1, - 145, 108, 145, 108, 145, 108, 145, -1, 233, 146, - -1, 23, -1, 99, -1, 99, -1, 164, -1, 149, - 110, 150, 111, -1, 178, -1, 241, -1, 99, -1, - 99, -1, 151, -1, 152, -1, 23, -1, 156, 157, - 153, -1, -1, 112, 154, -1, 113, 155, -1, 23, - -1, 23, -1, 99, -1, 103, -1, 103, -1, 103, - -1, 103, -1, 100, -1, 104, -1, -1, 100, -1, - 101, -1, 102, -1, 103, -1, -1, 163, -1, 170, - -1, 234, -1, 237, -1, 240, -1, 253, -1, 7, - 99, 114, 164, -1, 96, 165, -1, 38, 169, -1, - 60, -1, 98, 167, -1, 53, -1, 29, 246, -1, - 37, -1, 74, 247, -1, 50, 110, 168, 111, -1, - 97, 110, 166, 111, -1, 23, -1, -1, 110, 168, - 111, -1, 23, -1, 60, -1, 29, 246, -1, 37, - -1, 74, 247, -1, 171, -1, 172, -1, 10, 99, - 174, -1, 10, 99, 110, 173, 111, 175, -1, -1, - 23, -1, 114, 177, -1, 114, 115, 176, 116, -1, - 179, -1, 176, 108, 179, -1, 181, -1, 217, -1, - 227, -1, 181, -1, 217, -1, 228, -1, 180, -1, - 218, -1, 227, -1, 181, -1, 73, 205, -1, 73, - 182, -1, 73, 184, -1, 73, 187, -1, 73, 189, - -1, 73, 195, -1, 73, 191, -1, 73, 198, -1, - 73, 200, -1, 73, 202, -1, 73, 204, -1, 73, - 216, -1, 47, 245, 183, -1, 193, -1, 33, -1, - 69, -1, 43, 110, 194, 111, 185, -1, 193, -1, - 60, -1, 26, -1, 72, 186, -1, 40, -1, 32, - -1, 44, 188, -1, 25, -1, 245, 67, -1, 45, - 110, 194, 111, 245, 190, -1, 193, -1, 75, 249, - 192, -1, 29, -1, 25, -1, 31, -1, 71, -1, - 23, -1, 76, 247, 196, 197, -1, 35, -1, 54, + 94, -1, 95, -1, 21, 143, 109, 148, 109, 145, + -1, 234, 141, -1, 234, 110, 141, 110, -1, 148, + 160, -1, 231, -1, 234, 148, 161, -1, 234, 110, + 148, 161, 110, -1, 149, 162, -1, 157, 159, -1, + 146, 109, 146, 109, 146, 109, 146, -1, 234, 147, + -1, 23, -1, 255, -1, 100, -1, 165, -1, 150, + 111, 151, 112, -1, 179, -1, 242, -1, 100, -1, + 100, -1, 152, -1, 153, -1, 23, -1, 157, 158, + 154, -1, -1, 113, 155, -1, 114, 156, -1, 23, + -1, 23, -1, 100, -1, 104, -1, 104, -1, 104, + -1, 104, -1, 101, -1, 105, -1, -1, 101, -1, + 102, -1, 103, -1, 104, -1, -1, 164, -1, 171, + -1, 235, -1, 238, -1, 241, -1, 254, -1, 7, + 99, 115, 165, -1, 96, 166, -1, 38, 170, -1, + 60, -1, 98, 168, -1, 53, -1, 29, 247, -1, + 37, -1, 74, 248, -1, 50, 111, 169, 112, -1, + 97, 111, 167, 112, -1, 23, -1, -1, 111, 169, + 112, -1, 23, -1, 60, -1, 29, 247, -1, 37, + -1, 74, 248, -1, 172, -1, 173, -1, 10, 99, + 175, -1, 10, 99, 111, 174, 112, 176, -1, -1, + 23, -1, 115, 178, -1, 115, 116, 177, 117, -1, + 180, -1, 177, 109, 180, -1, 182, -1, 218, -1, + 228, -1, 182, -1, 218, -1, 229, -1, 181, -1, + 219, -1, 228, -1, 182, -1, 73, 206, -1, 73, + 183, -1, 73, 185, -1, 73, 188, -1, 73, 190, + -1, 73, 196, -1, 73, 192, -1, 73, 199, -1, + 73, 201, -1, 73, 203, -1, 73, 205, -1, 73, + 217, -1, 47, 246, 184, -1, 194, -1, 33, -1, + 69, -1, 43, 111, 195, 112, 186, -1, 194, -1, + 60, -1, 26, -1, 72, 187, -1, 40, -1, 32, + -1, 44, 189, -1, 25, -1, 246, 67, -1, 45, + 111, 195, 112, 246, 191, -1, 194, -1, 75, 250, + 193, -1, 29, -1, 25, -1, 31, -1, 71, -1, + 23, -1, 76, 248, 197, 198, -1, 35, -1, 54, -1, 79, -1, 80, -1, 78, -1, 77, -1, 36, - 199, -1, 29, -1, 56, -1, 28, 110, 201, 111, - 57, -1, 23, -1, 58, 203, -1, 70, -1, 26, - -1, 207, 66, 110, 210, 111, -1, 207, 206, -1, - -1, 66, 110, 210, 105, 210, 111, -1, 49, 211, - 208, -1, -1, 209, -1, 41, -1, 82, -1, 42, - -1, 23, -1, 51, 212, -1, 63, -1, 52, -1, - 81, 247, -1, 55, 110, 214, 111, -1, 48, 110, - 215, 111, -1, -1, 213, -1, 23, -1, 23, -1, - 23, -1, 30, 64, -1, 221, -1, 224, -1, 219, - -1, 222, -1, 62, 34, 110, 220, 111, -1, 225, - -1, 225, 105, 225, -1, 62, 34, 110, 225, 111, - -1, 62, 46, 110, 223, 111, -1, 226, -1, 226, - 105, 226, -1, 62, 46, 110, 226, 111, -1, 23, - -1, 23, -1, 229, -1, 231, -1, 230, -1, 231, - -1, 232, -1, 24, -1, 23, -1, 115, 232, 116, - -1, 115, 232, 108, 232, 116, -1, 115, 232, 108, - 232, 108, 232, 116, -1, 115, 232, 108, 232, 108, - 232, 108, 232, 116, -1, 233, 24, -1, 233, 23, - -1, 112, -1, 113, -1, -1, -1, 236, 11, 235, - 239, -1, 99, -1, -1, -1, 5, 238, 239, -1, - 239, 108, 99, -1, 99, -1, 236, 9, 99, 114, - 241, -1, 65, 60, -1, 65, 37, -1, 65, 242, - -1, 65, 59, -1, 65, 74, 247, -1, 65, 30, - -1, 29, 243, 244, -1, -1, 39, -1, 27, -1, + 200, -1, 29, -1, 56, -1, 28, 111, 202, 112, + 57, -1, 23, -1, 58, 204, -1, 70, -1, 26, + -1, 208, 66, 111, 211, 112, -1, 208, 207, -1, + -1, 66, 111, 211, 106, 211, 112, -1, 49, 212, + 209, -1, -1, 210, -1, 41, -1, 82, -1, 42, + -1, 23, -1, 51, 213, -1, 63, -1, 52, -1, + 81, 248, -1, 55, 111, 215, 112, -1, 48, 111, + 216, 112, -1, -1, 214, -1, 23, -1, 23, -1, + 23, -1, 30, 64, -1, 222, -1, 225, -1, 220, + -1, 223, -1, 62, 34, 111, 221, 112, -1, 226, + -1, 226, 106, 226, -1, 62, 34, 111, 226, 112, + -1, 62, 46, 111, 224, 112, -1, 227, -1, 227, + 106, 227, -1, 62, 46, 111, 227, 112, -1, 23, + -1, 23, -1, 230, -1, 232, -1, 231, -1, 232, + -1, 233, -1, 24, -1, 23, -1, 116, 233, 117, + -1, 116, 233, 109, 233, 117, -1, 116, 233, 109, + 233, 109, 233, 117, -1, 116, 233, 109, 233, 109, + 233, 109, 233, 117, -1, 234, 24, -1, 234, 23, + -1, 113, -1, 114, -1, -1, -1, 237, 11, 236, + 240, -1, 255, -1, -1, -1, 5, 239, 240, -1, + 240, 109, 99, -1, 99, -1, 237, 9, 99, 115, + 242, -1, 65, 60, -1, 65, 37, -1, 65, 243, + -1, 65, 59, -1, 65, 74, 248, -1, 65, 30, + -1, 29, 244, 245, -1, -1, 39, -1, 27, -1, -1, 61, -1, 68, -1, -1, 39, -1, 27, -1, - -1, 61, -1, 68, -1, -1, 110, 250, 111, -1, - -1, 110, 251, 111, -1, -1, 110, 252, 111, -1, - 23, -1, 23, -1, 23, -1, 6, 99, 114, 99, - -1 + -1, 61, -1, 68, -1, -1, 111, 251, 112, -1, + -1, 111, 252, 112, -1, -1, 111, 253, 112, -1, + 23, -1, 23, -1, 23, -1, 6, 99, 115, 100, + -1, 99, -1, 100, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 265, 265, 268, 276, 288, 289, 292, 314, 315, - 318, 333, 336, 341, 348, 349, 350, 351, 352, 353, - 354, 357, 358, 359, 362, 368, 374, 380, 387, 393, - 400, 444, 451, 495, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 515, 527, 535, 552, - 559, 578, 589, 609, 631, 640, 673, 680, 695, 745, - 787, 798, 819, 829, 835, 866, 883, 883, 885, 892, - 904, 905, 906, 909, 921, 933, 951, 962, 974, 976, - 977, 978, 979, 982, 982, 982, 982, 983, 986, 987, - 988, 989, 990, 991, 994, 1012, 1016, 1022, 1026, 1030, - 1034, 1043, 1052, 1056, 1061, 1067, 1078, 1078, 1079, 1081, - 1085, 1089, 1093, 1099, 1099, 1101, 1117, 1140, 1143, 1154, - 1160, 1166, 1167, 1174, 1180, 1186, 1194, 1200, 1206, 1214, - 1220, 1226, 1234, 1235, 1238, 1239, 1240, 1241, 1242, 1243, - 1244, 1245, 1246, 1247, 1248, 1251, 1260, 1264, 1268, 1274, - 1283, 1287, 1291, 1300, 1304, 1310, 1316, 1323, 1328, 1336, - 1346, 1348, 1356, 1362, 1366, 1370, 1376, 1387, 1396, 1400, - 1405, 1409, 1413, 1417, 1423, 1430, 1434, 1440, 1448, 1459, - 1466, 1470, 1476, 1486, 1497, 1501, 1519, 1528, 1531, 1537, - 1541, 1545, 1551, 1562, 1567, 1572, 1577, 1582, 1587, 1595, - 1598, 1603, 1616, 1624, 1635, 1643, 1643, 1645, 1645, 1647, - 1657, 1662, 1669, 1679, 1688, 1693, 1700, 1710, 1720, 1732, - 1732, 1733, 1733, 1735, 1745, 1753, 1763, 1771, 1779, 1788, - 1799, 1803, 1809, 1810, 1811, 1814, 1814, 1817, 1852, 1856, - 1856, 1859, 1865, 1873, 1886, 1895, 1904, 1908, 1917, 1926, - 1937, 1944, 1949, 1958, 1970, 1973, 1982, 1993, 1994, 1995, - 1998, 1999, 2000, 2003, 2004, 2007, 2008, 2011, 2012, 2015, - 2026, 2037, 2048 + 0, 266, 266, 269, 277, 289, 290, 293, 315, 316, + 319, 334, 337, 342, 349, 350, 351, 352, 353, 354, + 355, 358, 359, 360, 363, 369, 375, 381, 388, 394, + 401, 445, 452, 496, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 516, 528, 536, 553, + 560, 579, 590, 610, 632, 641, 674, 681, 696, 746, + 788, 799, 820, 830, 836, 867, 884, 884, 886, 893, + 905, 906, 907, 910, 922, 934, 952, 963, 975, 977, + 978, 979, 980, 983, 983, 983, 983, 984, 987, 988, + 989, 990, 991, 992, 995, 1013, 1017, 1023, 1027, 1031, + 1035, 1044, 1053, 1057, 1062, 1068, 1079, 1079, 1080, 1082, + 1086, 1090, 1094, 1100, 1100, 1102, 1118, 1141, 1144, 1155, + 1161, 1167, 1168, 1175, 1181, 1187, 1195, 1201, 1207, 1215, + 1221, 1227, 1235, 1236, 1239, 1240, 1241, 1242, 1243, 1244, + 1245, 1246, 1247, 1248, 1249, 1252, 1261, 1265, 1269, 1275, + 1284, 1288, 1292, 1301, 1305, 1311, 1317, 1324, 1329, 1337, + 1347, 1349, 1357, 1363, 1367, 1371, 1377, 1388, 1397, 1401, + 1406, 1410, 1414, 1418, 1424, 1431, 1435, 1441, 1449, 1460, + 1467, 1471, 1477, 1487, 1498, 1502, 1520, 1529, 1532, 1538, + 1542, 1546, 1552, 1563, 1568, 1573, 1578, 1583, 1588, 1596, + 1599, 1604, 1617, 1625, 1636, 1644, 1644, 1646, 1646, 1648, + 1658, 1663, 1670, 1680, 1689, 1694, 1701, 1711, 1721, 1733, + 1733, 1734, 1734, 1736, 1746, 1754, 1764, 1772, 1780, 1789, + 1800, 1804, 1810, 1811, 1812, 1815, 1815, 1818, 1853, 1857, + 1857, 1860, 1866, 1874, 1887, 1896, 1905, 1909, 1918, 1927, + 1938, 1945, 1950, 1959, 1971, 1974, 1983, 1994, 1995, 1996, + 1999, 2000, 2001, 2004, 2005, 2008, 2009, 2012, 2013, 2016, + 2027, 2038, 2049, 2070, 2071 }; #endif @@ -830,11 +831,11 @@ static const char *const yytname[] = "TEX_2D", "TEX_3D", "TEX_CUBE", "TEX_RECT", "TEX_SHADOW1D", "TEX_SHADOW2D", "TEX_SHADOWRECT", "TEX_ARRAY1D", "TEX_ARRAY2D", "TEX_ARRAYSHADOW1D", "TEX_ARRAYSHADOW2D", "VERTEX", "VTXATTRIB", - "WEIGHT", "IDENTIFIER", "MASK4", "MASK3", "MASK2", "MASK1", "SWIZZLE", - "DOT_DOT", "DOT", "';'", "','", "'|'", "'['", "']'", "'+'", "'-'", "'='", - "'{'", "'}'", "$accept", "program", "language", "optionSequence", - "option", "statementSequence", "statement", "instruction", - "ALU_instruction", "TexInstruction", "ARL_instruction", + "WEIGHT", "IDENTIFIER", "USED_IDENTIFIER", "MASK4", "MASK3", "MASK2", + "MASK1", "SWIZZLE", "DOT_DOT", "DOT", "';'", "','", "'|'", "'['", "']'", + "'+'", "'-'", "'='", "'{'", "'}'", "$accept", "program", "language", + "optionSequence", "option", "statementSequence", "statement", + "instruction", "ALU_instruction", "TexInstruction", "ARL_instruction", "VECTORop_instruction", "SCALARop_instruction", "BINSCop_instruction", "BINop_instruction", "TRIop_instruction", "SAMPLE_instruction", "KIL_instruction", "TXD_instruction", "texImageUnit", "texTarget", @@ -873,7 +874,7 @@ static const char *const yytname[] = "optResultColorType", "optFaceType", "optColorType", "optTexCoordUnitNum", "optTexImageUnitNum", "optLegacyTexUnitNum", "texCoordUnitNum", "texImageUnitNum", "legacyTexUnitNum", - "ALIAS_statement", 0 + "ALIAS_statement", "string", 0 }; #endif @@ -892,42 +893,42 @@ static const yytype_uint16 yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 59, 44, 124, - 91, 93, 43, 45, 61, 123, 125 + 355, 356, 357, 358, 359, 360, 361, 362, 59, 44, + 124, 91, 93, 43, 45, 61, 123, 125 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 117, 118, 119, 119, 120, 120, 121, 122, 122, - 123, 123, 124, 124, 125, 125, 125, 125, 125, 125, - 125, 126, 126, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 138, 139, 139, 140, - 140, 141, 141, 142, 143, 144, 145, 146, 146, 147, - 147, 147, 147, 148, 148, 149, 150, 150, 151, 152, - 153, 153, 153, 154, 155, 156, 157, 158, 159, 160, - 160, 160, 160, 161, 161, 161, 161, 161, 162, 162, - 162, 162, 162, 162, 163, 164, 164, 165, 165, 165, - 165, 165, 165, 165, 165, 166, 167, 167, 168, 169, - 169, 169, 169, 170, 170, 171, 172, 173, 173, 174, - 175, 176, 176, 177, 177, 177, 178, 178, 178, 179, - 179, 179, 180, 180, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 182, 183, 183, 183, 184, - 185, 185, 185, 185, 185, 186, 187, 188, 188, 189, - 190, 191, 192, 193, 193, 193, 194, 195, 196, 196, - 197, 197, 197, 197, 198, 199, 199, 200, 201, 202, - 203, 203, 204, 205, 206, 206, 207, 208, 208, 209, - 209, 209, 210, 211, 211, 211, 211, 211, 211, 212, - 212, 213, 214, 215, 216, 217, 217, 218, 218, 219, - 220, 220, 221, 222, 223, 223, 224, 225, 226, 227, - 227, 228, 228, 229, 230, 230, 231, 231, 231, 231, - 232, 232, 233, 233, 233, 235, 234, 236, 236, 238, - 237, 239, 239, 240, 241, 241, 241, 241, 241, 241, - 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, - 246, 246, 246, 247, 247, 248, 248, 249, 249, 250, - 251, 252, 253 + 0, 118, 119, 120, 120, 121, 121, 122, 123, 123, + 124, 124, 125, 125, 126, 126, 126, 126, 126, 126, + 126, 127, 127, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 139, 140, 140, 141, + 141, 142, 142, 143, 144, 145, 146, 147, 147, 148, + 148, 148, 148, 149, 149, 150, 151, 151, 152, 153, + 154, 154, 154, 155, 156, 157, 158, 159, 160, 161, + 161, 161, 161, 162, 162, 162, 162, 162, 163, 163, + 163, 163, 163, 163, 164, 165, 165, 166, 166, 166, + 166, 166, 166, 166, 166, 167, 168, 168, 169, 170, + 170, 170, 170, 171, 171, 172, 173, 174, 174, 175, + 176, 177, 177, 178, 178, 178, 179, 179, 179, 180, + 180, 180, 181, 181, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 183, 184, 184, 184, 185, + 186, 186, 186, 186, 186, 187, 188, 189, 189, 190, + 191, 192, 193, 194, 194, 194, 195, 196, 197, 197, + 198, 198, 198, 198, 199, 200, 200, 201, 202, 203, + 204, 204, 205, 206, 207, 207, 208, 209, 209, 210, + 210, 210, 211, 212, 212, 212, 212, 212, 212, 213, + 213, 214, 215, 216, 217, 218, 218, 219, 219, 220, + 221, 221, 222, 223, 224, 224, 225, 226, 227, 228, + 228, 229, 229, 230, 231, 231, 232, 232, 232, 232, + 233, 233, 234, 234, 234, 236, 235, 237, 237, 239, + 238, 240, 240, 241, 242, 242, 242, 242, 242, 242, + 243, 244, 244, 244, 245, 245, 245, 246, 246, 246, + 247, 247, 247, 248, 248, 249, 249, 250, 250, 251, + 252, 253, 254, 255, 255 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -960,7 +961,7 @@ static const yytype_uint8 yyr2[] = 3, 3, 1, 5, 2, 2, 2, 2, 3, 2, 3, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 3, 0, 3, 0, 3, 1, - 1, 1, 4 + 1, 1, 4, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -969,142 +970,142 @@ static const yytype_uint8 yyr2[] = static const yytype_uint16 yydefact[] = { 0, 3, 4, 0, 6, 1, 9, 0, 5, 238, - 0, 239, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 234, 0, 0, 237, 8, 0, 12, - 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, - 20, 0, 88, 89, 113, 114, 90, 0, 91, 92, - 93, 7, 0, 0, 0, 0, 0, 64, 0, 87, - 63, 0, 0, 0, 0, 0, 75, 0, 0, 232, - 233, 31, 0, 0, 0, 10, 11, 0, 235, 242, - 240, 0, 0, 117, 234, 115, 251, 249, 245, 247, - 244, 263, 246, 234, 83, 84, 85, 86, 53, 234, - 234, 234, 234, 234, 234, 77, 54, 225, 224, 0, - 0, 0, 0, 59, 0, 234, 82, 0, 60, 62, - 126, 127, 205, 206, 128, 221, 222, 0, 234, 0, - 0, 0, 272, 94, 118, 0, 119, 123, 124, 125, - 219, 220, 223, 0, 253, 252, 254, 0, 248, 0, - 0, 0, 0, 26, 0, 25, 24, 260, 111, 109, - 263, 96, 0, 0, 0, 0, 0, 0, 257, 0, - 257, 0, 0, 267, 263, 134, 135, 136, 137, 139, - 138, 140, 141, 142, 143, 0, 144, 260, 101, 0, - 99, 97, 263, 0, 106, 95, 82, 0, 80, 79, - 81, 51, 0, 0, 0, 0, 236, 241, 0, 231, - 230, 255, 256, 250, 269, 0, 234, 234, 0, 47, - 0, 50, 0, 234, 261, 262, 110, 112, 0, 0, - 0, 204, 175, 176, 174, 0, 157, 259, 258, 156, - 0, 0, 0, 0, 199, 195, 0, 194, 263, 187, - 181, 180, 179, 0, 0, 0, 0, 100, 0, 102, - 0, 0, 98, 0, 234, 226, 68, 0, 66, 67, - 0, 234, 234, 243, 0, 116, 264, 28, 27, 0, - 78, 49, 265, 0, 0, 217, 0, 218, 0, 178, - 0, 166, 0, 158, 0, 163, 164, 147, 148, 165, - 145, 146, 0, 201, 193, 200, 0, 196, 189, 191, - 190, 186, 188, 271, 0, 162, 161, 168, 169, 0, - 0, 108, 0, 105, 0, 0, 52, 0, 61, 76, - 70, 46, 0, 0, 0, 234, 48, 0, 33, 0, - 234, 212, 216, 0, 0, 257, 203, 0, 202, 0, - 268, 173, 172, 170, 171, 167, 192, 0, 103, 104, - 107, 234, 227, 0, 0, 69, 234, 57, 58, 56, - 234, 0, 0, 0, 121, 129, 132, 130, 207, 208, - 131, 270, 0, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 30, 29, 177, 152, 154, - 151, 0, 149, 150, 0, 198, 197, 182, 0, 73, - 71, 74, 72, 0, 0, 0, 0, 133, 184, 234, - 120, 266, 155, 153, 159, 160, 234, 228, 234, 0, - 0, 0, 0, 183, 122, 0, 0, 0, 0, 210, - 0, 214, 0, 229, 234, 0, 209, 0, 213, 0, - 0, 55, 32, 211, 215, 0, 0, 185 + 273, 274, 0, 239, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 234, 0, 0, 8, 0, + 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, + 23, 20, 0, 88, 89, 113, 114, 90, 0, 91, + 92, 93, 237, 7, 0, 0, 0, 0, 0, 64, + 0, 87, 63, 0, 0, 0, 0, 0, 75, 0, + 0, 232, 233, 31, 0, 0, 0, 10, 11, 0, + 235, 242, 240, 0, 0, 117, 234, 115, 251, 249, + 245, 247, 244, 263, 246, 234, 83, 84, 85, 86, + 53, 234, 234, 234, 234, 234, 234, 77, 54, 225, + 224, 0, 0, 0, 0, 59, 0, 234, 82, 0, + 60, 62, 126, 127, 205, 206, 128, 221, 222, 0, + 234, 0, 0, 0, 272, 94, 118, 0, 119, 123, + 124, 125, 219, 220, 223, 0, 253, 252, 254, 0, + 248, 0, 0, 0, 0, 26, 0, 25, 24, 260, + 111, 109, 263, 96, 0, 0, 0, 0, 0, 0, + 257, 0, 257, 0, 0, 267, 263, 134, 135, 136, + 137, 139, 138, 140, 141, 142, 143, 0, 144, 260, + 101, 0, 99, 97, 263, 0, 106, 95, 82, 0, + 80, 79, 81, 51, 0, 0, 0, 0, 236, 241, + 0, 231, 230, 255, 256, 250, 269, 0, 234, 234, + 0, 47, 0, 50, 0, 234, 261, 262, 110, 112, + 0, 0, 0, 204, 175, 176, 174, 0, 157, 259, + 258, 156, 0, 0, 0, 0, 199, 195, 0, 194, + 263, 187, 181, 180, 179, 0, 0, 0, 0, 100, + 0, 102, 0, 0, 98, 0, 234, 226, 68, 0, + 66, 67, 0, 234, 234, 243, 0, 116, 264, 28, + 27, 0, 78, 49, 265, 0, 0, 217, 0, 218, + 0, 178, 0, 166, 0, 158, 0, 163, 164, 147, + 148, 165, 145, 146, 0, 201, 193, 200, 0, 196, + 189, 191, 190, 186, 188, 271, 0, 162, 161, 168, + 169, 0, 0, 108, 0, 105, 0, 0, 52, 0, + 61, 76, 70, 46, 0, 0, 0, 234, 48, 0, + 33, 0, 234, 212, 216, 0, 0, 257, 203, 0, + 202, 0, 268, 173, 172, 170, 171, 167, 192, 0, + 103, 104, 107, 234, 227, 0, 0, 69, 234, 57, + 56, 58, 234, 0, 0, 0, 121, 129, 132, 130, + 207, 208, 131, 270, 0, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 30, 29, 177, + 152, 154, 151, 0, 149, 150, 0, 198, 197, 182, + 0, 73, 71, 74, 72, 0, 0, 0, 0, 133, + 184, 234, 120, 266, 155, 153, 159, 160, 234, 228, + 234, 0, 0, 0, 0, 183, 122, 0, 0, 0, + 0, 210, 0, 214, 0, 229, 234, 0, 209, 0, + 213, 0, 0, 55, 32, 211, 215, 0, 0, 185 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 3, 4, 6, 8, 9, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 283, - 395, 40, 150, 219, 71, 58, 67, 331, 332, 369, - 220, 59, 117, 267, 268, 269, 365, 410, 412, 68, - 330, 106, 281, 201, 98, 41, 42, 118, 195, 324, - 262, 322, 161, 43, 44, 45, 135, 85, 275, 373, - 136, 119, 374, 375, 120, 175, 300, 176, 402, 423, - 177, 239, 178, 424, 179, 316, 301, 292, 180, 319, - 355, 181, 234, 182, 290, 183, 252, 184, 417, 433, - 185, 311, 312, 357, 249, 304, 305, 349, 347, 186, - 121, 377, 378, 438, 122, 379, 440, 123, 286, 288, - 380, 124, 140, 125, 126, 142, 72, 46, 130, 47, - 48, 52, 80, 49, 60, 92, 146, 213, 240, 226, - 148, 338, 254, 215, 382, 314, 50 + -1, 3, 4, 6, 8, 9, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 285, + 397, 41, 152, 221, 73, 60, 69, 333, 334, 370, + 222, 61, 119, 269, 270, 271, 367, 412, 414, 70, + 332, 108, 283, 203, 100, 42, 43, 120, 197, 326, + 264, 324, 163, 44, 45, 46, 137, 87, 277, 375, + 138, 121, 376, 377, 122, 177, 302, 178, 404, 425, + 179, 241, 180, 426, 181, 318, 303, 294, 182, 321, + 357, 183, 236, 184, 292, 185, 254, 186, 419, 435, + 187, 313, 314, 359, 251, 306, 307, 351, 349, 188, + 123, 379, 380, 440, 124, 381, 442, 125, 288, 290, + 382, 126, 142, 127, 128, 144, 74, 47, 132, 48, + 49, 54, 82, 50, 62, 94, 148, 215, 242, 228, + 150, 340, 256, 217, 384, 316, 51, 12 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -386 +#define YYPACT_NINF -401 static const yytype_int16 yypact[] = { - 203, -386, -386, 23, -386, -386, 67, -50, -386, 20, - 16, -386, 21, 37, 48, -386, -19, -19, -19, -19, - -19, -19, 58, 131, -19, -19, -386, -386, 53, -386, - -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, - -386, 64, -386, -386, -386, -386, -386, 229, -386, -386, - -386, -386, 77, 81, 89, 78, 95, -386, 75, 130, - -386, 119, 139, 140, 142, 146, -386, 147, 136, -386, - -386, -386, -14, 148, 149, -386, -386, 159, -386, -386, - 152, 162, -20, 239, -6, -386, 31, -386, -386, -386, - -386, 153, -386, 131, -386, -386, -386, -386, -386, 131, - 131, 131, 131, 131, 131, -386, -386, -386, -386, 28, - 50, 123, 40, 154, 30, 131, 101, 155, -386, -386, - -386, -386, -386, -386, -386, -386, -386, 30, 131, 156, - 77, 167, -386, -386, -386, 158, -386, -386, -386, -386, - -386, -386, -386, 218, -386, -386, 13, 244, -386, 160, - 163, -10, 164, -386, 165, -386, -386, 73, -386, -386, - 153, -386, 166, 168, 169, 210, 42, 170, 91, 171, - 100, 145, 38, 173, 153, -386, -386, -386, -386, -386, - -386, -386, -386, -386, -386, 209, -386, 73, -386, 174, - -386, -386, 153, 175, 176, -386, 101, 57, -386, -386, - -386, -386, -16, 179, 180, 225, 152, -386, 177, -386, - -386, -386, -386, -386, -386, 181, 131, 131, 30, -386, - 190, 191, 212, 131, -386, -386, -386, -386, 273, 274, - 275, -386, -386, -386, -386, 276, -386, -386, -386, -386, - 233, 276, 115, 192, 278, -386, 193, -386, 153, 9, - -386, -386, -386, 281, 277, 25, 195, -386, 284, -386, - 285, 284, -386, 200, 131, -386, -386, 199, -386, -386, - 208, 131, 131, -386, 197, -386, -386, -386, -386, 206, - -386, -386, 207, 205, 211, -386, 213, -386, 214, -386, - 215, -386, 216, -386, 217, -386, -386, -386, -386, -386, - -386, -386, 293, -386, -386, -386, 295, -386, -386, -386, - -386, -386, -386, -386, 219, -386, -386, -386, -386, 157, - 297, -386, 220, -386, 221, 222, -386, 66, -386, -386, - 133, -386, 226, -12, 230, 49, -386, 298, -386, 125, - 131, -386, -386, 265, 118, 100, -386, 228, -386, 232, - -386, -386, -386, -386, -386, -386, -386, 234, -386, -386, - -386, 131, -386, 300, 306, -386, 131, -386, -386, -386, - 131, 129, 123, 69, -386, -386, -386, -386, -386, -386, - -386, -386, 235, -386, -386, -386, -386, -386, -386, -386, - -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, - -386, 308, -386, -386, 41, -386, -386, -386, 86, -386, - -386, -386, -386, 240, 241, 231, 237, -386, 286, 49, - -386, -386, -386, -386, -386, -386, 131, -386, 131, 212, - 273, 274, 243, -386, -386, 238, 242, 247, 245, 246, - 248, 252, 297, -386, 131, 125, -386, 273, -386, 274, - 45, -386, -386, -386, -386, 297, 250, -386 + 122, -401, -401, 49, -401, -401, 56, 61, -401, 20, + -401, -401, -5, -401, 7, 45, 78, -401, -47, -47, + -47, -47, -47, -47, 79, 85, -47, -47, -401, 99, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, 127, -401, -401, -401, -401, -401, 120, -401, + -401, -401, -401, -401, 135, 133, 134, 25, 129, -401, + 138, 137, -401, 145, 146, 147, 148, 151, -401, 152, + 154, -401, -401, -401, -14, 153, 155, -401, -401, 143, + -401, -401, 156, 163, 14, 243, 32, -401, 31, -401, + -401, -401, -401, 157, -401, 85, -401, -401, -401, -401, + -401, 85, 85, 85, 85, 85, 85, -401, -401, -401, + -401, 112, 149, 126, 54, 158, 27, 85, 132, 159, + -401, -401, -401, -401, -401, -401, -401, -401, -401, 27, + 85, 160, 135, 168, -401, -401, -401, 161, -401, -401, + -401, -401, -401, -401, -401, 198, -401, -401, 89, 248, + -401, 167, 169, 22, 170, -401, 171, -401, -401, 117, + -401, -401, 157, -401, 172, 173, 174, 208, -1, 175, + 53, 176, 165, 142, -3, 177, 157, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, 215, -401, 117, + -401, 179, -401, -401, 157, 180, 181, -401, 132, -38, + -401, -401, -401, -401, -10, 184, 185, 209, 156, -401, + 182, -401, -401, -401, -401, -401, -401, 183, 85, 85, + 27, -401, 192, 194, 216, 85, -401, -401, -401, -401, + 277, 278, 279, -401, -401, -401, -401, 280, -401, -401, + -401, -401, 237, 280, 68, 195, 282, -401, 196, -401, + 157, 33, -401, -401, -401, 285, 281, 19, 200, -401, + 286, -401, 289, 286, -401, 203, 85, -401, -401, 202, + -401, -401, 212, 85, 85, -401, 201, -401, -401, -401, + -401, 210, -401, -401, 207, 213, 214, -401, 218, -401, + 219, -401, 220, -401, 221, -401, 222, -401, -401, -401, + -401, -401, -401, -401, 296, -401, -401, -401, 298, -401, + -401, -401, -401, -401, -401, -401, 226, -401, -401, -401, + -401, 166, 301, -401, 227, -401, 228, 229, -401, 46, + -401, -401, 116, -401, 217, -12, 234, 51, -401, 302, + -401, 125, 85, -401, -401, 270, 37, 165, -401, 233, + -401, 235, -401, -401, -401, -401, -401, -401, -401, 236, + -401, -401, -401, 85, -401, 305, 323, -401, 85, -401, + -401, -401, 85, 162, 126, 59, -401, -401, -401, -401, + -401, -401, -401, -401, 238, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, 317, -401, -401, 41, -401, -401, -401, + 65, -401, -401, -401, -401, 242, 244, 241, 245, -401, + 288, 51, -401, -401, -401, -401, -401, -401, 85, -401, + 85, 216, 277, 278, 246, -401, -401, 247, 249, 250, + 251, 255, 253, 256, 301, -401, 85, 125, -401, 277, + -401, 278, 94, -401, -401, -401, -401, 301, 254, -401 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, - -386, -386, -386, -386, -386, -386, -386, -386, -386, -71, - -80, -386, -96, 144, -81, 204, -386, -386, -350, -386, - -17, -386, -386, -386, -386, -386, -386, -386, -386, 161, - -386, -386, -386, 172, -386, -386, -386, 282, -386, -386, - -386, 105, -386, -386, -386, -386, -386, -386, -386, -386, - -386, -386, -52, -386, -83, -386, -386, -386, -386, -386, - -386, -386, -386, -386, -386, -386, -300, 128, -386, -386, - -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, - -2, -386, -386, -327, -386, -386, -386, -386, -386, -386, - 287, -386, -386, -386, -386, -386, -386, -386, -385, -318, - 288, -386, -386, -145, -82, -112, -84, -386, -386, -386, - -386, -386, 249, -386, 178, -386, -386, -386, -166, 186, - -131, -386, -386, -386, -386, -386, -386 + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -76, + -80, -401, -98, 150, -83, 205, -401, -401, -361, -401, + -18, -401, -401, -401, -401, -401, -401, -401, -401, 164, + -401, -401, -401, 178, -401, -401, -401, 287, -401, -401, + -401, 106, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -49, -401, -85, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -330, 130, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + 0, -401, -401, -400, -401, -401, -401, -401, -401, -401, + 291, -401, -401, -401, -401, -401, -401, -401, -302, -317, + 292, -401, -401, -139, -84, -113, -86, -401, -401, -401, + -401, -401, 252, -401, 186, -401, -401, -401, -166, 190, + -133, -401, -401, -401, -401, -401, -401, -6 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1114,140 +1115,142 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -222 static const yytype_int16 yytable[] = { - 143, 137, 141, 197, 242, 153, 221, 266, 156, 107, - 108, 367, 149, 107, 108, 151, 413, 151, 109, 152, - 151, 154, 155, 5, 109, 11, 12, 13, 109, 227, - 14, 143, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 255, 403, 439, 56, 204, 110, 10, - 308, 309, 110, 107, 108, 116, 110, 157, 144, 111, - 317, 259, 453, 111, 250, 158, 295, 111, 109, 187, - 145, 232, 296, 221, 211, 7, 112, 188, 436, 318, - 57, 212, 112, 66, 162, 113, 112, 368, 159, 113, - 189, 310, 110, 190, 451, 114, 163, 196, 233, 218, - 191, 115, 160, 111, 425, 115, 69, 70, 251, 115, - 203, 371, 299, 441, 192, 450, 236, 307, 237, 26, - 53, 278, 372, 51, 86, 87, 112, 237, 456, 113, - 238, 454, 88, 151, 224, 277, 54, 193, 194, 238, - 295, 225, 284, 295, 398, 115, 296, 55, 297, 296, - 455, 164, 327, 165, 89, 90, 407, 66, 399, 166, - 75, 69, 70, 415, 115, 264, 167, 168, 169, 91, - 170, 76, 171, 265, 361, 416, 79, 419, 400, 404, - 143, 172, 362, 93, 298, 420, 299, 333, 83, 299, - 401, 334, 84, 243, 426, 81, 244, 245, 173, 174, - 246, 198, 427, 82, 199, 200, 1, 2, 247, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 61, 62, 63, 64, 65, 248, 99, 73, 74, - 94, 95, 96, 97, 351, 352, 353, 354, 77, 105, - 78, 209, 210, 69, 70, 363, 364, 100, 101, 408, - 102, 143, 376, 141, 103, 104, 127, 128, 129, 396, - 131, 132, 134, 147, -65, 202, 207, 214, 216, 208, - 205, 217, 222, 223, 231, 256, 228, 143, 229, 230, - 235, 241, 333, 253, 258, 260, 261, 271, 272, 414, - 56, 274, 276, 280, -221, 282, 285, 287, 289, 291, - 293, 303, 302, 306, 313, 320, 315, 321, 323, 326, - 328, 329, 335, 339, 435, 336, 346, 337, 348, 340, - 356, 381, 397, 409, 341, 342, 343, 344, 345, 411, - 350, 358, 359, 360, 366, 143, 376, 141, 370, 405, - 422, 430, 143, 406, 333, 407, 421, 431, 428, 429, - 444, 447, 432, 442, 443, 445, 446, 449, 437, 448, - 333, 457, 279, 270, 133, 452, 325, 434, 263, 294, - 418, 138, 139, 257, 0, 0, 0, 0, 0, 206, - 0, 0, 0, 273 + 145, 139, 143, 52, 199, 155, 244, 415, 158, 109, + 110, 369, 151, 268, 223, 153, 405, 153, 58, 154, + 153, 156, 157, 252, 111, 13, 14, 15, 234, 229, + 16, 145, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 257, 452, 109, 110, 206, 112, 5, + 109, 110, 111, 59, 319, 235, 118, 458, 146, 113, + 111, 261, 297, 400, 7, 111, 297, 253, 298, 438, + 147, 266, 298, 320, 310, 311, 427, 401, 238, 267, + 239, 223, 114, 189, 112, 453, 115, 10, 11, 112, + 68, 190, 240, 297, 112, 113, 116, 402, 198, 298, + 113, 299, 117, 53, 191, 113, 55, 192, 301, 403, + 114, 205, 301, 373, 193, 312, 443, 309, 114, 10, + 11, 280, 115, 114, 374, 1, 2, 115, 194, 79, + 441, 80, 220, 153, 456, 279, 85, 300, 117, 301, + 86, 159, 286, 117, 56, 71, 72, 455, 117, 160, + 213, 195, 196, 329, 166, 363, 167, 214, 88, 89, + 10, 11, 168, 364, 71, 72, 90, 117, 421, 169, + 170, 171, 161, 172, 428, 173, 422, 57, 226, 68, + 145, 406, 429, 164, 174, 227, 162, 335, 91, 92, + 245, 336, 239, 246, 247, 165, 417, 248, 71, 72, + 457, 175, 176, 93, 240, 249, 409, 77, 418, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 211, 212, 250, 63, 64, 65, 66, 67, 365, + 366, 75, 76, 200, 81, 78, 201, 202, 96, 97, + 98, 99, 131, 353, 354, 355, 356, 95, 83, 84, + 410, 145, 378, 143, 101, 102, 103, 104, 107, 398, + 105, 106, 129, 134, 130, 133, 136, 209, 149, -65, + 204, 216, 233, 210, 58, 207, 218, 145, 219, 224, + 225, 258, 335, 230, 231, 232, 237, 243, 255, 416, + 260, 262, 263, 273, 274, 278, 282, 276, -221, 284, + 287, 289, 291, 293, 295, 305, 304, 308, 315, 323, + 317, 322, 325, 328, 330, 437, 331, 337, 339, 348, + 338, 350, 341, 342, 358, 383, 368, 399, 411, 371, + 343, 344, 345, 346, 347, 145, 378, 143, 352, 360, + 361, 362, 145, 372, 335, 407, 413, 408, 409, 424, + 423, 430, 432, 431, 434, 439, 433, 444, 446, 447, + 335, 449, 451, 448, 445, 450, 459, 454, 272, 327, + 281, 135, 436, 296, 420, 0, 265, 140, 141, 259, + 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, + 0, 0, 0, 275 }; static const yytype_int16 yycheck[] = { - 84, 84, 84, 115, 170, 101, 151, 23, 104, 23, - 24, 23, 93, 23, 24, 99, 366, 101, 38, 100, - 104, 102, 103, 0, 38, 5, 6, 7, 38, 160, - 10, 115, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 174, 344, 430, 65, 128, 62, 99, - 41, 42, 62, 23, 24, 72, 62, 29, 27, 73, - 35, 192, 447, 73, 26, 37, 25, 73, 38, 29, - 39, 29, 31, 218, 61, 8, 96, 37, 428, 54, - 99, 68, 96, 99, 34, 99, 96, 99, 60, 99, - 50, 82, 62, 53, 444, 109, 46, 114, 56, 109, - 60, 115, 74, 73, 404, 115, 112, 113, 70, 115, - 127, 62, 71, 431, 74, 442, 25, 248, 27, 99, - 99, 217, 73, 107, 29, 30, 96, 27, 455, 99, - 39, 449, 37, 217, 61, 216, 99, 97, 98, 39, - 25, 68, 223, 25, 26, 115, 31, 99, 33, 31, - 105, 28, 264, 30, 59, 60, 111, 99, 40, 36, - 107, 112, 113, 34, 115, 108, 43, 44, 45, 74, - 47, 107, 49, 116, 108, 46, 99, 108, 60, 345, - 264, 58, 116, 108, 69, 116, 71, 271, 110, 71, - 72, 272, 114, 48, 108, 114, 51, 52, 75, 76, - 55, 100, 116, 114, 103, 104, 3, 4, 63, 84, + 86, 86, 86, 9, 117, 103, 172, 368, 106, 23, + 24, 23, 95, 23, 153, 101, 346, 103, 65, 102, + 106, 104, 105, 26, 38, 5, 6, 7, 29, 162, + 10, 117, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 176, 444, 23, 24, 130, 62, 0, + 23, 24, 38, 100, 35, 56, 74, 457, 27, 73, + 38, 194, 25, 26, 8, 38, 25, 70, 31, 430, + 39, 109, 31, 54, 41, 42, 406, 40, 25, 117, + 27, 220, 96, 29, 62, 446, 100, 99, 100, 62, + 100, 37, 39, 25, 62, 73, 110, 60, 116, 31, + 73, 33, 116, 108, 50, 73, 99, 53, 71, 72, + 96, 129, 71, 62, 60, 82, 433, 250, 96, 99, + 100, 219, 100, 96, 73, 3, 4, 100, 74, 9, + 432, 11, 110, 219, 451, 218, 111, 69, 116, 71, + 115, 29, 225, 116, 99, 113, 114, 449, 116, 37, + 61, 97, 98, 266, 28, 109, 30, 68, 29, 30, + 99, 100, 36, 117, 113, 114, 37, 116, 109, 43, + 44, 45, 60, 47, 109, 49, 117, 99, 61, 100, + 266, 347, 117, 34, 58, 68, 74, 273, 59, 60, + 48, 274, 27, 51, 52, 46, 34, 55, 113, 114, + 106, 75, 76, 74, 39, 63, 112, 108, 46, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 17, 18, 19, 20, 21, 81, 108, 24, 25, - 100, 101, 102, 103, 77, 78, 79, 80, 9, 103, - 11, 23, 24, 112, 113, 112, 113, 108, 108, 361, - 108, 335, 335, 335, 108, 108, 108, 108, 99, 340, - 108, 99, 23, 110, 110, 110, 99, 23, 108, 111, - 114, 108, 108, 108, 64, 66, 110, 361, 110, 110, - 110, 110, 366, 110, 110, 110, 110, 108, 108, 370, - 65, 114, 111, 103, 103, 83, 23, 23, 23, 23, - 67, 23, 110, 110, 23, 110, 29, 23, 23, 109, - 111, 103, 115, 108, 426, 109, 23, 110, 23, 108, - 23, 23, 57, 23, 111, 111, 111, 111, 111, 23, - 111, 111, 111, 111, 108, 419, 419, 419, 108, 111, - 32, 110, 426, 111, 428, 111, 111, 110, 108, 108, - 108, 105, 66, 110, 116, 108, 111, 105, 429, 111, - 444, 111, 218, 202, 82, 445, 261, 419, 196, 241, - 372, 84, 84, 187, -1, -1, -1, -1, -1, 130, - -1, -1, -1, 205 + 95, 23, 24, 81, 19, 20, 21, 22, 23, 113, + 114, 26, 27, 101, 99, 108, 104, 105, 101, 102, + 103, 104, 99, 77, 78, 79, 80, 109, 115, 115, + 363, 337, 337, 337, 109, 109, 109, 109, 104, 342, + 109, 109, 109, 100, 109, 109, 23, 99, 111, 111, + 111, 23, 64, 112, 65, 115, 109, 363, 109, 109, + 109, 66, 368, 111, 111, 111, 111, 111, 111, 372, + 111, 111, 111, 109, 109, 112, 104, 115, 104, 83, + 23, 23, 23, 23, 67, 23, 111, 111, 23, 23, + 29, 111, 23, 110, 112, 428, 104, 116, 111, 23, + 110, 23, 109, 109, 23, 23, 109, 57, 23, 335, + 112, 112, 112, 112, 112, 421, 421, 421, 112, 112, + 112, 112, 428, 109, 430, 112, 23, 112, 112, 32, + 112, 109, 111, 109, 66, 431, 111, 111, 109, 109, + 446, 106, 106, 112, 117, 112, 112, 447, 204, 263, + 220, 84, 421, 243, 374, -1, 198, 86, 86, 189, + -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, + -1, -1, -1, 207 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 4, 118, 119, 0, 120, 8, 121, 122, - 99, 5, 6, 7, 10, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 99, 123, 124, 125, + 0, 3, 4, 119, 120, 0, 121, 8, 122, 123, + 99, 100, 255, 5, 6, 7, 10, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 138, 162, 163, 170, 171, 172, 234, 236, 237, 240, - 253, 107, 238, 99, 99, 99, 65, 99, 142, 148, - 241, 142, 142, 142, 142, 142, 99, 143, 156, 112, - 113, 141, 233, 142, 142, 107, 107, 9, 11, 99, - 239, 114, 114, 110, 114, 174, 29, 30, 37, 59, - 60, 74, 242, 108, 100, 101, 102, 103, 161, 108, - 108, 108, 108, 108, 108, 103, 158, 23, 24, 38, - 62, 73, 96, 99, 109, 115, 147, 149, 164, 178, - 181, 217, 221, 224, 228, 230, 231, 108, 108, 99, - 235, 108, 99, 164, 23, 173, 177, 181, 217, 227, - 229, 231, 232, 233, 27, 39, 243, 110, 247, 141, - 139, 233, 141, 139, 141, 141, 139, 29, 37, 60, - 74, 169, 34, 46, 28, 30, 36, 43, 44, 45, - 47, 49, 58, 75, 76, 182, 184, 187, 189, 191, - 195, 198, 200, 202, 204, 207, 216, 29, 37, 50, - 53, 60, 74, 97, 98, 165, 147, 232, 100, 103, - 104, 160, 110, 147, 141, 114, 239, 99, 111, 23, - 24, 61, 68, 244, 23, 250, 108, 108, 109, 140, - 147, 230, 108, 108, 61, 68, 246, 247, 110, 110, - 110, 64, 29, 56, 199, 110, 25, 27, 39, 188, - 245, 110, 245, 48, 51, 52, 55, 63, 81, 211, - 26, 70, 203, 110, 249, 247, 66, 246, 110, 247, - 110, 110, 167, 160, 108, 116, 23, 150, 151, 152, - 156, 108, 108, 241, 114, 175, 111, 141, 139, 140, - 103, 159, 83, 136, 141, 23, 225, 23, 226, 23, - 201, 23, 194, 67, 194, 25, 31, 33, 69, 71, - 183, 193, 110, 23, 212, 213, 110, 247, 41, 42, - 82, 208, 209, 23, 252, 29, 192, 35, 54, 196, - 110, 23, 168, 23, 166, 168, 109, 232, 111, 103, - 157, 144, 145, 233, 141, 115, 109, 110, 248, 108, - 108, 111, 111, 111, 111, 111, 23, 215, 23, 214, - 111, 77, 78, 79, 80, 197, 23, 210, 111, 111, - 111, 108, 116, 112, 113, 153, 108, 23, 99, 146, - 108, 62, 73, 176, 179, 180, 181, 218, 219, 222, - 227, 23, 251, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 137, 141, 57, 26, 40, - 60, 72, 185, 193, 245, 111, 111, 111, 232, 23, - 154, 23, 155, 145, 141, 34, 46, 205, 207, 108, - 116, 111, 32, 186, 190, 193, 108, 116, 108, 108, - 110, 110, 66, 206, 179, 232, 145, 136, 220, 225, - 223, 226, 110, 116, 108, 108, 111, 105, 111, 105, - 210, 145, 137, 225, 226, 105, 210, 111 + 136, 139, 163, 164, 171, 172, 173, 235, 237, 238, + 241, 254, 255, 108, 239, 99, 99, 99, 65, 100, + 143, 149, 242, 143, 143, 143, 143, 143, 100, 144, + 157, 113, 114, 142, 234, 143, 143, 108, 108, 9, + 11, 99, 240, 115, 115, 111, 115, 175, 29, 30, + 37, 59, 60, 74, 243, 109, 101, 102, 103, 104, + 162, 109, 109, 109, 109, 109, 109, 104, 159, 23, + 24, 38, 62, 73, 96, 100, 110, 116, 148, 150, + 165, 179, 182, 218, 222, 225, 229, 231, 232, 109, + 109, 99, 236, 109, 100, 165, 23, 174, 178, 182, + 218, 228, 230, 232, 233, 234, 27, 39, 244, 111, + 248, 142, 140, 234, 142, 140, 142, 142, 140, 29, + 37, 60, 74, 170, 34, 46, 28, 30, 36, 43, + 44, 45, 47, 49, 58, 75, 76, 183, 185, 188, + 190, 192, 196, 199, 201, 203, 205, 208, 217, 29, + 37, 50, 53, 60, 74, 97, 98, 166, 148, 233, + 101, 104, 105, 161, 111, 148, 142, 115, 240, 99, + 112, 23, 24, 61, 68, 245, 23, 251, 109, 109, + 110, 141, 148, 231, 109, 109, 61, 68, 247, 248, + 111, 111, 111, 64, 29, 56, 200, 111, 25, 27, + 39, 189, 246, 111, 246, 48, 51, 52, 55, 63, + 81, 212, 26, 70, 204, 111, 250, 248, 66, 247, + 111, 248, 111, 111, 168, 161, 109, 117, 23, 151, + 152, 153, 157, 109, 109, 242, 115, 176, 112, 142, + 140, 141, 104, 160, 83, 137, 142, 23, 226, 23, + 227, 23, 202, 23, 195, 67, 195, 25, 31, 33, + 69, 71, 184, 194, 111, 23, 213, 214, 111, 248, + 41, 42, 82, 209, 210, 23, 253, 29, 193, 35, + 54, 197, 111, 23, 169, 23, 167, 169, 110, 233, + 112, 104, 158, 145, 146, 234, 142, 116, 110, 111, + 249, 109, 109, 112, 112, 112, 112, 112, 23, 216, + 23, 215, 112, 77, 78, 79, 80, 198, 23, 211, + 112, 112, 112, 109, 117, 113, 114, 154, 109, 23, + 147, 255, 109, 62, 73, 177, 180, 181, 182, 219, + 220, 223, 228, 23, 252, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 138, 142, 57, + 26, 40, 60, 72, 186, 194, 246, 112, 112, 112, + 233, 23, 155, 23, 156, 146, 142, 34, 46, 206, + 208, 109, 117, 112, 32, 187, 191, 194, 109, 117, + 109, 109, 111, 111, 66, 207, 180, 233, 146, 137, + 221, 226, 224, 227, 111, 117, 109, 109, 112, 106, + 112, 106, 211, 146, 138, 226, 227, 106, 211, 112 }; #define yyerrok (yyerrstatus = 0) @@ -2101,7 +2104,7 @@ yyreduce: case 3: /* Line 1455 of yacc.c */ -#line 269 "program_parse.y" +#line 270 "program_parse.y" { if (state->prog->Target != GL_VERTEX_PROGRAM_ARB) { yyerror(& (yylsp[(1) - (1)]), state, "invalid fragment program header"); @@ -2114,7 +2117,7 @@ yyreduce: case 4: /* Line 1455 of yacc.c */ -#line 277 "program_parse.y" +#line 278 "program_parse.y" { if (state->prog->Target != GL_FRAGMENT_PROGRAM_ARB) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex program header"); @@ -2129,7 +2132,7 @@ yyreduce: case 7: /* Line 1455 of yacc.c */ -#line 293 "program_parse.y" +#line 294 "program_parse.y" { int valid = 0; @@ -2154,7 +2157,7 @@ yyreduce: case 10: /* Line 1455 of yacc.c */ -#line 319 "program_parse.y" +#line 320 "program_parse.y" { if ((yyvsp[(1) - (2)].inst) != NULL) { if (state->inst_tail == NULL) { @@ -2174,7 +2177,7 @@ yyreduce: case 12: /* Line 1455 of yacc.c */ -#line 337 "program_parse.y" +#line 338 "program_parse.y" { (yyval.inst) = (yyvsp[(1) - (1)].inst); state->prog->NumAluInstructions++; @@ -2184,7 +2187,7 @@ yyreduce: case 13: /* Line 1455 of yacc.c */ -#line 342 "program_parse.y" +#line 343 "program_parse.y" { (yyval.inst) = (yyvsp[(1) - (1)].inst); state->prog->NumTexInstructions++; @@ -2194,7 +2197,7 @@ yyreduce: case 24: /* Line 1455 of yacc.c */ -#line 363 "program_parse.y" +#line 364 "program_parse.y" { (yyval.inst) = asm_instruction_ctor(OPCODE_ARL, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} @@ -2203,7 +2206,7 @@ yyreduce: case 25: /* Line 1455 of yacc.c */ -#line 369 "program_parse.y" +#line 370 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (4)].temp_inst), & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} @@ -2212,7 +2215,7 @@ yyreduce: case 26: /* Line 1455 of yacc.c */ -#line 375 "program_parse.y" +#line 376 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (4)].temp_inst), & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} @@ -2221,7 +2224,7 @@ yyreduce: case 27: /* Line 1455 of yacc.c */ -#line 381 "program_parse.y" +#line 382 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); ;} @@ -2230,7 +2233,7 @@ yyreduce: case 28: /* Line 1455 of yacc.c */ -#line 388 "program_parse.y" +#line 389 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); ;} @@ -2239,7 +2242,7 @@ yyreduce: case 29: /* Line 1455 of yacc.c */ -#line 395 "program_parse.y" +#line 396 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (8)].temp_inst), & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), & (yyvsp[(6) - (8)].src_reg), & (yyvsp[(8) - (8)].src_reg)); ;} @@ -2248,7 +2251,7 @@ yyreduce: case 30: /* Line 1455 of yacc.c */ -#line 401 "program_parse.y" +#line 402 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (8)].temp_inst), & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), NULL, NULL); if ((yyval.inst) != NULL) { @@ -2295,7 +2298,7 @@ yyreduce: case 31: /* Line 1455 of yacc.c */ -#line 445 "program_parse.y" +#line 446 "program_parse.y" { (yyval.inst) = asm_instruction_ctor(OPCODE_KIL, NULL, & (yyvsp[(2) - (2)].src_reg), NULL, NULL); state->fragment.UsesKill = 1; @@ -2305,7 +2308,7 @@ yyreduce: case 32: /* Line 1455 of yacc.c */ -#line 452 "program_parse.y" +#line 453 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (12)].temp_inst), & (yyvsp[(2) - (12)].dst_reg), & (yyvsp[(4) - (12)].src_reg), & (yyvsp[(6) - (12)].src_reg), & (yyvsp[(8) - (12)].src_reg)); if ((yyval.inst) != NULL) { @@ -2352,7 +2355,7 @@ yyreduce: case 33: /* Line 1455 of yacc.c */ -#line 496 "program_parse.y" +#line 497 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} @@ -2361,91 +2364,91 @@ yyreduce: case 34: /* Line 1455 of yacc.c */ -#line 501 "program_parse.y" +#line 502 "program_parse.y" { (yyval.integer) = TEXTURE_1D_INDEX; ;} break; case 35: /* Line 1455 of yacc.c */ -#line 502 "program_parse.y" +#line 503 "program_parse.y" { (yyval.integer) = TEXTURE_2D_INDEX; ;} break; case 36: /* Line 1455 of yacc.c */ -#line 503 "program_parse.y" +#line 504 "program_parse.y" { (yyval.integer) = TEXTURE_3D_INDEX; ;} break; case 37: /* Line 1455 of yacc.c */ -#line 504 "program_parse.y" +#line 505 "program_parse.y" { (yyval.integer) = TEXTURE_CUBE_INDEX; ;} break; case 38: /* Line 1455 of yacc.c */ -#line 505 "program_parse.y" +#line 506 "program_parse.y" { (yyval.integer) = TEXTURE_RECT_INDEX; ;} break; case 39: /* Line 1455 of yacc.c */ -#line 506 "program_parse.y" +#line 507 "program_parse.y" { (yyval.integer) = -TEXTURE_1D_INDEX; ;} break; case 40: /* Line 1455 of yacc.c */ -#line 507 "program_parse.y" +#line 508 "program_parse.y" { (yyval.integer) = -TEXTURE_2D_INDEX; ;} break; case 41: /* Line 1455 of yacc.c */ -#line 508 "program_parse.y" +#line 509 "program_parse.y" { (yyval.integer) = -TEXTURE_RECT_INDEX; ;} break; case 42: /* Line 1455 of yacc.c */ -#line 509 "program_parse.y" +#line 510 "program_parse.y" { (yyval.integer) = TEXTURE_1D_ARRAY_INDEX; ;} break; case 43: /* Line 1455 of yacc.c */ -#line 510 "program_parse.y" +#line 511 "program_parse.y" { (yyval.integer) = TEXTURE_2D_ARRAY_INDEX; ;} break; case 44: /* Line 1455 of yacc.c */ -#line 511 "program_parse.y" +#line 512 "program_parse.y" { (yyval.integer) = -TEXTURE_1D_ARRAY_INDEX; ;} break; case 45: /* Line 1455 of yacc.c */ -#line 512 "program_parse.y" +#line 513 "program_parse.y" { (yyval.integer) = -TEXTURE_2D_ARRAY_INDEX; ;} break; case 46: /* Line 1455 of yacc.c */ -#line 516 "program_parse.y" +#line 517 "program_parse.y" { /* FIXME: Is this correct? Should the extenedSwizzle be applied * FIXME: to the existing swizzle? @@ -2460,7 +2463,7 @@ yyreduce: case 47: /* Line 1455 of yacc.c */ -#line 528 "program_parse.y" +#line 529 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (2)].src_reg); @@ -2473,7 +2476,7 @@ yyreduce: case 48: /* Line 1455 of yacc.c */ -#line 536 "program_parse.y" +#line 537 "program_parse.y" { (yyval.src_reg) = (yyvsp[(3) - (4)].src_reg); @@ -2493,7 +2496,7 @@ yyreduce: case 49: /* Line 1455 of yacc.c */ -#line 553 "program_parse.y" +#line 554 "program_parse.y" { (yyval.src_reg) = (yyvsp[(1) - (2)].src_reg); @@ -2505,7 +2508,7 @@ yyreduce: case 50: /* Line 1455 of yacc.c */ -#line 560 "program_parse.y" +#line 561 "program_parse.y" { struct asm_symbol temp_sym; @@ -2527,7 +2530,7 @@ yyreduce: case 51: /* Line 1455 of yacc.c */ -#line 579 "program_parse.y" +#line 580 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (3)].src_reg); @@ -2543,7 +2546,7 @@ yyreduce: case 52: /* Line 1455 of yacc.c */ -#line 590 "program_parse.y" +#line 591 "program_parse.y" { (yyval.src_reg) = (yyvsp[(3) - (5)].src_reg); @@ -2565,7 +2568,7 @@ yyreduce: case 53: /* Line 1455 of yacc.c */ -#line 610 "program_parse.y" +#line 611 "program_parse.y" { (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg); (yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask; @@ -2590,7 +2593,7 @@ yyreduce: case 54: /* Line 1455 of yacc.c */ -#line 632 "program_parse.y" +#line 633 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_ADDRESS; @@ -2602,7 +2605,7 @@ yyreduce: case 55: /* Line 1455 of yacc.c */ -#line 641 "program_parse.y" +#line 642 "program_parse.y" { const unsigned xyzw_valid = ((yyvsp[(1) - (7)].ext_swizzle).xyzw_valid << 0) @@ -2638,7 +2641,7 @@ yyreduce: case 56: /* Line 1455 of yacc.c */ -#line 674 "program_parse.y" +#line 675 "program_parse.y" { (yyval.ext_swizzle) = (yyvsp[(2) - (2)].ext_swizzle); (yyval.ext_swizzle).negate = ((yyvsp[(1) - (2)].negate)) ? 1 : 0; @@ -2648,7 +2651,7 @@ yyreduce: case 57: /* Line 1455 of yacc.c */ -#line 681 "program_parse.y" +#line 682 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2668,7 +2671,7 @@ yyreduce: case 58: /* Line 1455 of yacc.c */ -#line 696 "program_parse.y" +#line 697 "program_parse.y" { if (strlen((yyvsp[(1) - (1)].string)) > 1) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2721,7 +2724,7 @@ yyreduce: case 59: /* Line 1455 of yacc.c */ -#line 746 "program_parse.y" +#line 747 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2768,7 +2771,7 @@ yyreduce: case 60: /* Line 1455 of yacc.c */ -#line 788 "program_parse.y" +#line 789 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = PROGRAM_INPUT; @@ -2784,7 +2787,7 @@ yyreduce: case 61: /* Line 1455 of yacc.c */ -#line 799 "program_parse.y" +#line 800 "program_parse.y" { if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr && ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) { @@ -2810,7 +2813,7 @@ yyreduce: case 62: /* Line 1455 of yacc.c */ -#line 820 "program_parse.y" +#line 821 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL) @@ -2823,7 +2826,7 @@ yyreduce: case 63: /* Line 1455 of yacc.c */ -#line 830 "program_parse.y" +#line 831 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_OUTPUT; @@ -2834,7 +2837,7 @@ yyreduce: case 64: /* Line 1455 of yacc.c */ -#line 836 "program_parse.y" +#line 837 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2868,7 +2871,7 @@ yyreduce: case 65: /* Line 1455 of yacc.c */ -#line 867 "program_parse.y" +#line 868 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2888,7 +2891,7 @@ yyreduce: case 68: /* Line 1455 of yacc.c */ -#line 886 "program_parse.y" +#line 887 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer); @@ -2898,7 +2901,7 @@ yyreduce: case 69: /* Line 1455 of yacc.c */ -#line 893 "program_parse.y" +#line 894 "program_parse.y" { /* FINISHME: Add support for multiple address registers. */ @@ -2913,28 +2916,28 @@ yyreduce: case 70: /* Line 1455 of yacc.c */ -#line 904 "program_parse.y" +#line 905 "program_parse.y" { (yyval.integer) = 0; ;} break; case 71: /* Line 1455 of yacc.c */ -#line 905 "program_parse.y" +#line 906 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; case 72: /* Line 1455 of yacc.c */ -#line 906 "program_parse.y" +#line 907 "program_parse.y" { (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;} break; case 73: /* Line 1455 of yacc.c */ -#line 910 "program_parse.y" +#line 911 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2949,7 +2952,7 @@ yyreduce: case 74: /* Line 1455 of yacc.c */ -#line 922 "program_parse.y" +#line 923 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2964,7 +2967,7 @@ yyreduce: case 75: /* Line 1455 of yacc.c */ -#line 934 "program_parse.y" +#line 935 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2985,7 +2988,7 @@ yyreduce: case 76: /* Line 1455 of yacc.c */ -#line 952 "program_parse.y" +#line 953 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector"); @@ -2999,7 +3002,7 @@ yyreduce: case 77: /* Line 1455 of yacc.c */ -#line 963 "program_parse.y" +#line 964 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, @@ -3014,21 +3017,21 @@ yyreduce: case 82: /* Line 1455 of yacc.c */ -#line 979 "program_parse.y" +#line 980 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; case 87: /* Line 1455 of yacc.c */ -#line 983 "program_parse.y" +#line 984 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; case 94: /* Line 1455 of yacc.c */ -#line 995 "program_parse.y" +#line 996 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)])); @@ -3049,7 +3052,7 @@ yyreduce: case 95: /* Line 1455 of yacc.c */ -#line 1013 "program_parse.y" +#line 1014 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} @@ -3058,7 +3061,7 @@ yyreduce: case 96: /* Line 1455 of yacc.c */ -#line 1017 "program_parse.y" +#line 1018 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} @@ -3067,7 +3070,7 @@ yyreduce: case 97: /* Line 1455 of yacc.c */ -#line 1023 "program_parse.y" +#line 1024 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_POS; ;} @@ -3076,7 +3079,7 @@ yyreduce: case 98: /* Line 1455 of yacc.c */ -#line 1027 "program_parse.y" +#line 1028 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_WEIGHT; ;} @@ -3085,7 +3088,7 @@ yyreduce: case 99: /* Line 1455 of yacc.c */ -#line 1031 "program_parse.y" +#line 1032 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_NORMAL; ;} @@ -3094,7 +3097,7 @@ yyreduce: case 100: /* Line 1455 of yacc.c */ -#line 1035 "program_parse.y" +#line 1036 "program_parse.y" { if (!state->ctx->Extensions.EXT_secondary_color) { yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported"); @@ -3108,7 +3111,7 @@ yyreduce: case 101: /* Line 1455 of yacc.c */ -#line 1044 "program_parse.y" +#line 1045 "program_parse.y" { if (!state->ctx->Extensions.EXT_fog_coord) { yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported"); @@ -3122,7 +3125,7 @@ yyreduce: case 102: /* Line 1455 of yacc.c */ -#line 1053 "program_parse.y" +#line 1054 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} @@ -3131,7 +3134,7 @@ yyreduce: case 103: /* Line 1455 of yacc.c */ -#line 1057 "program_parse.y" +#line 1058 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; @@ -3141,7 +3144,7 @@ yyreduce: case 104: /* Line 1455 of yacc.c */ -#line 1062 "program_parse.y" +#line 1063 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer); ;} @@ -3150,7 +3153,7 @@ yyreduce: case 105: /* Line 1455 of yacc.c */ -#line 1068 "program_parse.y" +#line 1069 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference"); @@ -3164,7 +3167,7 @@ yyreduce: case 109: /* Line 1455 of yacc.c */ -#line 1082 "program_parse.y" +#line 1083 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_WPOS; ;} @@ -3173,7 +3176,7 @@ yyreduce: case 110: /* Line 1455 of yacc.c */ -#line 1086 "program_parse.y" +#line 1087 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer); ;} @@ -3182,7 +3185,7 @@ yyreduce: case 111: /* Line 1455 of yacc.c */ -#line 1090 "program_parse.y" +#line 1091 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_FOGC; ;} @@ -3191,7 +3194,7 @@ yyreduce: case 112: /* Line 1455 of yacc.c */ -#line 1094 "program_parse.y" +#line 1095 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} @@ -3200,7 +3203,7 @@ yyreduce: case 115: /* Line 1455 of yacc.c */ -#line 1102 "program_parse.y" +#line 1103 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)])); @@ -3219,7 +3222,7 @@ yyreduce: case 116: /* Line 1455 of yacc.c */ -#line 1118 "program_parse.y" +#line 1119 "program_parse.y" { if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) { yyerror(& (yylsp[(4) - (6)]), state, @@ -3244,7 +3247,7 @@ yyreduce: case 117: /* Line 1455 of yacc.c */ -#line 1140 "program_parse.y" +#line 1141 "program_parse.y" { (yyval.integer) = 0; ;} @@ -3253,7 +3256,7 @@ yyreduce: case 118: /* Line 1455 of yacc.c */ -#line 1144 "program_parse.y" +#line 1145 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size"); @@ -3267,7 +3270,7 @@ yyreduce: case 119: /* Line 1455 of yacc.c */ -#line 1155 "program_parse.y" +#line 1156 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym); ;} @@ -3276,7 +3279,7 @@ yyreduce: case 120: /* Line 1455 of yacc.c */ -#line 1161 "program_parse.y" +#line 1162 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym); ;} @@ -3285,7 +3288,7 @@ yyreduce: case 122: /* Line 1455 of yacc.c */ -#line 1168 "program_parse.y" +#line 1169 "program_parse.y" { (yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length; (yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym); @@ -3295,7 +3298,7 @@ yyreduce: case 123: /* Line 1455 of yacc.c */ -#line 1175 "program_parse.y" +#line 1176 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3306,7 +3309,7 @@ yyreduce: case 124: /* Line 1455 of yacc.c */ -#line 1181 "program_parse.y" +#line 1182 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3317,7 +3320,7 @@ yyreduce: case 125: /* Line 1455 of yacc.c */ -#line 1187 "program_parse.y" +#line 1188 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3328,7 +3331,7 @@ yyreduce: case 126: /* Line 1455 of yacc.c */ -#line 1195 "program_parse.y" +#line 1196 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3339,7 +3342,7 @@ yyreduce: case 127: /* Line 1455 of yacc.c */ -#line 1201 "program_parse.y" +#line 1202 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3350,7 +3353,7 @@ yyreduce: case 128: /* Line 1455 of yacc.c */ -#line 1207 "program_parse.y" +#line 1208 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3361,7 +3364,7 @@ yyreduce: case 129: /* Line 1455 of yacc.c */ -#line 1215 "program_parse.y" +#line 1216 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3372,7 +3375,7 @@ yyreduce: case 130: /* Line 1455 of yacc.c */ -#line 1221 "program_parse.y" +#line 1222 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3383,7 +3386,7 @@ yyreduce: case 131: /* Line 1455 of yacc.c */ -#line 1227 "program_parse.y" +#line 1228 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3394,98 +3397,98 @@ yyreduce: case 132: /* Line 1455 of yacc.c */ -#line 1234 "program_parse.y" +#line 1235 "program_parse.y" { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;} break; case 133: /* Line 1455 of yacc.c */ -#line 1235 "program_parse.y" +#line 1236 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 134: /* Line 1455 of yacc.c */ -#line 1238 "program_parse.y" +#line 1239 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 135: /* Line 1455 of yacc.c */ -#line 1239 "program_parse.y" +#line 1240 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 136: /* Line 1455 of yacc.c */ -#line 1240 "program_parse.y" +#line 1241 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 137: /* Line 1455 of yacc.c */ -#line 1241 "program_parse.y" +#line 1242 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 138: /* Line 1455 of yacc.c */ -#line 1242 "program_parse.y" +#line 1243 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 139: /* Line 1455 of yacc.c */ -#line 1243 "program_parse.y" +#line 1244 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 140: /* Line 1455 of yacc.c */ -#line 1244 "program_parse.y" +#line 1245 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 141: /* Line 1455 of yacc.c */ -#line 1245 "program_parse.y" +#line 1246 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 142: /* Line 1455 of yacc.c */ -#line 1246 "program_parse.y" +#line 1247 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 143: /* Line 1455 of yacc.c */ -#line 1247 "program_parse.y" +#line 1248 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 144: /* Line 1455 of yacc.c */ -#line 1248 "program_parse.y" +#line 1249 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; case 145: /* Line 1455 of yacc.c */ -#line 1252 "program_parse.y" +#line 1253 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_MATERIAL; @@ -3497,7 +3500,7 @@ yyreduce: case 146: /* Line 1455 of yacc.c */ -#line 1261 "program_parse.y" +#line 1262 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} @@ -3506,7 +3509,7 @@ yyreduce: case 147: /* Line 1455 of yacc.c */ -#line 1265 "program_parse.y" +#line 1266 "program_parse.y" { (yyval.integer) = STATE_EMISSION; ;} @@ -3515,7 +3518,7 @@ yyreduce: case 148: /* Line 1455 of yacc.c */ -#line 1269 "program_parse.y" +#line 1270 "program_parse.y" { (yyval.integer) = STATE_SHININESS; ;} @@ -3524,7 +3527,7 @@ yyreduce: case 149: /* Line 1455 of yacc.c */ -#line 1275 "program_parse.y" +#line 1276 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHT; @@ -3536,7 +3539,7 @@ yyreduce: case 150: /* Line 1455 of yacc.c */ -#line 1284 "program_parse.y" +#line 1285 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} @@ -3545,7 +3548,7 @@ yyreduce: case 151: /* Line 1455 of yacc.c */ -#line 1288 "program_parse.y" +#line 1289 "program_parse.y" { (yyval.integer) = STATE_POSITION; ;} @@ -3554,7 +3557,7 @@ yyreduce: case 152: /* Line 1455 of yacc.c */ -#line 1292 "program_parse.y" +#line 1293 "program_parse.y" { if (!state->ctx->Extensions.EXT_point_parameters) { yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported"); @@ -3568,7 +3571,7 @@ yyreduce: case 153: /* Line 1455 of yacc.c */ -#line 1301 "program_parse.y" +#line 1302 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} @@ -3577,7 +3580,7 @@ yyreduce: case 154: /* Line 1455 of yacc.c */ -#line 1305 "program_parse.y" +#line 1306 "program_parse.y" { (yyval.integer) = STATE_HALF_VECTOR; ;} @@ -3586,7 +3589,7 @@ yyreduce: case 155: /* Line 1455 of yacc.c */ -#line 1311 "program_parse.y" +#line 1312 "program_parse.y" { (yyval.integer) = STATE_SPOT_DIRECTION; ;} @@ -3595,7 +3598,7 @@ yyreduce: case 156: /* Line 1455 of yacc.c */ -#line 1317 "program_parse.y" +#line 1318 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (2)].state)[1]; @@ -3605,7 +3608,7 @@ yyreduce: case 157: /* Line 1455 of yacc.c */ -#line 1324 "program_parse.y" +#line 1325 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT; @@ -3615,7 +3618,7 @@ yyreduce: case 158: /* Line 1455 of yacc.c */ -#line 1329 "program_parse.y" +#line 1330 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR; @@ -3626,7 +3629,7 @@ yyreduce: case 159: /* Line 1455 of yacc.c */ -#line 1337 "program_parse.y" +#line 1338 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTPROD; @@ -3639,7 +3642,7 @@ yyreduce: case 161: /* Line 1455 of yacc.c */ -#line 1349 "program_parse.y" +#line 1350 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(3) - (3)].integer); @@ -3650,7 +3653,7 @@ yyreduce: case 162: /* Line 1455 of yacc.c */ -#line 1357 "program_parse.y" +#line 1358 "program_parse.y" { (yyval.integer) = STATE_TEXENV_COLOR; ;} @@ -3659,7 +3662,7 @@ yyreduce: case 163: /* Line 1455 of yacc.c */ -#line 1363 "program_parse.y" +#line 1364 "program_parse.y" { (yyval.integer) = STATE_AMBIENT; ;} @@ -3668,7 +3671,7 @@ yyreduce: case 164: /* Line 1455 of yacc.c */ -#line 1367 "program_parse.y" +#line 1368 "program_parse.y" { (yyval.integer) = STATE_DIFFUSE; ;} @@ -3677,7 +3680,7 @@ yyreduce: case 165: /* Line 1455 of yacc.c */ -#line 1371 "program_parse.y" +#line 1372 "program_parse.y" { (yyval.integer) = STATE_SPECULAR; ;} @@ -3686,7 +3689,7 @@ yyreduce: case 166: /* Line 1455 of yacc.c */ -#line 1377 "program_parse.y" +#line 1378 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) { yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector"); @@ -3700,7 +3703,7 @@ yyreduce: case 167: /* Line 1455 of yacc.c */ -#line 1388 "program_parse.y" +#line 1389 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_TEXGEN; @@ -3712,7 +3715,7 @@ yyreduce: case 168: /* Line 1455 of yacc.c */ -#line 1397 "program_parse.y" +#line 1398 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S; ;} @@ -3721,7 +3724,7 @@ yyreduce: case 169: /* Line 1455 of yacc.c */ -#line 1401 "program_parse.y" +#line 1402 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_OBJECT_S; ;} @@ -3730,7 +3733,7 @@ yyreduce: case 170: /* Line 1455 of yacc.c */ -#line 1406 "program_parse.y" +#line 1407 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S; ;} @@ -3739,7 +3742,7 @@ yyreduce: case 171: /* Line 1455 of yacc.c */ -#line 1410 "program_parse.y" +#line 1411 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S; ;} @@ -3748,7 +3751,7 @@ yyreduce: case 172: /* Line 1455 of yacc.c */ -#line 1414 "program_parse.y" +#line 1415 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S; ;} @@ -3757,7 +3760,7 @@ yyreduce: case 173: /* Line 1455 of yacc.c */ -#line 1418 "program_parse.y" +#line 1419 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S; ;} @@ -3766,7 +3769,7 @@ yyreduce: case 174: /* Line 1455 of yacc.c */ -#line 1424 "program_parse.y" +#line 1425 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); @@ -3776,7 +3779,7 @@ yyreduce: case 175: /* Line 1455 of yacc.c */ -#line 1431 "program_parse.y" +#line 1432 "program_parse.y" { (yyval.integer) = STATE_FOG_COLOR; ;} @@ -3785,7 +3788,7 @@ yyreduce: case 176: /* Line 1455 of yacc.c */ -#line 1435 "program_parse.y" +#line 1436 "program_parse.y" { (yyval.integer) = STATE_FOG_PARAMS; ;} @@ -3794,7 +3797,7 @@ yyreduce: case 177: /* Line 1455 of yacc.c */ -#line 1441 "program_parse.y" +#line 1442 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_CLIPPLANE; @@ -3805,7 +3808,7 @@ yyreduce: case 178: /* Line 1455 of yacc.c */ -#line 1449 "program_parse.y" +#line 1450 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) { yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector"); @@ -3819,7 +3822,7 @@ yyreduce: case 179: /* Line 1455 of yacc.c */ -#line 1460 "program_parse.y" +#line 1461 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); @@ -3829,7 +3832,7 @@ yyreduce: case 180: /* Line 1455 of yacc.c */ -#line 1467 "program_parse.y" +#line 1468 "program_parse.y" { (yyval.integer) = STATE_POINT_SIZE; ;} @@ -3838,7 +3841,7 @@ yyreduce: case 181: /* Line 1455 of yacc.c */ -#line 1471 "program_parse.y" +#line 1472 "program_parse.y" { (yyval.integer) = STATE_POINT_ATTENUATION; ;} @@ -3847,7 +3850,7 @@ yyreduce: case 182: /* Line 1455 of yacc.c */ -#line 1477 "program_parse.y" +#line 1478 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (5)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (5)].state)[1]; @@ -3860,7 +3863,7 @@ yyreduce: case 183: /* Line 1455 of yacc.c */ -#line 1487 "program_parse.y" +#line 1488 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (2)].state)[1]; @@ -3873,7 +3876,7 @@ yyreduce: case 184: /* Line 1455 of yacc.c */ -#line 1497 "program_parse.y" +#line 1498 "program_parse.y" { (yyval.state)[2] = 0; (yyval.state)[3] = 3; @@ -3883,7 +3886,7 @@ yyreduce: case 185: /* Line 1455 of yacc.c */ -#line 1502 "program_parse.y" +#line 1503 "program_parse.y" { /* It seems logical that the matrix row range specifier would have * to specify a range or more than one row (i.e., $5 > $3). @@ -3904,7 +3907,7 @@ yyreduce: case 186: /* Line 1455 of yacc.c */ -#line 1520 "program_parse.y" +#line 1521 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (3)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (3)].state)[1]; @@ -3915,7 +3918,7 @@ yyreduce: case 187: /* Line 1455 of yacc.c */ -#line 1528 "program_parse.y" +#line 1529 "program_parse.y" { (yyval.integer) = 0; ;} @@ -3924,7 +3927,7 @@ yyreduce: case 188: /* Line 1455 of yacc.c */ -#line 1532 "program_parse.y" +#line 1533 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} @@ -3933,7 +3936,7 @@ yyreduce: case 189: /* Line 1455 of yacc.c */ -#line 1538 "program_parse.y" +#line 1539 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVERSE; ;} @@ -3942,7 +3945,7 @@ yyreduce: case 190: /* Line 1455 of yacc.c */ -#line 1542 "program_parse.y" +#line 1543 "program_parse.y" { (yyval.integer) = STATE_MATRIX_TRANSPOSE; ;} @@ -3951,7 +3954,7 @@ yyreduce: case 191: /* Line 1455 of yacc.c */ -#line 1546 "program_parse.y" +#line 1547 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVTRANS; ;} @@ -3960,7 +3963,7 @@ yyreduce: case 192: /* Line 1455 of yacc.c */ -#line 1552 "program_parse.y" +#line 1553 "program_parse.y" { if ((yyvsp[(1) - (1)].integer) > 3) { yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference"); @@ -3974,7 +3977,7 @@ yyreduce: case 193: /* Line 1455 of yacc.c */ -#line 1563 "program_parse.y" +#line 1564 "program_parse.y" { (yyval.state)[0] = STATE_MODELVIEW_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); @@ -3984,7 +3987,7 @@ yyreduce: case 194: /* Line 1455 of yacc.c */ -#line 1568 "program_parse.y" +#line 1569 "program_parse.y" { (yyval.state)[0] = STATE_PROJECTION_MATRIX; (yyval.state)[1] = 0; @@ -3994,7 +3997,7 @@ yyreduce: case 195: /* Line 1455 of yacc.c */ -#line 1573 "program_parse.y" +#line 1574 "program_parse.y" { (yyval.state)[0] = STATE_MVP_MATRIX; (yyval.state)[1] = 0; @@ -4004,7 +4007,7 @@ yyreduce: case 196: /* Line 1455 of yacc.c */ -#line 1578 "program_parse.y" +#line 1579 "program_parse.y" { (yyval.state)[0] = STATE_TEXTURE_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); @@ -4014,7 +4017,7 @@ yyreduce: case 197: /* Line 1455 of yacc.c */ -#line 1583 "program_parse.y" +#line 1584 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; @@ -4024,7 +4027,7 @@ yyreduce: case 198: /* Line 1455 of yacc.c */ -#line 1588 "program_parse.y" +#line 1589 "program_parse.y" { (yyval.state)[0] = STATE_PROGRAM_MATRIX; (yyval.state)[1] = (yyvsp[(3) - (4)].integer); @@ -4034,7 +4037,7 @@ yyreduce: case 199: /* Line 1455 of yacc.c */ -#line 1595 "program_parse.y" +#line 1596 "program_parse.y" { (yyval.integer) = 0; ;} @@ -4043,7 +4046,7 @@ yyreduce: case 200: /* Line 1455 of yacc.c */ -#line 1599 "program_parse.y" +#line 1600 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} @@ -4052,7 +4055,7 @@ yyreduce: case 201: /* Line 1455 of yacc.c */ -#line 1604 "program_parse.y" +#line 1605 "program_parse.y" { /* Since GL_ARB_vertex_blend isn't supported, only modelview matrix * zero is valid. @@ -4069,7 +4072,7 @@ yyreduce: case 202: /* Line 1455 of yacc.c */ -#line 1617 "program_parse.y" +#line 1618 "program_parse.y" { /* Since GL_ARB_matrix_palette isn't supported, just let any value * through here. The error will be generated later. @@ -4081,7 +4084,7 @@ yyreduce: case 203: /* Line 1455 of yacc.c */ -#line 1625 "program_parse.y" +#line 1626 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) { yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector"); @@ -4095,7 +4098,7 @@ yyreduce: case 204: /* Line 1455 of yacc.c */ -#line 1636 "program_parse.y" +#line 1637 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_DEPTH_RANGE; @@ -4105,7 +4108,7 @@ yyreduce: case 209: /* Line 1455 of yacc.c */ -#line 1648 "program_parse.y" +#line 1649 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4118,7 +4121,7 @@ yyreduce: case 210: /* Line 1455 of yacc.c */ -#line 1658 "program_parse.y" +#line 1659 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); @@ -4128,7 +4131,7 @@ yyreduce: case 211: /* Line 1455 of yacc.c */ -#line 1663 "program_parse.y" +#line 1664 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); @@ -4138,7 +4141,7 @@ yyreduce: case 212: /* Line 1455 of yacc.c */ -#line 1670 "program_parse.y" +#line 1671 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4151,7 +4154,7 @@ yyreduce: case 213: /* Line 1455 of yacc.c */ -#line 1680 "program_parse.y" +#line 1681 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4164,7 +4167,7 @@ yyreduce: case 214: /* Line 1455 of yacc.c */ -#line 1689 "program_parse.y" +#line 1690 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); @@ -4174,7 +4177,7 @@ yyreduce: case 215: /* Line 1455 of yacc.c */ -#line 1694 "program_parse.y" +#line 1695 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); @@ -4184,7 +4187,7 @@ yyreduce: case 216: /* Line 1455 of yacc.c */ -#line 1701 "program_parse.y" +#line 1702 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4197,7 +4200,7 @@ yyreduce: case 217: /* Line 1455 of yacc.c */ -#line 1711 "program_parse.y" +#line 1712 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference"); @@ -4210,7 +4213,7 @@ yyreduce: case 218: /* Line 1455 of yacc.c */ -#line 1721 "program_parse.y" +#line 1722 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference"); @@ -4223,7 +4226,7 @@ yyreduce: case 223: /* Line 1455 of yacc.c */ -#line 1736 "program_parse.y" +#line 1737 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4236,7 +4239,7 @@ yyreduce: case 224: /* Line 1455 of yacc.c */ -#line 1746 "program_parse.y" +#line 1747 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4249,7 +4252,7 @@ yyreduce: case 225: /* Line 1455 of yacc.c */ -#line 1754 "program_parse.y" +#line 1755 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer); @@ -4262,7 +4265,7 @@ yyreduce: case 226: /* Line 1455 of yacc.c */ -#line 1764 "program_parse.y" +#line 1765 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (3)].real); @@ -4275,7 +4278,7 @@ yyreduce: case 227: /* Line 1455 of yacc.c */ -#line 1772 "program_parse.y" +#line 1773 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (5)].real); @@ -4288,7 +4291,7 @@ yyreduce: case 228: /* Line 1455 of yacc.c */ -#line 1781 "program_parse.y" +#line 1782 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (7)].real); @@ -4301,7 +4304,7 @@ yyreduce: case 229: /* Line 1455 of yacc.c */ -#line 1790 "program_parse.y" +#line 1791 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (9)].real); @@ -4314,7 +4317,7 @@ yyreduce: case 230: /* Line 1455 of yacc.c */ -#line 1800 "program_parse.y" +#line 1801 "program_parse.y" { (yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real); ;} @@ -4323,7 +4326,7 @@ yyreduce: case 231: /* Line 1455 of yacc.c */ -#line 1804 "program_parse.y" +#line 1805 "program_parse.y" { (yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer)); ;} @@ -4332,35 +4335,35 @@ yyreduce: case 232: /* Line 1455 of yacc.c */ -#line 1809 "program_parse.y" +#line 1810 "program_parse.y" { (yyval.negate) = FALSE; ;} break; case 233: /* Line 1455 of yacc.c */ -#line 1810 "program_parse.y" +#line 1811 "program_parse.y" { (yyval.negate) = TRUE; ;} break; case 234: /* Line 1455 of yacc.c */ -#line 1811 "program_parse.y" +#line 1812 "program_parse.y" { (yyval.negate) = FALSE; ;} break; case 235: /* Line 1455 of yacc.c */ -#line 1814 "program_parse.y" +#line 1815 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; case 237: /* Line 1455 of yacc.c */ -#line 1818 "program_parse.y" +#line 1819 "program_parse.y" { /* NV_fragment_program_option defines the size qualifiers in a * fairly broken way. "SHORT" or "LONG" can optionally be used @@ -4399,7 +4402,7 @@ yyreduce: case 238: /* Line 1455 of yacc.c */ -#line 1852 "program_parse.y" +#line 1853 "program_parse.y" { ;} break; @@ -4407,14 +4410,14 @@ yyreduce: case 239: /* Line 1455 of yacc.c */ -#line 1856 "program_parse.y" +#line 1857 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; case 241: /* Line 1455 of yacc.c */ -#line 1860 "program_parse.y" +#line 1861 "program_parse.y" { if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) { YYERROR; @@ -4425,7 +4428,7 @@ yyreduce: case 242: /* Line 1455 of yacc.c */ -#line 1866 "program_parse.y" +#line 1867 "program_parse.y" { if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) { YYERROR; @@ -4436,7 +4439,7 @@ yyreduce: case 243: /* Line 1455 of yacc.c */ -#line 1874 "program_parse.y" +#line 1875 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(3) - (5)].string), at_output, & (yylsp[(3) - (5)])); @@ -4452,7 +4455,7 @@ yyreduce: case 244: /* Line 1455 of yacc.c */ -#line 1887 "program_parse.y" +#line 1888 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_HPOS; @@ -4466,7 +4469,7 @@ yyreduce: case 245: /* Line 1455 of yacc.c */ -#line 1896 "program_parse.y" +#line 1897 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_FOGC; @@ -4480,7 +4483,7 @@ yyreduce: case 246: /* Line 1455 of yacc.c */ -#line 1905 "program_parse.y" +#line 1906 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (2)].result); ;} @@ -4489,7 +4492,7 @@ yyreduce: case 247: /* Line 1455 of yacc.c */ -#line 1909 "program_parse.y" +#line 1910 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_PSIZ; @@ -4503,7 +4506,7 @@ yyreduce: case 248: /* Line 1455 of yacc.c */ -#line 1918 "program_parse.y" +#line 1919 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer); @@ -4517,7 +4520,7 @@ yyreduce: case 249: /* Line 1455 of yacc.c */ -#line 1927 "program_parse.y" +#line 1928 "program_parse.y" { if (state->mode == ARB_fragment) { (yyval.result) = FRAG_RESULT_DEPTH; @@ -4531,7 +4534,7 @@ yyreduce: case 250: /* Line 1455 of yacc.c */ -#line 1938 "program_parse.y" +#line 1939 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer); ;} @@ -4540,7 +4543,7 @@ yyreduce: case 251: /* Line 1455 of yacc.c */ -#line 1944 "program_parse.y" +#line 1945 "program_parse.y" { (yyval.integer) = (state->mode == ARB_vertex) ? VERT_RESULT_COL0 @@ -4551,7 +4554,7 @@ yyreduce: case 252: /* Line 1455 of yacc.c */ -#line 1950 "program_parse.y" +#line 1951 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_COL0; @@ -4565,7 +4568,7 @@ yyreduce: case 253: /* Line 1455 of yacc.c */ -#line 1959 "program_parse.y" +#line 1960 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_BFC0; @@ -4579,7 +4582,7 @@ yyreduce: case 254: /* Line 1455 of yacc.c */ -#line 1970 "program_parse.y" +#line 1971 "program_parse.y" { (yyval.integer) = 0; ;} @@ -4588,7 +4591,7 @@ yyreduce: case 255: /* Line 1455 of yacc.c */ -#line 1974 "program_parse.y" +#line 1975 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 0; @@ -4602,7 +4605,7 @@ yyreduce: case 256: /* Line 1455 of yacc.c */ -#line 1983 "program_parse.y" +#line 1984 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 1; @@ -4616,91 +4619,91 @@ yyreduce: case 257: /* Line 1455 of yacc.c */ -#line 1993 "program_parse.y" +#line 1994 "program_parse.y" { (yyval.integer) = 0; ;} break; case 258: /* Line 1455 of yacc.c */ -#line 1994 "program_parse.y" +#line 1995 "program_parse.y" { (yyval.integer) = 0; ;} break; case 259: /* Line 1455 of yacc.c */ -#line 1995 "program_parse.y" +#line 1996 "program_parse.y" { (yyval.integer) = 1; ;} break; case 260: /* Line 1455 of yacc.c */ -#line 1998 "program_parse.y" +#line 1999 "program_parse.y" { (yyval.integer) = 0; ;} break; case 261: /* Line 1455 of yacc.c */ -#line 1999 "program_parse.y" +#line 2000 "program_parse.y" { (yyval.integer) = 0; ;} break; case 262: /* Line 1455 of yacc.c */ -#line 2000 "program_parse.y" +#line 2001 "program_parse.y" { (yyval.integer) = 1; ;} break; case 263: /* Line 1455 of yacc.c */ -#line 2003 "program_parse.y" +#line 2004 "program_parse.y" { (yyval.integer) = 0; ;} break; case 264: /* Line 1455 of yacc.c */ -#line 2004 "program_parse.y" +#line 2005 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; case 265: /* Line 1455 of yacc.c */ -#line 2007 "program_parse.y" +#line 2008 "program_parse.y" { (yyval.integer) = 0; ;} break; case 266: /* Line 1455 of yacc.c */ -#line 2008 "program_parse.y" +#line 2009 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; case 267: /* Line 1455 of yacc.c */ -#line 2011 "program_parse.y" +#line 2012 "program_parse.y" { (yyval.integer) = 0; ;} break; case 268: /* Line 1455 of yacc.c */ -#line 2012 "program_parse.y" +#line 2013 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; case 269: /* Line 1455 of yacc.c */ -#line 2016 "program_parse.y" +#line 2017 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector"); @@ -4714,7 +4717,7 @@ yyreduce: case 270: /* Line 1455 of yacc.c */ -#line 2027 "program_parse.y" +#line 2028 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector"); @@ -4728,7 +4731,7 @@ yyreduce: case 271: /* Line 1455 of yacc.c */ -#line 2038 "program_parse.y" +#line 2039 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector"); @@ -4742,7 +4745,7 @@ yyreduce: case 272: /* Line 1455 of yacc.c */ -#line 2049 "program_parse.y" +#line 2050 "program_parse.y" { struct asm_symbol *exist = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string)); @@ -4766,7 +4769,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 4770 "program_parse.tab.c" +#line 4773 "program_parse.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4985,7 +4988,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 2069 "program_parse.y" +#line 2074 "program_parse.y" void diff --git a/src/mesa/shader/program_parse.tab.h b/src/mesa/shader/program_parse.tab.h index 5f89532d65..c6ed6c777e 100644 --- a/src/mesa/shader/program_parse.tab.h +++ b/src/mesa/shader/program_parse.tab.h @@ -136,13 +136,14 @@ VTXATTRIB = 352, WEIGHT = 353, IDENTIFIER = 354, - MASK4 = 355, - MASK3 = 356, - MASK2 = 357, - MASK1 = 358, - SWIZZLE = 359, - DOT_DOT = 360, - DOT = 361 + USED_IDENTIFIER = 355, + MASK4 = 356, + MASK3 = 357, + MASK2 = 358, + MASK1 = 359, + SWIZZLE = 360, + DOT_DOT = 361, + DOT = 362 }; #endif @@ -182,7 +183,7 @@ typedef union YYSTYPE /* Line 1676 of yacc.c */ -#line 186 "program_parse.tab.h" +#line 187 "program_parse.tab.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index 51cc9f7f11..d6bac07081 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -178,7 +178,8 @@ static struct asm_instruction *asm_instruction_copy_ctor( %token VERTEX VTXATTRIB %token WEIGHT -%token IDENTIFIER +%token IDENTIFIER USED_IDENTIFIER +%type string %token MASK4 MASK3 MASK2 MASK1 SWIZZLE %token DOT_DOT %token DOT @@ -289,7 +290,7 @@ optionSequence: optionSequence option | ; -option: OPTION IDENTIFIER ';' +option: OPTION string ';' { int valid = 0; @@ -692,7 +693,7 @@ extSwizSel: INTEGER $$.xyzw_valid = 1; $$.rgba_valid = 1; } - | IDENTIFIER + | string { if (strlen($1) > 1) { yyerror(& @1, state, "invalid extended swizzle selector"); @@ -742,7 +743,7 @@ extSwizSel: INTEGER } ; -srcReg: IDENTIFIER /* temporaryReg | progParamSingle */ +srcReg: USED_IDENTIFIER /* temporaryReg | progParamSingle */ { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, $1); @@ -832,7 +833,7 @@ dstReg: resultBinding $$.File = PROGRAM_OUTPUT; $$.Index = $1; } - | IDENTIFIER /* temporaryReg | vertexResultReg */ + | USED_IDENTIFIER /* temporaryReg | vertexResultReg */ { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, $1); @@ -863,7 +864,7 @@ dstReg: resultBinding } ; -progParamArray: IDENTIFIER +progParamArray: USED_IDENTIFIER { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, $1); @@ -930,7 +931,7 @@ addrRegNegOffset: INTEGER } ; -addrReg: IDENTIFIER +addrReg: USED_IDENTIFIER { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, $1); @@ -1814,7 +1815,7 @@ optionalSign: '+' { $$ = FALSE; } TEMP_statement: optVarSize TEMP { $$ = $2; } varNameList ; -optVarSize: IDENTIFIER +optVarSize: string { /* NV_fragment_program_option defines the size qualifiers in a * fairly broken way. "SHORT" or "LONG" can optionally be used @@ -2045,7 +2046,7 @@ legacyTexUnitNum: INTEGER } ; -ALIAS_statement: ALIAS IDENTIFIER '=' IDENTIFIER +ALIAS_statement: ALIAS IDENTIFIER '=' USED_IDENTIFIER { struct asm_symbol *exist = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, $2); @@ -2066,6 +2067,10 @@ ALIAS_statement: ALIAS IDENTIFIER '=' IDENTIFIER } ; +string: IDENTIFIER + | USED_IDENTIFIER + ; + %% void -- cgit v1.2.3 From cdb719399438194c5e9d5bc1bae3458398fe4e54 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 10 Sep 2009 14:55:36 -0700 Subject: ARB prog lexer: Add missing #include to silence compile warning --- src/mesa/shader/lex.yy.c | 347 ++++++++++++++++++++-------------------- src/mesa/shader/program_lexer.l | 1 + 2 files changed, 175 insertions(+), 173 deletions(-) diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c index 959eb854d6..ba3512365e 100644 --- a/src/mesa/shader/lex.yy.c +++ b/src/mesa/shader/lex.yy.c @@ -1037,6 +1037,7 @@ static yyconst flex_int16_t yy_chk[1352] = #include "main/glheader.h" #include "prog_instruction.h" +#include "symbol_table.h" #include "program_parser.h" #include "program_parse.tab.h" @@ -1147,7 +1148,7 @@ handle_ident(struct asm_parser_state *state, const char *text, YYSTYPE *lval) } while(0); #define YY_EXTRA_TYPE struct asm_parser_state * -#line 1151 "lex.yy.c" +#line 1152 "lex.yy.c" #define INITIAL 0 @@ -1393,10 +1394,10 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 150 "program_lexer.l" +#line 151 "program_lexer.l" -#line 1400 "lex.yy.c" +#line 1401 "lex.yy.c" yylval = yylval_param; @@ -1485,17 +1486,17 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 152 "program_lexer.l" +#line 153 "program_lexer.l" { return ARBvp_10; } YY_BREAK case 2: YY_RULE_SETUP -#line 153 "program_lexer.l" +#line 154 "program_lexer.l" { return ARBfp_10; } YY_BREAK case 3: YY_RULE_SETUP -#line 154 "program_lexer.l" +#line 155 "program_lexer.l" { yylval->integer = at_address; return_token_or_IDENTIFIER(require_ARB_vp, ADDRESS); @@ -1503,682 +1504,682 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 158 "program_lexer.l" +#line 159 "program_lexer.l" { return ALIAS; } YY_BREAK case 5: YY_RULE_SETUP -#line 159 "program_lexer.l" +#line 160 "program_lexer.l" { return ATTRIB; } YY_BREAK case 6: YY_RULE_SETUP -#line 160 "program_lexer.l" +#line 161 "program_lexer.l" { return END; } YY_BREAK case 7: YY_RULE_SETUP -#line 161 "program_lexer.l" +#line 162 "program_lexer.l" { return OPTION; } YY_BREAK case 8: YY_RULE_SETUP -#line 162 "program_lexer.l" +#line 163 "program_lexer.l" { return OUTPUT; } YY_BREAK case 9: YY_RULE_SETUP -#line 163 "program_lexer.l" +#line 164 "program_lexer.l" { return PARAM; } YY_BREAK case 10: YY_RULE_SETUP -#line 164 "program_lexer.l" +#line 165 "program_lexer.l" { yylval->integer = at_temp; return TEMP; } YY_BREAK case 11: YY_RULE_SETUP -#line 166 "program_lexer.l" +#line 167 "program_lexer.l" { return_opcode( 1, VECTOR_OP, ABS, 3); } YY_BREAK case 12: YY_RULE_SETUP -#line 167 "program_lexer.l" +#line 168 "program_lexer.l" { return_opcode( 1, BIN_OP, ADD, 3); } YY_BREAK case 13: YY_RULE_SETUP -#line 168 "program_lexer.l" +#line 169 "program_lexer.l" { return_opcode(require_ARB_vp, ARL, ARL, 3); } YY_BREAK case 14: YY_RULE_SETUP -#line 170 "program_lexer.l" +#line 171 "program_lexer.l" { return_opcode(require_ARB_fp, TRI_OP, CMP, 3); } YY_BREAK case 15: YY_RULE_SETUP -#line 171 "program_lexer.l" +#line 172 "program_lexer.l" { return_opcode(require_ARB_fp, SCALAR_OP, COS, 3); } YY_BREAK case 16: YY_RULE_SETUP -#line 173 "program_lexer.l" +#line 174 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, DDX, 3); } YY_BREAK case 17: YY_RULE_SETUP -#line 174 "program_lexer.l" +#line 175 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, DDY, 3); } YY_BREAK case 18: YY_RULE_SETUP -#line 175 "program_lexer.l" +#line 176 "program_lexer.l" { return_opcode( 1, BIN_OP, DP3, 3); } YY_BREAK case 19: YY_RULE_SETUP -#line 176 "program_lexer.l" +#line 177 "program_lexer.l" { return_opcode( 1, BIN_OP, DP4, 3); } YY_BREAK case 20: YY_RULE_SETUP -#line 177 "program_lexer.l" +#line 178 "program_lexer.l" { return_opcode( 1, BIN_OP, DPH, 3); } YY_BREAK case 21: YY_RULE_SETUP -#line 178 "program_lexer.l" +#line 179 "program_lexer.l" { return_opcode( 1, BIN_OP, DST, 3); } YY_BREAK case 22: YY_RULE_SETUP -#line 180 "program_lexer.l" +#line 181 "program_lexer.l" { return_opcode( 1, SCALAR_OP, EX2, 3); } YY_BREAK case 23: YY_RULE_SETUP -#line 181 "program_lexer.l" +#line 182 "program_lexer.l" { return_opcode(require_ARB_vp, SCALAR_OP, EXP, 3); } YY_BREAK case 24: YY_RULE_SETUP -#line 183 "program_lexer.l" +#line 184 "program_lexer.l" { return_opcode( 1, VECTOR_OP, FLR, 3); } YY_BREAK case 25: YY_RULE_SETUP -#line 184 "program_lexer.l" +#line 185 "program_lexer.l" { return_opcode( 1, VECTOR_OP, FRC, 3); } YY_BREAK case 26: YY_RULE_SETUP -#line 186 "program_lexer.l" +#line 187 "program_lexer.l" { return_opcode(require_ARB_fp, KIL, KIL, 3); } YY_BREAK case 27: YY_RULE_SETUP -#line 188 "program_lexer.l" +#line 189 "program_lexer.l" { return_opcode( 1, VECTOR_OP, LIT, 3); } YY_BREAK case 28: YY_RULE_SETUP -#line 189 "program_lexer.l" +#line 190 "program_lexer.l" { return_opcode( 1, SCALAR_OP, LG2, 3); } YY_BREAK case 29: YY_RULE_SETUP -#line 190 "program_lexer.l" +#line 191 "program_lexer.l" { return_opcode(require_ARB_vp, SCALAR_OP, LOG, 3); } YY_BREAK case 30: YY_RULE_SETUP -#line 191 "program_lexer.l" +#line 192 "program_lexer.l" { return_opcode(require_ARB_fp, TRI_OP, LRP, 3); } YY_BREAK case 31: YY_RULE_SETUP -#line 193 "program_lexer.l" +#line 194 "program_lexer.l" { return_opcode( 1, TRI_OP, MAD, 3); } YY_BREAK case 32: YY_RULE_SETUP -#line 194 "program_lexer.l" +#line 195 "program_lexer.l" { return_opcode( 1, BIN_OP, MAX, 3); } YY_BREAK case 33: YY_RULE_SETUP -#line 195 "program_lexer.l" +#line 196 "program_lexer.l" { return_opcode( 1, BIN_OP, MIN, 3); } YY_BREAK case 34: YY_RULE_SETUP -#line 196 "program_lexer.l" +#line 197 "program_lexer.l" { return_opcode( 1, VECTOR_OP, MOV, 3); } YY_BREAK case 35: YY_RULE_SETUP -#line 197 "program_lexer.l" +#line 198 "program_lexer.l" { return_opcode( 1, BIN_OP, MUL, 3); } YY_BREAK case 36: YY_RULE_SETUP -#line 199 "program_lexer.l" +#line 200 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, PK2H, 4); } YY_BREAK case 37: YY_RULE_SETUP -#line 200 "program_lexer.l" +#line 201 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, PK2US, 5); } YY_BREAK case 38: YY_RULE_SETUP -#line 201 "program_lexer.l" +#line 202 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, PK4B, 4); } YY_BREAK case 39: YY_RULE_SETUP -#line 202 "program_lexer.l" +#line 203 "program_lexer.l" { return_opcode(require_NV_fp, VECTOR_OP, PK4UB, 5); } YY_BREAK case 40: YY_RULE_SETUP -#line 203 "program_lexer.l" +#line 204 "program_lexer.l" { return_opcode( 1, BINSC_OP, POW, 3); } YY_BREAK case 41: YY_RULE_SETUP -#line 205 "program_lexer.l" +#line 206 "program_lexer.l" { return_opcode( 1, SCALAR_OP, RCP, 3); } YY_BREAK case 42: YY_RULE_SETUP -#line 206 "program_lexer.l" +#line 207 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, RFL, 3); } YY_BREAK case 43: YY_RULE_SETUP -#line 207 "program_lexer.l" +#line 208 "program_lexer.l" { return_opcode( 1, SCALAR_OP, RSQ, 3); } YY_BREAK case 44: YY_RULE_SETUP -#line 209 "program_lexer.l" +#line 210 "program_lexer.l" { return_opcode(require_ARB_fp, SCALAR_OP, SCS, 3); } YY_BREAK case 45: YY_RULE_SETUP -#line 210 "program_lexer.l" +#line 211 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SEQ, 3); } YY_BREAK case 46: YY_RULE_SETUP -#line 211 "program_lexer.l" +#line 212 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SFL, 3); } YY_BREAK case 47: YY_RULE_SETUP -#line 212 "program_lexer.l" +#line 213 "program_lexer.l" { return_opcode( 1, BIN_OP, SGE, 3); } YY_BREAK case 48: YY_RULE_SETUP -#line 213 "program_lexer.l" +#line 214 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SGT, 3); } YY_BREAK case 49: YY_RULE_SETUP -#line 214 "program_lexer.l" +#line 215 "program_lexer.l" { return_opcode(require_ARB_fp, SCALAR_OP, SIN, 3); } YY_BREAK case 50: YY_RULE_SETUP -#line 215 "program_lexer.l" +#line 216 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SLE, 3); } YY_BREAK case 51: YY_RULE_SETUP -#line 216 "program_lexer.l" +#line 217 "program_lexer.l" { return_opcode( 1, BIN_OP, SLT, 3); } YY_BREAK case 52: YY_RULE_SETUP -#line 217 "program_lexer.l" +#line 218 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, SNE, 3); } YY_BREAK case 53: YY_RULE_SETUP -#line 218 "program_lexer.l" +#line 219 "program_lexer.l" { return_opcode(require_NV_fp, BIN_OP, STR, 3); } YY_BREAK case 54: YY_RULE_SETUP -#line 219 "program_lexer.l" +#line 220 "program_lexer.l" { return_opcode( 1, BIN_OP, SUB, 3); } YY_BREAK case 55: YY_RULE_SETUP -#line 220 "program_lexer.l" +#line 221 "program_lexer.l" { return_opcode( 1, SWZ, SWZ, 3); } YY_BREAK case 56: YY_RULE_SETUP -#line 222 "program_lexer.l" +#line 223 "program_lexer.l" { return_opcode(require_ARB_fp, SAMPLE_OP, TEX, 3); } YY_BREAK case 57: YY_RULE_SETUP -#line 223 "program_lexer.l" +#line 224 "program_lexer.l" { return_opcode(require_ARB_fp, SAMPLE_OP, TXB, 3); } YY_BREAK case 58: YY_RULE_SETUP -#line 224 "program_lexer.l" +#line 225 "program_lexer.l" { return_opcode(require_NV_fp, TXD_OP, TXD, 3); } YY_BREAK case 59: YY_RULE_SETUP -#line 225 "program_lexer.l" +#line 226 "program_lexer.l" { return_opcode(require_ARB_fp, SAMPLE_OP, TXP, 3); } YY_BREAK case 60: YY_RULE_SETUP -#line 227 "program_lexer.l" +#line 228 "program_lexer.l" { return_opcode(require_NV_fp, SCALAR_OP, UP2H, 4); } YY_BREAK case 61: YY_RULE_SETUP -#line 228 "program_lexer.l" +#line 229 "program_lexer.l" { return_opcode(require_NV_fp, SCALAR_OP, UP2US, 5); } YY_BREAK case 62: YY_RULE_SETUP -#line 230 "program_lexer.l" +#line 231 "program_lexer.l" { return_opcode(require_NV_fp, TRI_OP, X2D, 3); } YY_BREAK case 63: YY_RULE_SETUP -#line 231 "program_lexer.l" +#line 232 "program_lexer.l" { return_opcode( 1, BIN_OP, XPD, 3); } YY_BREAK case 64: YY_RULE_SETUP -#line 233 "program_lexer.l" +#line 234 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } YY_BREAK case 65: YY_RULE_SETUP -#line 234 "program_lexer.l" +#line 235 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } YY_BREAK case 66: YY_RULE_SETUP -#line 235 "program_lexer.l" +#line 236 "program_lexer.l" { return PROGRAM; } YY_BREAK case 67: YY_RULE_SETUP -#line 236 "program_lexer.l" +#line 237 "program_lexer.l" { return STATE; } YY_BREAK case 68: YY_RULE_SETUP -#line 237 "program_lexer.l" +#line 238 "program_lexer.l" { return RESULT; } YY_BREAK case 69: YY_RULE_SETUP -#line 239 "program_lexer.l" +#line 240 "program_lexer.l" { return AMBIENT; } YY_BREAK case 70: YY_RULE_SETUP -#line 240 "program_lexer.l" +#line 241 "program_lexer.l" { return ATTENUATION; } YY_BREAK case 71: YY_RULE_SETUP -#line 241 "program_lexer.l" +#line 242 "program_lexer.l" { return BACK; } YY_BREAK case 72: YY_RULE_SETUP -#line 242 "program_lexer.l" +#line 243 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, CLIP); } YY_BREAK case 73: YY_RULE_SETUP -#line 243 "program_lexer.l" +#line 244 "program_lexer.l" { return COLOR; } YY_BREAK case 74: YY_RULE_SETUP -#line 244 "program_lexer.l" +#line 245 "program_lexer.l" { return_token_or_DOT(require_ARB_fp, DEPTH); } YY_BREAK case 75: YY_RULE_SETUP -#line 245 "program_lexer.l" +#line 246 "program_lexer.l" { return DIFFUSE; } YY_BREAK case 76: YY_RULE_SETUP -#line 246 "program_lexer.l" +#line 247 "program_lexer.l" { return DIRECTION; } YY_BREAK case 77: YY_RULE_SETUP -#line 247 "program_lexer.l" +#line 248 "program_lexer.l" { return EMISSION; } YY_BREAK case 78: YY_RULE_SETUP -#line 248 "program_lexer.l" +#line 249 "program_lexer.l" { return ENV; } YY_BREAK case 79: YY_RULE_SETUP -#line 249 "program_lexer.l" +#line 250 "program_lexer.l" { return EYE; } YY_BREAK case 80: YY_RULE_SETUP -#line 250 "program_lexer.l" +#line 251 "program_lexer.l" { return FOGCOORD; } YY_BREAK case 81: YY_RULE_SETUP -#line 251 "program_lexer.l" +#line 252 "program_lexer.l" { return FOG; } YY_BREAK case 82: YY_RULE_SETUP -#line 252 "program_lexer.l" +#line 253 "program_lexer.l" { return FRONT; } YY_BREAK case 83: YY_RULE_SETUP -#line 253 "program_lexer.l" +#line 254 "program_lexer.l" { return HALF; } YY_BREAK case 84: YY_RULE_SETUP -#line 254 "program_lexer.l" +#line 255 "program_lexer.l" { return INVERSE; } YY_BREAK case 85: YY_RULE_SETUP -#line 255 "program_lexer.l" +#line 256 "program_lexer.l" { return INVTRANS; } YY_BREAK case 86: YY_RULE_SETUP -#line 256 "program_lexer.l" +#line 257 "program_lexer.l" { return LIGHT; } YY_BREAK case 87: YY_RULE_SETUP -#line 257 "program_lexer.l" +#line 258 "program_lexer.l" { return LIGHTMODEL; } YY_BREAK case 88: YY_RULE_SETUP -#line 258 "program_lexer.l" +#line 259 "program_lexer.l" { return LIGHTPROD; } YY_BREAK case 89: YY_RULE_SETUP -#line 259 "program_lexer.l" +#line 260 "program_lexer.l" { return LOCAL; } YY_BREAK case 90: YY_RULE_SETUP -#line 260 "program_lexer.l" +#line 261 "program_lexer.l" { return MATERIAL; } YY_BREAK case 91: YY_RULE_SETUP -#line 261 "program_lexer.l" +#line 262 "program_lexer.l" { return MAT_PROGRAM; } YY_BREAK case 92: YY_RULE_SETUP -#line 262 "program_lexer.l" +#line 263 "program_lexer.l" { return MATRIX; } YY_BREAK case 93: YY_RULE_SETUP -#line 263 "program_lexer.l" +#line 264 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, MATRIXINDEX); } YY_BREAK case 94: YY_RULE_SETUP -#line 264 "program_lexer.l" +#line 265 "program_lexer.l" { return MODELVIEW; } YY_BREAK case 95: YY_RULE_SETUP -#line 265 "program_lexer.l" +#line 266 "program_lexer.l" { return MVP; } YY_BREAK case 96: YY_RULE_SETUP -#line 266 "program_lexer.l" +#line 267 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, NORMAL); } YY_BREAK case 97: YY_RULE_SETUP -#line 267 "program_lexer.l" +#line 268 "program_lexer.l" { return OBJECT; } YY_BREAK case 98: YY_RULE_SETUP -#line 268 "program_lexer.l" +#line 269 "program_lexer.l" { return PALETTE; } YY_BREAK case 99: YY_RULE_SETUP -#line 269 "program_lexer.l" +#line 270 "program_lexer.l" { return PARAMS; } YY_BREAK case 100: YY_RULE_SETUP -#line 270 "program_lexer.l" +#line 271 "program_lexer.l" { return PLANE; } YY_BREAK case 101: YY_RULE_SETUP -#line 271 "program_lexer.l" +#line 272 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, POINT); } YY_BREAK case 102: YY_RULE_SETUP -#line 272 "program_lexer.l" +#line 273 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, POINTSIZE); } YY_BREAK case 103: YY_RULE_SETUP -#line 273 "program_lexer.l" +#line 274 "program_lexer.l" { return POSITION; } YY_BREAK case 104: YY_RULE_SETUP -#line 274 "program_lexer.l" +#line 275 "program_lexer.l" { return PRIMARY; } YY_BREAK case 105: YY_RULE_SETUP -#line 275 "program_lexer.l" +#line 276 "program_lexer.l" { return PROJECTION; } YY_BREAK case 106: YY_RULE_SETUP -#line 276 "program_lexer.l" +#line 277 "program_lexer.l" { return_token_or_DOT(require_ARB_fp, RANGE); } YY_BREAK case 107: YY_RULE_SETUP -#line 277 "program_lexer.l" +#line 278 "program_lexer.l" { return ROW; } YY_BREAK case 108: YY_RULE_SETUP -#line 278 "program_lexer.l" +#line 279 "program_lexer.l" { return SCENECOLOR; } YY_BREAK case 109: YY_RULE_SETUP -#line 279 "program_lexer.l" +#line 280 "program_lexer.l" { return SECONDARY; } YY_BREAK case 110: YY_RULE_SETUP -#line 280 "program_lexer.l" +#line 281 "program_lexer.l" { return SHININESS; } YY_BREAK case 111: YY_RULE_SETUP -#line 281 "program_lexer.l" +#line 282 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, SIZE); } YY_BREAK case 112: YY_RULE_SETUP -#line 282 "program_lexer.l" +#line 283 "program_lexer.l" { return SPECULAR; } YY_BREAK case 113: YY_RULE_SETUP -#line 283 "program_lexer.l" +#line 284 "program_lexer.l" { return SPOT; } YY_BREAK case 114: YY_RULE_SETUP -#line 284 "program_lexer.l" +#line 285 "program_lexer.l" { return TEXCOORD; } YY_BREAK case 115: YY_RULE_SETUP -#line 285 "program_lexer.l" +#line 286 "program_lexer.l" { return_token_or_DOT(require_ARB_fp, TEXENV); } YY_BREAK case 116: YY_RULE_SETUP -#line 286 "program_lexer.l" +#line 287 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN); } YY_BREAK case 117: YY_RULE_SETUP -#line 287 "program_lexer.l" +#line 288 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_Q); } YY_BREAK case 118: YY_RULE_SETUP -#line 288 "program_lexer.l" +#line 289 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_S); } YY_BREAK case 119: YY_RULE_SETUP -#line 289 "program_lexer.l" +#line 290 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, TEXGEN_T); } YY_BREAK case 120: YY_RULE_SETUP -#line 290 "program_lexer.l" +#line 291 "program_lexer.l" { return TEXTURE; } YY_BREAK case 121: YY_RULE_SETUP -#line 291 "program_lexer.l" +#line 292 "program_lexer.l" { return TRANSPOSE; } YY_BREAK case 122: YY_RULE_SETUP -#line 292 "program_lexer.l" +#line 293 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, VTXATTRIB); } YY_BREAK case 123: YY_RULE_SETUP -#line 293 "program_lexer.l" +#line 294 "program_lexer.l" { return_token_or_DOT(require_ARB_vp, WEIGHT); } YY_BREAK case 124: YY_RULE_SETUP -#line 295 "program_lexer.l" +#line 296 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); } YY_BREAK case 125: YY_RULE_SETUP -#line 296 "program_lexer.l" +#line 297 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); } YY_BREAK case 126: YY_RULE_SETUP -#line 297 "program_lexer.l" +#line 298 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); } YY_BREAK case 127: YY_RULE_SETUP -#line 298 "program_lexer.l" +#line 299 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); } YY_BREAK case 128: YY_RULE_SETUP -#line 299 "program_lexer.l" +#line 300 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); } YY_BREAK case 129: YY_RULE_SETUP -#line 300 "program_lexer.l" +#line 301 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); } YY_BREAK case 130: YY_RULE_SETUP -#line 301 "program_lexer.l" +#line 302 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); } YY_BREAK case 131: YY_RULE_SETUP -#line 302 "program_lexer.l" +#line 303 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); } YY_BREAK case 132: YY_RULE_SETUP -#line 303 "program_lexer.l" +#line 304 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); } YY_BREAK case 133: YY_RULE_SETUP -#line 304 "program_lexer.l" +#line 305 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); } YY_BREAK case 134: YY_RULE_SETUP -#line 305 "program_lexer.l" +#line 306 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); } YY_BREAK case 135: YY_RULE_SETUP -#line 306 "program_lexer.l" +#line 307 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); } YY_BREAK case 136: YY_RULE_SETUP -#line 307 "program_lexer.l" +#line 308 "program_lexer.l" { return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); } YY_BREAK case 137: YY_RULE_SETUP -#line 309 "program_lexer.l" +#line 310 "program_lexer.l" { return handle_ident(yyextra, yytext, yylval); } YY_BREAK case 138: YY_RULE_SETUP -#line 311 "program_lexer.l" +#line 312 "program_lexer.l" { return DOT_DOT; } YY_BREAK case 139: YY_RULE_SETUP -#line 313 "program_lexer.l" +#line 314 "program_lexer.l" { yylval->integer = strtol(yytext, NULL, 10); return INTEGER; @@ -2186,7 +2187,7 @@ YY_RULE_SETUP YY_BREAK case 140: YY_RULE_SETUP -#line 317 "program_lexer.l" +#line 318 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; @@ -2198,7 +2199,7 @@ case 141: yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 321 "program_lexer.l" +#line 322 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; @@ -2206,7 +2207,7 @@ YY_RULE_SETUP YY_BREAK case 142: YY_RULE_SETUP -#line 325 "program_lexer.l" +#line 326 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; @@ -2214,7 +2215,7 @@ YY_RULE_SETUP YY_BREAK case 143: YY_RULE_SETUP -#line 329 "program_lexer.l" +#line 330 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; @@ -2222,7 +2223,7 @@ YY_RULE_SETUP YY_BREAK case 144: YY_RULE_SETUP -#line 334 "program_lexer.l" +#line 335 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; @@ -2231,7 +2232,7 @@ YY_RULE_SETUP YY_BREAK case 145: YY_RULE_SETUP -#line 340 "program_lexer.l" +#line 341 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2241,7 +2242,7 @@ YY_RULE_SETUP YY_BREAK case 146: YY_RULE_SETUP -#line 346 "program_lexer.l" +#line 347 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; @@ -2250,7 +2251,7 @@ YY_RULE_SETUP YY_BREAK case 147: YY_RULE_SETUP -#line 351 "program_lexer.l" +#line 352 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; @@ -2259,7 +2260,7 @@ YY_RULE_SETUP YY_BREAK case 148: YY_RULE_SETUP -#line 357 "program_lexer.l" +#line 358 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2269,7 +2270,7 @@ YY_RULE_SETUP YY_BREAK case 149: YY_RULE_SETUP -#line 363 "program_lexer.l" +#line 364 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2279,7 +2280,7 @@ YY_RULE_SETUP YY_BREAK case 150: YY_RULE_SETUP -#line 369 "program_lexer.l" +#line 370 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; @@ -2288,7 +2289,7 @@ YY_RULE_SETUP YY_BREAK case 151: YY_RULE_SETUP -#line 375 "program_lexer.l" +#line 376 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2298,7 +2299,7 @@ YY_RULE_SETUP YY_BREAK case 152: YY_RULE_SETUP -#line 382 "program_lexer.l" +#line 383 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2310,7 +2311,7 @@ YY_RULE_SETUP YY_BREAK case 153: YY_RULE_SETUP -#line 391 "program_lexer.l" +#line 392 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; @@ -2319,7 +2320,7 @@ YY_RULE_SETUP YY_BREAK case 154: YY_RULE_SETUP -#line 397 "program_lexer.l" +#line 398 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2329,7 +2330,7 @@ YY_RULE_SETUP YY_BREAK case 155: YY_RULE_SETUP -#line 403 "program_lexer.l" +#line 404 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; @@ -2338,7 +2339,7 @@ YY_RULE_SETUP YY_BREAK case 156: YY_RULE_SETUP -#line 408 "program_lexer.l" +#line 409 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; @@ -2347,7 +2348,7 @@ YY_RULE_SETUP YY_BREAK case 157: YY_RULE_SETUP -#line 414 "program_lexer.l" +#line 415 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2357,7 +2358,7 @@ YY_RULE_SETUP YY_BREAK case 158: YY_RULE_SETUP -#line 420 "program_lexer.l" +#line 421 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2367,7 +2368,7 @@ YY_RULE_SETUP YY_BREAK case 159: YY_RULE_SETUP -#line 426 "program_lexer.l" +#line 427 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; @@ -2376,7 +2377,7 @@ YY_RULE_SETUP YY_BREAK case 160: YY_RULE_SETUP -#line 432 "program_lexer.l" +#line 433 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2386,7 +2387,7 @@ YY_RULE_SETUP YY_BREAK case 161: YY_RULE_SETUP -#line 440 "program_lexer.l" +#line 441 "program_lexer.l" { if (require_ARB_vp) { return TEXGEN_R; @@ -2400,7 +2401,7 @@ YY_RULE_SETUP YY_BREAK case 162: YY_RULE_SETUP -#line 451 "program_lexer.l" +#line 452 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2412,13 +2413,13 @@ YY_RULE_SETUP YY_BREAK case 163: YY_RULE_SETUP -#line 460 "program_lexer.l" +#line 461 "program_lexer.l" { return DOT; } YY_BREAK case 164: /* rule 164 can match eol */ YY_RULE_SETUP -#line 462 "program_lexer.l" +#line 463 "program_lexer.l" { yylloc->first_line++; yylloc->first_column = 1; @@ -2429,7 +2430,7 @@ YY_RULE_SETUP YY_BREAK case 165: YY_RULE_SETUP -#line 469 "program_lexer.l" +#line 470 "program_lexer.l" /* eat whitespace */ ; YY_BREAK case 166: @@ -2437,20 +2438,20 @@ case 166: yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 470 "program_lexer.l" +#line 471 "program_lexer.l" /* eat comments */ ; YY_BREAK case 167: YY_RULE_SETUP -#line 471 "program_lexer.l" +#line 472 "program_lexer.l" { return yytext[0]; } YY_BREAK case 168: YY_RULE_SETUP -#line 472 "program_lexer.l" +#line 473 "program_lexer.l" ECHO; YY_BREAK -#line 2454 "lex.yy.c" +#line 2455 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -3625,7 +3626,7 @@ void yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 472 "program_lexer.l" +#line 473 "program_lexer.l" diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l index 9e68c34ac0..a0d1af1e07 100644 --- a/src/mesa/shader/program_lexer.l +++ b/src/mesa/shader/program_lexer.l @@ -24,6 +24,7 @@ #include "main/glheader.h" #include "prog_instruction.h" +#include "symbol_table.h" #include "program_parser.h" #include "program_parse.tab.h" -- cgit v1.2.3 From 81722c5d7e8e93d837510b9e6e5d014ec64cf4b3 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 10 Sep 2009 15:04:24 -0700 Subject: NV fp parser: Add support for condition codes Conditional write masks and the condition-code based KIL instruction are all supported. The specific behavior of KIL in the following shader may or may not match the behavior of other implementations: !!ARBfp1.0 TEMP GT; MOVC GT, fragment.texcoord[0]; KIL GT.x; END Should be it interpreted as 'KIL srcReg' or as 'KIL ccTest'? The current parser will interpret it as 'KIL srcReg'. --- src/mesa/shader/program_parse.tab.c | 1895 ++++++++++++++++++--------------- src/mesa/shader/program_parse.y | 102 +- src/mesa/shader/program_parse_extra.c | 54 + src/mesa/shader/program_parser.h | 13 + 4 files changed, 1183 insertions(+), 881 deletions(-) diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c index d37b20ba42..33195c0b16 100644 --- a/src/mesa/shader/program_parse.tab.c +++ b/src/mesa/shader/program_parse.tab.c @@ -374,7 +374,7 @@ typedef struct YYLTYPE /* Copy the second part of user declarations. */ /* Line 264 of yacc.c */ -#line 259 "program_parse.y" +#line 261 "program_parse.y" extern int yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, void *yyscanner); @@ -598,16 +598,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 393 +#define YYLAST 396 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 118 +#define YYNTOKENS 120 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 138 +#define YYNNTS 143 /* YYNRULES -- Number of rules. */ -#define YYNRULES 274 +#define YYNRULES 282 /* YYNRULES -- Number of states. */ -#define YYNSTATES 460 +#define YYNSTATES 473 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -623,15 +623,15 @@ static const yytype_uint8 yytranslate[] = 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, 113, 109, 114, 2, 2, 2, 2, + 115, 116, 2, 113, 109, 114, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 108, - 2, 115, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 117, 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, 111, 2, 112, 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, 116, 110, 117, 2, 2, 2, 2, + 2, 2, 2, 118, 110, 119, 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, 2, @@ -666,147 +666,151 @@ static const yytype_uint16 yyprhs[] = 0, 0, 3, 8, 10, 12, 15, 16, 20, 23, 24, 27, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 59, 64, 69, 76, 83, - 92, 101, 104, 117, 120, 122, 124, 126, 128, 130, - 132, 134, 136, 138, 140, 142, 144, 151, 154, 159, - 162, 164, 168, 174, 177, 180, 188, 191, 193, 195, - 197, 199, 204, 206, 208, 210, 212, 214, 216, 218, - 222, 223, 226, 229, 231, 233, 235, 237, 239, 241, - 243, 245, 247, 248, 250, 252, 254, 256, 257, 259, - 261, 263, 265, 267, 269, 274, 277, 280, 282, 285, - 287, 290, 292, 295, 300, 305, 307, 308, 312, 314, - 316, 319, 321, 324, 326, 328, 332, 339, 340, 342, - 345, 350, 352, 356, 358, 360, 362, 364, 366, 368, - 370, 372, 374, 376, 379, 382, 385, 388, 391, 394, - 397, 400, 403, 406, 409, 412, 416, 418, 420, 422, - 428, 430, 432, 434, 437, 439, 441, 444, 446, 449, - 456, 458, 462, 464, 466, 468, 470, 472, 477, 479, - 481, 483, 485, 487, 489, 492, 494, 496, 502, 504, - 507, 509, 511, 517, 520, 521, 528, 532, 533, 535, - 537, 539, 541, 543, 546, 548, 550, 553, 558, 563, - 564, 566, 568, 570, 572, 575, 577, 579, 581, 583, - 589, 591, 595, 601, 607, 609, 613, 619, 621, 623, - 625, 627, 629, 631, 633, 635, 637, 641, 647, 655, - 665, 668, 671, 673, 675, 676, 677, 682, 684, 685, - 686, 690, 694, 696, 702, 705, 708, 711, 714, 718, - 721, 725, 726, 728, 730, 731, 733, 735, 736, 738, - 740, 741, 743, 745, 746, 750, 751, 755, 756, 760, - 762, 764, 766, 771, 773 + 92, 101, 104, 107, 120, 123, 125, 127, 129, 131, + 133, 135, 137, 139, 141, 143, 145, 147, 154, 157, + 162, 165, 167, 171, 177, 181, 184, 192, 195, 197, + 199, 201, 203, 208, 210, 212, 214, 216, 218, 220, + 222, 226, 227, 230, 233, 235, 237, 239, 241, 243, + 245, 247, 249, 251, 252, 254, 256, 258, 260, 261, + 265, 269, 270, 273, 276, 278, 280, 282, 284, 286, + 288, 290, 292, 297, 300, 303, 305, 308, 310, 313, + 315, 318, 323, 328, 330, 331, 335, 337, 339, 342, + 344, 347, 349, 351, 355, 362, 363, 365, 368, 373, + 375, 379, 381, 383, 385, 387, 389, 391, 393, 395, + 397, 399, 402, 405, 408, 411, 414, 417, 420, 423, + 426, 429, 432, 435, 439, 441, 443, 445, 451, 453, + 455, 457, 460, 462, 464, 467, 469, 472, 479, 481, + 485, 487, 489, 491, 493, 495, 500, 502, 504, 506, + 508, 510, 512, 515, 517, 519, 525, 527, 530, 532, + 534, 540, 543, 544, 551, 555, 556, 558, 560, 562, + 564, 566, 569, 571, 573, 576, 581, 586, 587, 589, + 591, 593, 595, 598, 600, 602, 604, 606, 612, 614, + 618, 624, 630, 632, 636, 642, 644, 646, 648, 650, + 652, 654, 656, 658, 660, 664, 670, 678, 688, 691, + 694, 696, 698, 699, 700, 705, 707, 708, 709, 713, + 717, 719, 725, 728, 731, 734, 737, 741, 744, 748, + 749, 751, 753, 754, 756, 758, 759, 761, 763, 764, + 766, 768, 769, 773, 774, 778, 779, 783, 785, 787, + 789, 794, 796 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 119, 0, -1, 120, 121, 123, 12, -1, 3, -1, - 4, -1, 121, 122, -1, -1, 8, 255, 108, -1, - 123, 124, -1, -1, 125, 108, -1, 163, 108, -1, - 126, -1, 127, -1, 128, -1, 129, -1, 130, -1, - 131, -1, 132, -1, 133, -1, 139, -1, 134, -1, - 135, -1, 136, -1, 19, 144, 109, 140, -1, 18, - 143, 109, 142, -1, 16, 143, 109, 140, -1, 14, - 143, 109, 140, 109, 140, -1, 13, 143, 109, 142, - 109, 142, -1, 17, 143, 109, 142, 109, 142, 109, - 142, -1, 15, 143, 109, 142, 109, 137, 109, 138, - -1, 20, 142, -1, 22, 143, 109, 142, 109, 142, - 109, 142, 109, 137, 109, 138, -1, 83, 249, -1, - 84, -1, 85, -1, 86, -1, 87, -1, 88, -1, - 89, -1, 90, -1, 91, -1, 92, -1, 93, -1, - 94, -1, 95, -1, 21, 143, 109, 148, 109, 145, - -1, 234, 141, -1, 234, 110, 141, 110, -1, 148, - 160, -1, 231, -1, 234, 148, 161, -1, 234, 110, - 148, 161, 110, -1, 149, 162, -1, 157, 159, -1, - 146, 109, 146, 109, 146, 109, 146, -1, 234, 147, - -1, 23, -1, 255, -1, 100, -1, 165, -1, 150, - 111, 151, 112, -1, 179, -1, 242, -1, 100, -1, - 100, -1, 152, -1, 153, -1, 23, -1, 157, 158, - 154, -1, -1, 113, 155, -1, 114, 156, -1, 23, - -1, 23, -1, 100, -1, 104, -1, 104, -1, 104, - -1, 104, -1, 101, -1, 105, -1, -1, 101, -1, - 102, -1, 103, -1, 104, -1, -1, 164, -1, 171, - -1, 235, -1, 238, -1, 241, -1, 254, -1, 7, - 99, 115, 165, -1, 96, 166, -1, 38, 170, -1, - 60, -1, 98, 168, -1, 53, -1, 29, 247, -1, - 37, -1, 74, 248, -1, 50, 111, 169, 112, -1, - 97, 111, 167, 112, -1, 23, -1, -1, 111, 169, - 112, -1, 23, -1, 60, -1, 29, 247, -1, 37, - -1, 74, 248, -1, 172, -1, 173, -1, 10, 99, - 175, -1, 10, 99, 111, 174, 112, 176, -1, -1, - 23, -1, 115, 178, -1, 115, 116, 177, 117, -1, - 180, -1, 177, 109, 180, -1, 182, -1, 218, -1, - 228, -1, 182, -1, 218, -1, 229, -1, 181, -1, - 219, -1, 228, -1, 182, -1, 73, 206, -1, 73, - 183, -1, 73, 185, -1, 73, 188, -1, 73, 190, - -1, 73, 196, -1, 73, 192, -1, 73, 199, -1, - 73, 201, -1, 73, 203, -1, 73, 205, -1, 73, - 217, -1, 47, 246, 184, -1, 194, -1, 33, -1, - 69, -1, 43, 111, 195, 112, 186, -1, 194, -1, - 60, -1, 26, -1, 72, 187, -1, 40, -1, 32, - -1, 44, 189, -1, 25, -1, 246, 67, -1, 45, - 111, 195, 112, 246, 191, -1, 194, -1, 75, 250, - 193, -1, 29, -1, 25, -1, 31, -1, 71, -1, - 23, -1, 76, 248, 197, 198, -1, 35, -1, 54, - -1, 79, -1, 80, -1, 78, -1, 77, -1, 36, - 200, -1, 29, -1, 56, -1, 28, 111, 202, 112, - 57, -1, 23, -1, 58, 204, -1, 70, -1, 26, - -1, 208, 66, 111, 211, 112, -1, 208, 207, -1, - -1, 66, 111, 211, 106, 211, 112, -1, 49, 212, - 209, -1, -1, 210, -1, 41, -1, 82, -1, 42, - -1, 23, -1, 51, 213, -1, 63, -1, 52, -1, - 81, 248, -1, 55, 111, 215, 112, -1, 48, 111, - 216, 112, -1, -1, 214, -1, 23, -1, 23, -1, - 23, -1, 30, 64, -1, 222, -1, 225, -1, 220, - -1, 223, -1, 62, 34, 111, 221, 112, -1, 226, - -1, 226, 106, 226, -1, 62, 34, 111, 226, 112, - -1, 62, 46, 111, 224, 112, -1, 227, -1, 227, - 106, 227, -1, 62, 46, 111, 227, 112, -1, 23, - -1, 23, -1, 230, -1, 232, -1, 231, -1, 232, - -1, 233, -1, 24, -1, 23, -1, 116, 233, 117, - -1, 116, 233, 109, 233, 117, -1, 116, 233, 109, - 233, 109, 233, 117, -1, 116, 233, 109, 233, 109, - 233, 109, 233, 117, -1, 234, 24, -1, 234, 23, - -1, 113, -1, 114, -1, -1, -1, 237, 11, 236, - 240, -1, 255, -1, -1, -1, 5, 239, 240, -1, - 240, 109, 99, -1, 99, -1, 237, 9, 99, 115, - 242, -1, 65, 60, -1, 65, 37, -1, 65, 243, - -1, 65, 59, -1, 65, 74, 248, -1, 65, 30, - -1, 29, 244, 245, -1, -1, 39, -1, 27, -1, - -1, 61, -1, 68, -1, -1, 39, -1, 27, -1, - -1, 61, -1, 68, -1, -1, 111, 251, 112, -1, - -1, 111, 252, 112, -1, -1, 111, 253, 112, -1, - 23, -1, 23, -1, 23, -1, 6, 99, 115, 100, - -1, 99, -1, 100, -1 + 121, 0, -1, 122, 123, 125, 12, -1, 3, -1, + 4, -1, 123, 124, -1, -1, 8, 262, 108, -1, + 125, 126, -1, -1, 127, 108, -1, 170, 108, -1, + 128, -1, 129, -1, 130, -1, 131, -1, 132, -1, + 133, -1, 134, -1, 135, -1, 141, -1, 136, -1, + 137, -1, 138, -1, 19, 146, 109, 142, -1, 18, + 145, 109, 144, -1, 16, 145, 109, 142, -1, 14, + 145, 109, 142, 109, 142, -1, 13, 145, 109, 144, + 109, 144, -1, 17, 145, 109, 144, 109, 144, 109, + 144, -1, 15, 145, 109, 144, 109, 139, 109, 140, + -1, 20, 144, -1, 20, 166, -1, 22, 145, 109, + 144, 109, 144, 109, 144, 109, 139, 109, 140, -1, + 83, 256, -1, 84, -1, 85, -1, 86, -1, 87, + -1, 88, -1, 89, -1, 90, -1, 91, -1, 92, + -1, 93, -1, 94, -1, 95, -1, 21, 145, 109, + 150, 109, 147, -1, 241, 143, -1, 241, 110, 143, + 110, -1, 150, 162, -1, 238, -1, 241, 150, 163, + -1, 241, 110, 150, 163, 110, -1, 151, 164, 165, + -1, 159, 161, -1, 148, 109, 148, 109, 148, 109, + 148, -1, 241, 149, -1, 23, -1, 262, -1, 100, + -1, 172, -1, 152, 111, 153, 112, -1, 186, -1, + 249, -1, 100, -1, 100, -1, 154, -1, 155, -1, + 23, -1, 159, 160, 156, -1, -1, 113, 157, -1, + 114, 158, -1, 23, -1, 23, -1, 100, -1, 104, + -1, 104, -1, 104, -1, 104, -1, 101, -1, 105, + -1, -1, 101, -1, 102, -1, 103, -1, 104, -1, + -1, 115, 166, 116, -1, 115, 167, 116, -1, -1, + 168, 163, -1, 169, 163, -1, 99, -1, 100, -1, + 171, -1, 178, -1, 242, -1, 245, -1, 248, -1, + 261, -1, 7, 99, 117, 172, -1, 96, 173, -1, + 38, 177, -1, 60, -1, 98, 175, -1, 53, -1, + 29, 254, -1, 37, -1, 74, 255, -1, 50, 111, + 176, 112, -1, 97, 111, 174, 112, -1, 23, -1, + -1, 111, 176, 112, -1, 23, -1, 60, -1, 29, + 254, -1, 37, -1, 74, 255, -1, 179, -1, 180, + -1, 10, 99, 182, -1, 10, 99, 111, 181, 112, + 183, -1, -1, 23, -1, 117, 185, -1, 117, 118, + 184, 119, -1, 187, -1, 184, 109, 187, -1, 189, + -1, 225, -1, 235, -1, 189, -1, 225, -1, 236, + -1, 188, -1, 226, -1, 235, -1, 189, -1, 73, + 213, -1, 73, 190, -1, 73, 192, -1, 73, 195, + -1, 73, 197, -1, 73, 203, -1, 73, 199, -1, + 73, 206, -1, 73, 208, -1, 73, 210, -1, 73, + 212, -1, 73, 224, -1, 47, 253, 191, -1, 201, + -1, 33, -1, 69, -1, 43, 111, 202, 112, 193, + -1, 201, -1, 60, -1, 26, -1, 72, 194, -1, + 40, -1, 32, -1, 44, 196, -1, 25, -1, 253, + 67, -1, 45, 111, 202, 112, 253, 198, -1, 201, + -1, 75, 257, 200, -1, 29, -1, 25, -1, 31, + -1, 71, -1, 23, -1, 76, 255, 204, 205, -1, + 35, -1, 54, -1, 79, -1, 80, -1, 78, -1, + 77, -1, 36, 207, -1, 29, -1, 56, -1, 28, + 111, 209, 112, 57, -1, 23, -1, 58, 211, -1, + 70, -1, 26, -1, 215, 66, 111, 218, 112, -1, + 215, 214, -1, -1, 66, 111, 218, 106, 218, 112, + -1, 49, 219, 216, -1, -1, 217, -1, 41, -1, + 82, -1, 42, -1, 23, -1, 51, 220, -1, 63, + -1, 52, -1, 81, 255, -1, 55, 111, 222, 112, + -1, 48, 111, 223, 112, -1, -1, 221, -1, 23, + -1, 23, -1, 23, -1, 30, 64, -1, 229, -1, + 232, -1, 227, -1, 230, -1, 62, 34, 111, 228, + 112, -1, 233, -1, 233, 106, 233, -1, 62, 34, + 111, 233, 112, -1, 62, 46, 111, 231, 112, -1, + 234, -1, 234, 106, 234, -1, 62, 46, 111, 234, + 112, -1, 23, -1, 23, -1, 237, -1, 239, -1, + 238, -1, 239, -1, 240, -1, 24, -1, 23, -1, + 118, 240, 119, -1, 118, 240, 109, 240, 119, -1, + 118, 240, 109, 240, 109, 240, 119, -1, 118, 240, + 109, 240, 109, 240, 109, 240, 119, -1, 241, 24, + -1, 241, 23, -1, 113, -1, 114, -1, -1, -1, + 244, 11, 243, 247, -1, 262, -1, -1, -1, 5, + 246, 247, -1, 247, 109, 99, -1, 99, -1, 244, + 9, 99, 117, 249, -1, 65, 60, -1, 65, 37, + -1, 65, 250, -1, 65, 59, -1, 65, 74, 255, + -1, 65, 30, -1, 29, 251, 252, -1, -1, 39, + -1, 27, -1, -1, 61, -1, 68, -1, -1, 39, + -1, 27, -1, -1, 61, -1, 68, -1, -1, 111, + 258, 112, -1, -1, 111, 259, 112, -1, -1, 111, + 260, 112, -1, 23, -1, 23, -1, 23, -1, 6, + 99, 117, 100, -1, 99, -1, 100, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 266, 266, 269, 277, 289, 290, 293, 315, 316, - 319, 334, 337, 342, 349, 350, 351, 352, 353, 354, - 355, 358, 359, 360, 363, 369, 375, 381, 388, 394, - 401, 445, 452, 496, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 516, 528, 536, 553, - 560, 579, 590, 610, 632, 641, 674, 681, 696, 746, - 788, 799, 820, 830, 836, 867, 884, 884, 886, 893, - 905, 906, 907, 910, 922, 934, 952, 963, 975, 977, - 978, 979, 980, 983, 983, 983, 983, 984, 987, 988, - 989, 990, 991, 992, 995, 1013, 1017, 1023, 1027, 1031, - 1035, 1044, 1053, 1057, 1062, 1068, 1079, 1079, 1080, 1082, - 1086, 1090, 1094, 1100, 1100, 1102, 1118, 1141, 1144, 1155, - 1161, 1167, 1168, 1175, 1181, 1187, 1195, 1201, 1207, 1215, - 1221, 1227, 1235, 1236, 1239, 1240, 1241, 1242, 1243, 1244, - 1245, 1246, 1247, 1248, 1249, 1252, 1261, 1265, 1269, 1275, - 1284, 1288, 1292, 1301, 1305, 1311, 1317, 1324, 1329, 1337, - 1347, 1349, 1357, 1363, 1367, 1371, 1377, 1388, 1397, 1401, - 1406, 1410, 1414, 1418, 1424, 1431, 1435, 1441, 1449, 1460, - 1467, 1471, 1477, 1487, 1498, 1502, 1520, 1529, 1532, 1538, - 1542, 1546, 1552, 1563, 1568, 1573, 1578, 1583, 1588, 1596, - 1599, 1604, 1617, 1625, 1636, 1644, 1644, 1646, 1646, 1648, - 1658, 1663, 1670, 1680, 1689, 1694, 1701, 1711, 1721, 1733, - 1733, 1734, 1734, 1736, 1746, 1754, 1764, 1772, 1780, 1789, - 1800, 1804, 1810, 1811, 1812, 1815, 1815, 1818, 1853, 1857, - 1857, 1860, 1866, 1874, 1887, 1896, 1905, 1909, 1918, 1927, - 1938, 1945, 1950, 1959, 1971, 1974, 1983, 1994, 1995, 1996, - 1999, 2000, 2001, 2004, 2005, 2008, 2009, 2012, 2013, 2016, - 2027, 2038, 2049, 2070, 2071 + 0, 268, 268, 271, 279, 291, 292, 295, 317, 318, + 321, 336, 339, 344, 351, 352, 353, 354, 355, 356, + 357, 360, 361, 362, 365, 371, 377, 383, 390, 396, + 403, 447, 452, 462, 506, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 526, 538, 546, + 563, 570, 589, 600, 620, 645, 654, 687, 694, 709, + 759, 801, 812, 833, 843, 849, 880, 897, 897, 899, + 906, 918, 919, 920, 923, 935, 947, 965, 976, 988, + 990, 991, 992, 993, 996, 996, 996, 996, 997, 1000, + 1004, 1009, 1016, 1023, 1030, 1053, 1076, 1077, 1078, 1079, + 1080, 1081, 1084, 1102, 1106, 1112, 1116, 1120, 1124, 1133, + 1142, 1146, 1151, 1157, 1168, 1168, 1169, 1171, 1175, 1179, + 1183, 1189, 1189, 1191, 1207, 1230, 1233, 1244, 1250, 1256, + 1257, 1264, 1270, 1276, 1284, 1290, 1296, 1304, 1310, 1316, + 1324, 1325, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, + 1336, 1337, 1338, 1341, 1350, 1354, 1358, 1364, 1373, 1377, + 1381, 1390, 1394, 1400, 1406, 1413, 1418, 1426, 1436, 1438, + 1446, 1452, 1456, 1460, 1466, 1477, 1486, 1490, 1495, 1499, + 1503, 1507, 1513, 1520, 1524, 1530, 1538, 1549, 1556, 1560, + 1566, 1576, 1587, 1591, 1609, 1618, 1621, 1627, 1631, 1635, + 1641, 1652, 1657, 1662, 1667, 1672, 1677, 1685, 1688, 1693, + 1706, 1714, 1725, 1733, 1733, 1735, 1735, 1737, 1747, 1752, + 1759, 1769, 1778, 1783, 1790, 1800, 1810, 1822, 1822, 1823, + 1823, 1825, 1835, 1843, 1853, 1861, 1869, 1878, 1889, 1893, + 1899, 1900, 1901, 1904, 1904, 1907, 1942, 1946, 1946, 1949, + 1955, 1963, 1976, 1985, 1994, 1998, 2007, 2016, 2027, 2034, + 2039, 2048, 2060, 2063, 2072, 2083, 2084, 2085, 2088, 2089, + 2090, 2093, 2094, 2097, 2098, 2101, 2102, 2105, 2116, 2127, + 2138, 2159, 2160 }; #endif @@ -833,8 +837,8 @@ static const char *const yytname[] = "TEX_ARRAYSHADOW1D", "TEX_ARRAYSHADOW2D", "VERTEX", "VTXATTRIB", "WEIGHT", "IDENTIFIER", "USED_IDENTIFIER", "MASK4", "MASK3", "MASK2", "MASK1", "SWIZZLE", "DOT_DOT", "DOT", "';'", "','", "'|'", "'['", "']'", - "'+'", "'-'", "'='", "'{'", "'}'", "$accept", "program", "language", - "optionSequence", "option", "statementSequence", "statement", + "'+'", "'-'", "'('", "')'", "'='", "'{'", "'}'", "$accept", "program", + "language", "optionSequence", "option", "statementSequence", "statement", "instruction", "ALU_instruction", "TexInstruction", "ARL_instruction", "VECTORop_instruction", "SCALARop_instruction", "BINSCop_instruction", "BINop_instruction", "TRIop_instruction", "SAMPLE_instruction", @@ -845,6 +849,7 @@ static const char *const yytname[] = "progParamArrayAbs", "progParamArrayRel", "addrRegRelOffset", "addrRegPosOffset", "addrRegNegOffset", "addrReg", "addrComponent", "addrWriteMask", "scalarSuffix", "swizzleSuffix", "optionalMask", + "optionalCcMask", "ccTest", "ccTest2", "ccMaskRule", "ccMaskRule2", "namingStatement", "ATTRIB_statement", "attribBinding", "vtxAttribItem", "vtxAttribNum", "vtxOptWeightNum", "vtxWeightNum", "fragAttribItem", "PARAM_statement", "PARAM_singleStmt", "PARAM_multipleStmt", @@ -894,41 +899,42 @@ static const yytype_uint16 yytoknum[] = 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 59, 44, - 124, 91, 93, 43, 45, 61, 123, 125 + 124, 91, 93, 43, 45, 40, 41, 61, 123, 125 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = +static const yytype_uint16 yyr1[] = { - 0, 118, 119, 120, 120, 121, 121, 122, 123, 123, - 124, 124, 125, 125, 126, 126, 126, 126, 126, 126, - 126, 127, 127, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 138, 138, 138, 138, 138, - 138, 138, 138, 138, 138, 138, 139, 140, 140, 141, - 141, 142, 142, 143, 144, 145, 146, 147, 147, 148, - 148, 148, 148, 149, 149, 150, 151, 151, 152, 153, - 154, 154, 154, 155, 156, 157, 158, 159, 160, 161, - 161, 161, 161, 162, 162, 162, 162, 162, 163, 163, - 163, 163, 163, 163, 164, 165, 165, 166, 166, 166, - 166, 166, 166, 166, 166, 167, 168, 168, 169, 170, - 170, 170, 170, 171, 171, 172, 173, 174, 174, 175, - 176, 177, 177, 178, 178, 178, 179, 179, 179, 180, - 180, 180, 181, 181, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 183, 184, 184, 184, 185, - 186, 186, 186, 186, 186, 187, 188, 189, 189, 190, - 191, 192, 193, 194, 194, 194, 195, 196, 197, 197, - 198, 198, 198, 198, 199, 200, 200, 201, 202, 203, - 204, 204, 205, 206, 207, 207, 208, 209, 209, 210, - 210, 210, 211, 212, 212, 212, 212, 212, 212, 213, - 213, 214, 215, 216, 217, 218, 218, 219, 219, 220, - 221, 221, 222, 223, 224, 224, 225, 226, 227, 228, - 228, 229, 229, 230, 231, 231, 232, 232, 232, 232, - 233, 233, 234, 234, 234, 236, 235, 237, 237, 239, - 238, 240, 240, 241, 242, 242, 242, 242, 242, 242, - 243, 244, 244, 244, 245, 245, 245, 246, 246, 246, - 247, 247, 247, 248, 248, 249, 249, 250, 250, 251, - 252, 253, 254, 255, 255 + 0, 120, 121, 122, 122, 123, 123, 124, 125, 125, + 126, 126, 127, 127, 128, 128, 128, 128, 128, 128, + 128, 129, 129, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 137, 138, 139, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 141, 142, 142, + 143, 143, 144, 144, 145, 146, 147, 148, 149, 149, + 150, 150, 150, 150, 151, 151, 152, 153, 153, 154, + 155, 156, 156, 156, 157, 158, 159, 160, 161, 162, + 163, 163, 163, 163, 164, 164, 164, 164, 164, 165, + 165, 165, 166, 167, 168, 169, 170, 170, 170, 170, + 170, 170, 171, 172, 172, 173, 173, 173, 173, 173, + 173, 173, 173, 174, 175, 175, 176, 177, 177, 177, + 177, 178, 178, 179, 180, 181, 181, 182, 183, 184, + 184, 185, 185, 185, 186, 186, 186, 187, 187, 187, + 188, 188, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 190, 191, 191, 191, 192, 193, 193, + 193, 193, 193, 194, 195, 196, 196, 197, 198, 199, + 200, 201, 201, 201, 202, 203, 204, 204, 205, 205, + 205, 205, 206, 207, 207, 208, 209, 210, 211, 211, + 212, 213, 214, 214, 215, 216, 216, 217, 217, 217, + 218, 219, 219, 219, 219, 219, 219, 220, 220, 221, + 222, 223, 224, 225, 225, 226, 226, 227, 228, 228, + 229, 230, 231, 231, 232, 233, 234, 235, 235, 236, + 236, 237, 238, 238, 239, 239, 239, 239, 240, 240, + 241, 241, 241, 243, 242, 244, 244, 246, 245, 247, + 247, 248, 249, 249, 249, 249, 249, 249, 250, 251, + 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, + 254, 255, 255, 256, 256, 257, 257, 258, 259, 260, + 261, 262, 262 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -937,31 +943,32 @@ static const yytype_uint8 yyr2[] = 0, 2, 4, 1, 1, 2, 0, 3, 2, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 6, 6, 8, - 8, 2, 12, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 6, 2, 4, 2, - 1, 3, 5, 2, 2, 7, 2, 1, 1, 1, - 1, 4, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, - 1, 1, 1, 1, 4, 2, 2, 1, 2, 1, - 2, 1, 2, 4, 4, 1, 0, 3, 1, 1, - 2, 1, 2, 1, 1, 3, 6, 0, 1, 2, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 1, 1, 1, 5, - 1, 1, 1, 2, 1, 1, 2, 1, 2, 6, - 1, 3, 1, 1, 1, 1, 1, 4, 1, 1, - 1, 1, 1, 1, 2, 1, 1, 5, 1, 2, - 1, 1, 5, 2, 0, 6, 3, 0, 1, 1, - 1, 1, 1, 2, 1, 1, 2, 4, 4, 0, - 1, 1, 1, 1, 2, 1, 1, 1, 1, 5, - 1, 3, 5, 5, 1, 3, 5, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 5, 7, 9, - 2, 2, 1, 1, 0, 0, 4, 1, 0, 0, - 3, 3, 1, 5, 2, 2, 2, 2, 3, 2, - 3, 0, 1, 1, 0, 1, 1, 0, 1, 1, - 0, 1, 1, 0, 3, 0, 3, 0, 3, 1, - 1, 1, 4, 1, 1 + 8, 2, 2, 12, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 6, 2, 4, + 2, 1, 3, 5, 3, 2, 7, 2, 1, 1, + 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, + 3, 0, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 1, 1, 1, 0, 3, + 3, 0, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 2, 2, 1, 2, 1, 2, 1, + 2, 4, 4, 1, 0, 3, 1, 1, 2, 1, + 2, 1, 1, 3, 6, 0, 1, 2, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 1, 1, 1, 5, 1, 1, + 1, 2, 1, 1, 2, 1, 2, 6, 1, 3, + 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 5, 1, 2, 1, 1, + 5, 2, 0, 6, 3, 0, 1, 1, 1, 1, + 1, 2, 1, 1, 2, 4, 4, 0, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 5, 1, 3, + 5, 5, 1, 3, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 5, 7, 9, 2, 2, + 1, 1, 0, 0, 4, 1, 0, 0, 3, 3, + 1, 5, 2, 2, 2, 2, 3, 2, 3, 0, + 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, + 1, 0, 3, 0, 3, 0, 3, 1, 1, 1, + 4, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -969,288 +976,296 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 3, 4, 0, 6, 1, 9, 0, 5, 238, - 273, 274, 0, 239, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 234, 0, 0, 8, 0, + 0, 3, 4, 0, 6, 1, 9, 0, 5, 246, + 281, 282, 0, 247, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 242, 0, 0, 8, 0, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, - 23, 20, 0, 88, 89, 113, 114, 90, 0, 91, - 92, 93, 237, 7, 0, 0, 0, 0, 0, 64, - 0, 87, 63, 0, 0, 0, 0, 0, 75, 0, - 0, 232, 233, 31, 0, 0, 0, 10, 11, 0, - 235, 242, 240, 0, 0, 117, 234, 115, 251, 249, - 245, 247, 244, 263, 246, 234, 83, 84, 85, 86, - 53, 234, 234, 234, 234, 234, 234, 77, 54, 225, - 224, 0, 0, 0, 0, 59, 0, 234, 82, 0, - 60, 62, 126, 127, 205, 206, 128, 221, 222, 0, - 234, 0, 0, 0, 272, 94, 118, 0, 119, 123, - 124, 125, 219, 220, 223, 0, 253, 252, 254, 0, - 248, 0, 0, 0, 0, 26, 0, 25, 24, 260, - 111, 109, 263, 96, 0, 0, 0, 0, 0, 0, - 257, 0, 257, 0, 0, 267, 263, 134, 135, 136, - 137, 139, 138, 140, 141, 142, 143, 0, 144, 260, - 101, 0, 99, 97, 263, 0, 106, 95, 82, 0, - 80, 79, 81, 51, 0, 0, 0, 0, 236, 241, - 0, 231, 230, 255, 256, 250, 269, 0, 234, 234, - 0, 47, 0, 50, 0, 234, 261, 262, 110, 112, - 0, 0, 0, 204, 175, 176, 174, 0, 157, 259, - 258, 156, 0, 0, 0, 0, 199, 195, 0, 194, - 263, 187, 181, 180, 179, 0, 0, 0, 0, 100, - 0, 102, 0, 0, 98, 0, 234, 226, 68, 0, - 66, 67, 0, 234, 234, 243, 0, 116, 264, 28, - 27, 0, 78, 49, 265, 0, 0, 217, 0, 218, - 0, 178, 0, 166, 0, 158, 0, 163, 164, 147, - 148, 165, 145, 146, 0, 201, 193, 200, 0, 196, - 189, 191, 190, 186, 188, 271, 0, 162, 161, 168, - 169, 0, 0, 108, 0, 105, 0, 0, 52, 0, - 61, 76, 70, 46, 0, 0, 0, 234, 48, 0, - 33, 0, 234, 212, 216, 0, 0, 257, 203, 0, - 202, 0, 268, 173, 172, 170, 171, 167, 192, 0, - 103, 104, 107, 234, 227, 0, 0, 69, 234, 57, - 56, 58, 234, 0, 0, 0, 121, 129, 132, 130, - 207, 208, 131, 270, 0, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 30, 29, 177, - 152, 154, 151, 0, 149, 150, 0, 198, 197, 182, - 0, 73, 71, 74, 72, 0, 0, 0, 0, 133, - 184, 234, 120, 266, 155, 153, 159, 160, 234, 228, - 234, 0, 0, 0, 0, 183, 122, 0, 0, 0, - 0, 210, 0, 214, 0, 229, 234, 0, 209, 0, - 213, 0, 0, 55, 32, 211, 215, 0, 0, 185 + 23, 20, 0, 96, 97, 121, 122, 98, 0, 99, + 100, 101, 245, 7, 0, 0, 0, 0, 0, 65, + 0, 88, 64, 0, 0, 0, 0, 0, 76, 0, + 0, 94, 240, 241, 31, 32, 83, 0, 0, 0, + 10, 11, 0, 243, 250, 248, 0, 0, 125, 242, + 123, 259, 257, 253, 255, 252, 271, 254, 242, 84, + 85, 86, 87, 91, 242, 242, 242, 242, 242, 242, + 78, 55, 81, 80, 82, 92, 233, 232, 0, 0, + 0, 0, 60, 0, 242, 83, 0, 61, 63, 134, + 135, 213, 214, 136, 229, 230, 0, 242, 0, 0, + 0, 280, 102, 126, 0, 127, 131, 132, 133, 227, + 228, 231, 0, 261, 260, 262, 0, 256, 0, 0, + 54, 0, 0, 0, 26, 0, 25, 24, 268, 119, + 117, 271, 104, 0, 0, 0, 0, 0, 0, 265, + 0, 265, 0, 0, 275, 271, 142, 143, 144, 145, + 147, 146, 148, 149, 150, 151, 0, 152, 268, 109, + 0, 107, 105, 271, 0, 114, 103, 83, 0, 52, + 0, 0, 0, 0, 244, 249, 0, 239, 238, 263, + 264, 258, 277, 0, 242, 95, 0, 0, 83, 242, + 0, 48, 0, 51, 0, 242, 269, 270, 118, 120, + 0, 0, 0, 212, 183, 184, 182, 0, 165, 267, + 266, 164, 0, 0, 0, 0, 207, 203, 0, 202, + 271, 195, 189, 188, 187, 0, 0, 0, 0, 108, + 0, 110, 0, 0, 106, 0, 242, 234, 69, 0, + 67, 68, 0, 242, 242, 251, 0, 124, 272, 28, + 89, 90, 93, 27, 0, 79, 50, 273, 0, 0, + 225, 0, 226, 0, 186, 0, 174, 0, 166, 0, + 171, 172, 155, 156, 173, 153, 154, 0, 209, 201, + 208, 0, 204, 197, 199, 198, 194, 196, 279, 0, + 170, 169, 176, 177, 0, 0, 116, 0, 113, 0, + 0, 53, 0, 62, 77, 71, 47, 0, 0, 0, + 242, 49, 0, 34, 0, 242, 220, 224, 0, 0, + 265, 211, 0, 210, 0, 276, 181, 180, 178, 179, + 175, 200, 0, 111, 112, 115, 242, 235, 0, 0, + 70, 242, 58, 57, 59, 242, 0, 0, 0, 129, + 137, 140, 138, 215, 216, 139, 278, 0, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 30, 29, 185, 160, 162, 159, 0, 157, 158, 0, + 206, 205, 190, 0, 74, 72, 75, 73, 0, 0, + 0, 0, 141, 192, 242, 128, 274, 163, 161, 167, + 168, 242, 236, 242, 0, 0, 0, 0, 191, 130, + 0, 0, 0, 0, 218, 0, 222, 0, 237, 242, + 0, 217, 0, 221, 0, 0, 56, 33, 219, 223, + 0, 0, 193 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 3, 4, 6, 8, 9, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 285, - 397, 41, 152, 221, 73, 60, 69, 333, 334, 370, - 222, 61, 119, 269, 270, 271, 367, 412, 414, 70, - 332, 108, 283, 203, 100, 42, 43, 120, 197, 326, - 264, 324, 163, 44, 45, 46, 137, 87, 277, 375, - 138, 121, 376, 377, 122, 177, 302, 178, 404, 425, - 179, 241, 180, 426, 181, 318, 303, 294, 182, 321, - 357, 183, 236, 184, 292, 185, 254, 186, 419, 435, - 187, 313, 314, 359, 251, 306, 307, 351, 349, 188, - 123, 379, 380, 440, 124, 381, 442, 125, 288, 290, - 382, 126, 142, 127, 128, 144, 74, 47, 132, 48, - 49, 54, 82, 50, 62, 94, 148, 215, 242, 228, - 150, 340, 256, 217, 384, 316, 51, 12 + 32, 33, 34, 35, 36, 37, 38, 39, 40, 298, + 410, 41, 161, 231, 74, 60, 69, 346, 347, 383, + 232, 61, 126, 279, 280, 281, 380, 425, 427, 70, + 345, 111, 296, 115, 103, 160, 75, 227, 76, 228, + 42, 43, 127, 206, 339, 274, 337, 172, 44, 45, + 46, 144, 90, 287, 388, 145, 128, 389, 390, 129, + 186, 315, 187, 417, 438, 188, 251, 189, 439, 190, + 331, 316, 307, 191, 334, 370, 192, 246, 193, 305, + 194, 264, 195, 432, 448, 196, 326, 327, 372, 261, + 319, 320, 364, 362, 197, 130, 392, 393, 453, 131, + 394, 455, 132, 301, 303, 395, 133, 149, 134, 135, + 151, 77, 47, 139, 48, 49, 54, 85, 50, 62, + 97, 155, 221, 252, 238, 157, 353, 266, 223, 397, + 329, 51, 12 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -401 +#define YYPACT_NINF -387 static const yytype_int16 yypact[] = { - 122, -401, -401, 49, -401, -401, 56, 61, -401, 20, - -401, -401, -5, -401, 7, 45, 78, -401, -47, -47, - -47, -47, -47, -47, 79, 85, -47, -47, -401, 99, - -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, - -401, -401, 127, -401, -401, -401, -401, -401, 120, -401, - -401, -401, -401, -401, 135, 133, 134, 25, 129, -401, - 138, 137, -401, 145, 146, 147, 148, 151, -401, 152, - 154, -401, -401, -401, -14, 153, 155, -401, -401, 143, - -401, -401, 156, 163, 14, 243, 32, -401, 31, -401, - -401, -401, -401, 157, -401, 85, -401, -401, -401, -401, - -401, 85, 85, 85, 85, 85, 85, -401, -401, -401, - -401, 112, 149, 126, 54, 158, 27, 85, 132, 159, - -401, -401, -401, -401, -401, -401, -401, -401, -401, 27, - 85, 160, 135, 168, -401, -401, -401, 161, -401, -401, - -401, -401, -401, -401, -401, 198, -401, -401, 89, 248, - -401, 167, 169, 22, 170, -401, 171, -401, -401, 117, - -401, -401, 157, -401, 172, 173, 174, 208, -1, 175, - 53, 176, 165, 142, -3, 177, 157, -401, -401, -401, - -401, -401, -401, -401, -401, -401, -401, 215, -401, 117, - -401, 179, -401, -401, 157, 180, 181, -401, 132, -38, - -401, -401, -401, -401, -10, 184, 185, 209, 156, -401, - 182, -401, -401, -401, -401, -401, -401, 183, 85, 85, - 27, -401, 192, 194, 216, 85, -401, -401, -401, -401, - 277, 278, 279, -401, -401, -401, -401, 280, -401, -401, - -401, -401, 237, 280, 68, 195, 282, -401, 196, -401, - 157, 33, -401, -401, -401, 285, 281, 19, 200, -401, - 286, -401, 289, 286, -401, 203, 85, -401, -401, 202, - -401, -401, 212, 85, 85, -401, 201, -401, -401, -401, - -401, 210, -401, -401, 207, 213, 214, -401, 218, -401, - 219, -401, 220, -401, 221, -401, 222, -401, -401, -401, - -401, -401, -401, -401, 296, -401, -401, -401, 298, -401, - -401, -401, -401, -401, -401, -401, 226, -401, -401, -401, - -401, 166, 301, -401, 227, -401, 228, 229, -401, 46, - -401, -401, 116, -401, 217, -12, 234, 51, -401, 302, - -401, 125, 85, -401, -401, 270, 37, 165, -401, 233, - -401, 235, -401, -401, -401, -401, -401, -401, -401, 236, - -401, -401, -401, 85, -401, 305, 323, -401, 85, -401, - -401, -401, 85, 162, 126, 59, -401, -401, -401, -401, - -401, -401, -401, -401, 238, -401, -401, -401, -401, -401, - -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, - -401, -401, -401, 317, -401, -401, 41, -401, -401, -401, - 65, -401, -401, -401, -401, 242, 244, 241, 245, -401, - 288, 51, -401, -401, -401, -401, -401, -401, 85, -401, - 85, 216, 277, 278, 246, -401, -401, 247, 249, 250, - 251, 255, 253, 256, 301, -401, 85, 125, -401, 277, - -401, 278, 94, -401, -401, -401, -401, 301, 254, -401 + 202, -387, -387, 67, -387, -387, 73, -73, -387, 24, + -387, -387, -4, -387, 78, 84, 127, -387, -18, -18, + -18, -18, -18, -18, 66, 44, -18, -18, -387, 138, + -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, + -387, -387, 144, -387, -387, -387, -387, -387, 236, -387, + -387, -387, -387, -387, 154, 140, 141, 10, 133, -387, + 145, 136, -387, 150, 151, 155, 156, 157, -387, 158, + 166, -387, -387, -387, -387, -387, 131, -13, 159, 162, + -387, -387, 173, -387, -387, 165, 175, 23, 232, 0, + -387, 125, -387, -387, -387, -387, 167, -387, 116, -387, + -387, -387, -387, 161, 116, 116, 116, 116, 116, 116, + -387, -387, -387, -387, -387, -387, -387, -387, 105, 98, + 92, 19, 168, 30, 116, 131, 169, -387, -387, -387, + -387, -387, -387, -387, -387, -387, 30, 116, 160, 154, + 174, -387, -387, -387, 170, -387, -387, -387, -387, -387, + -387, -387, 210, -387, -387, 134, 258, -387, 176, 149, + -387, 177, -10, 179, -387, 180, -387, -387, 135, -387, + -387, 167, -387, 172, 182, 183, 220, 46, 184, 106, + 185, 146, 123, 7, 186, 167, -387, -387, -387, -387, + -387, -387, -387, -387, -387, -387, 224, -387, 135, -387, + 187, -387, -387, 167, 189, 190, -387, 131, -45, -387, + 1, 193, 194, 226, 165, -387, 188, -387, -387, -387, + -387, -387, -387, 192, 116, -387, 191, 195, 131, 116, + 30, -387, 204, 205, 223, 116, -387, -387, -387, -387, + 287, 289, 290, -387, -387, -387, -387, 291, -387, -387, + -387, -387, 248, 291, 128, 206, 293, -387, 207, -387, + 167, 16, -387, -387, -387, 296, 294, 45, 209, -387, + 299, -387, 301, 299, -387, 215, 116, -387, -387, 214, + -387, -387, 225, 116, 116, -387, 212, -387, -387, -387, + -387, -387, -387, -387, 217, -387, -387, 221, 219, 222, + -387, 227, -387, 228, -387, 229, -387, 231, -387, 237, + -387, -387, -387, -387, -387, -387, -387, 310, -387, -387, + -387, 311, -387, -387, -387, -387, -387, -387, -387, 238, + -387, -387, -387, -387, 164, 312, -387, 239, -387, 241, + 243, -387, 63, -387, -387, 137, -387, 235, -15, 247, + 33, -387, 313, -387, 124, 116, -387, -387, 280, 129, + 146, -387, 245, -387, 246, -387, -387, -387, -387, -387, + -387, -387, 249, -387, -387, -387, 116, -387, 315, 325, + -387, 116, -387, -387, -387, 116, 142, 92, 71, -387, + -387, -387, -387, -387, -387, -387, -387, 250, -387, -387, + -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, + -387, -387, -387, -387, -387, -387, 327, -387, -387, 40, + -387, -387, -387, 72, -387, -387, -387, -387, 251, 254, + 253, 255, -387, 302, 33, -387, -387, -387, -387, -387, + -387, 116, -387, 116, 223, 287, 289, 256, -387, -387, + 252, 260, 263, 261, 259, 262, 269, 312, -387, 116, + 124, -387, 287, -387, 289, 119, -387, -387, -387, -387, + 312, 264, -387 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, - -401, -401, -401, -401, -401, -401, -401, -401, -401, -76, - -80, -401, -98, 150, -83, 205, -401, -401, -361, -401, - -18, -401, -401, -401, -401, -401, -401, -401, -401, 164, - -401, -401, -401, 178, -401, -401, -401, 287, -401, -401, - -401, 106, -401, -401, -401, -401, -401, -401, -401, -401, - -401, -401, -49, -401, -85, -401, -401, -401, -401, -401, - -401, -401, -401, -401, -401, -401, -330, 130, -401, -401, - -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, - 0, -401, -401, -400, -401, -401, -401, -401, -401, -401, - 291, -401, -401, -401, -401, -401, -401, -401, -302, -317, - 292, -401, -401, -139, -84, -113, -86, -401, -401, -401, - -401, -401, 252, -401, 186, -401, -401, -401, -166, 190, - -133, -401, -401, -401, -401, -401, -401, -6 + -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, + -387, -387, -387, -387, -387, -387, -387, -387, -387, -67, + -82, -387, -100, 152, -86, 201, -387, -387, -365, -387, + -11, -387, -387, -387, -387, -387, -387, -387, -387, 171, + -387, -387, -387, -118, -387, -387, 230, -387, -387, -387, + -387, -387, 292, -387, -387, -387, 107, -387, -387, -387, + -387, -387, -387, -387, -387, -387, -387, -51, -387, -88, + -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, + -387, -304, 132, -387, -387, -387, -387, -387, -387, -387, + -387, -387, -387, -387, -387, -3, -387, -387, -361, -387, + -387, -387, -387, -387, -387, 297, -387, -387, -387, -387, + -387, -387, -387, -386, -376, 298, -387, -387, -139, -87, + -120, -89, -387, -387, -387, -387, -387, 257, -387, 178, + -387, -387, -387, -176, 196, -153, -387, -387, -387, -387, + -387, -387, -6 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -222 +#define YYTABLE_NINF -230 static const yytype_int16 yytable[] = { - 145, 139, 143, 52, 199, 155, 244, 415, 158, 109, - 110, 369, 151, 268, 223, 153, 405, 153, 58, 154, - 153, 156, 157, 252, 111, 13, 14, 15, 234, 229, - 16, 145, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 257, 452, 109, 110, 206, 112, 5, - 109, 110, 111, 59, 319, 235, 118, 458, 146, 113, - 111, 261, 297, 400, 7, 111, 297, 253, 298, 438, - 147, 266, 298, 320, 310, 311, 427, 401, 238, 267, - 239, 223, 114, 189, 112, 453, 115, 10, 11, 112, - 68, 190, 240, 297, 112, 113, 116, 402, 198, 298, - 113, 299, 117, 53, 191, 113, 55, 192, 301, 403, - 114, 205, 301, 373, 193, 312, 443, 309, 114, 10, - 11, 280, 115, 114, 374, 1, 2, 115, 194, 79, - 441, 80, 220, 153, 456, 279, 85, 300, 117, 301, - 86, 159, 286, 117, 56, 71, 72, 455, 117, 160, - 213, 195, 196, 329, 166, 363, 167, 214, 88, 89, - 10, 11, 168, 364, 71, 72, 90, 117, 421, 169, - 170, 171, 161, 172, 428, 173, 422, 57, 226, 68, - 145, 406, 429, 164, 174, 227, 162, 335, 91, 92, - 245, 336, 239, 246, 247, 165, 417, 248, 71, 72, - 457, 175, 176, 93, 240, 249, 409, 77, 418, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 211, 212, 250, 63, 64, 65, 66, 67, 365, - 366, 75, 76, 200, 81, 78, 201, 202, 96, 97, - 98, 99, 131, 353, 354, 355, 356, 95, 83, 84, - 410, 145, 378, 143, 101, 102, 103, 104, 107, 398, - 105, 106, 129, 134, 130, 133, 136, 209, 149, -65, - 204, 216, 233, 210, 58, 207, 218, 145, 219, 224, - 225, 258, 335, 230, 231, 232, 237, 243, 255, 416, - 260, 262, 263, 273, 274, 278, 282, 276, -221, 284, - 287, 289, 291, 293, 295, 305, 304, 308, 315, 323, - 317, 322, 325, 328, 330, 437, 331, 337, 339, 348, - 338, 350, 341, 342, 358, 383, 368, 399, 411, 371, - 343, 344, 345, 346, 347, 145, 378, 143, 352, 360, - 361, 362, 145, 372, 335, 407, 413, 408, 409, 424, - 423, 430, 432, 431, 434, 439, 433, 444, 446, 447, - 335, 449, 451, 448, 445, 450, 459, 454, 272, 327, - 281, 135, 436, 296, 420, 0, 265, 140, 141, 259, - 0, 0, 0, 0, 208, 0, 0, 0, 0, 0, - 0, 0, 0, 275 + 152, 146, 150, 52, 208, 254, 164, 209, 382, 167, + 116, 117, 158, 116, 117, 162, 428, 162, 239, 163, + 162, 165, 166, 233, 278, 118, 10, 11, 118, 13, + 14, 15, 267, 262, 16, 152, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 58, 198, 119, + 271, 212, 119, 116, 117, 418, 199, 323, 324, 454, + 120, 118, 119, 120, 276, 310, 125, 5, 118, 200, + 456, 311, 201, 120, 277, 244, 468, 263, 451, 202, + 332, 7, 59, 121, 10, 11, 121, 122, 469, 275, + 122, 233, 119, 203, 466, 386, 465, 123, 325, 333, + 230, 68, 245, 120, 53, 124, 387, 322, 124, 471, + 292, 314, 207, 72, 73, 440, 204, 205, 124, 121, + 175, 88, 176, 10, 11, 211, 121, 89, 177, 293, + 122, 248, 173, 249, 168, 178, 179, 180, 289, 181, + 162, 182, 169, 71, 174, 250, 72, 73, 124, 299, + 183, 124, 153, 310, 310, 413, 342, 72, 73, 311, + 311, 312, 91, 92, 154, 170, 68, 184, 185, 414, + 93, 255, 376, 249, 256, 257, 430, 55, 258, 171, + 434, 441, 377, 56, 419, 250, 259, 152, 431, 415, + 435, 442, 94, 95, 348, 219, 236, 313, 349, 314, + 314, 416, 220, 237, 260, 1, 2, 96, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 63, 64, 65, 66, 67, 470, 57, 78, 79, 72, + 73, 422, 112, 217, 218, 113, 114, 99, 100, 101, + 102, 366, 367, 368, 369, 82, 80, 83, 71, 225, + 378, 379, 81, 84, 98, 143, 423, 86, 87, 104, + 105, 152, 391, 150, 106, 107, 108, 109, 136, 411, + 110, 137, 138, 215, 140, 141, 159, 213, 156, -66, + 210, 222, 216, 240, 243, 224, 229, 152, 234, 235, + 268, 58, 348, 241, 242, 247, 253, 265, 270, 429, + 272, 273, 283, 284, 288, 286, 297, 290, 295, -229, + 300, 291, 302, 304, 306, 308, 318, 317, 321, 328, + 335, 450, 336, 330, 338, 341, 343, 351, 354, 344, + 350, 355, 352, 361, 363, 371, 396, 412, 424, 356, + 357, 358, 384, 359, 381, 152, 391, 150, 426, 360, + 365, 373, 152, 374, 348, 375, 385, 420, 421, 437, + 443, 422, 436, 444, 445, 462, 446, 457, 447, 459, + 348, 458, 460, 461, 463, 464, 472, 452, 467, 142, + 340, 282, 294, 449, 433, 309, 147, 148, 0, 226, + 0, 285, 0, 0, 269, 0, 214 }; static const yytype_int16 yycheck[] = { - 86, 86, 86, 9, 117, 103, 172, 368, 106, 23, - 24, 23, 95, 23, 153, 101, 346, 103, 65, 102, - 106, 104, 105, 26, 38, 5, 6, 7, 29, 162, - 10, 117, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 176, 444, 23, 24, 130, 62, 0, - 23, 24, 38, 100, 35, 56, 74, 457, 27, 73, - 38, 194, 25, 26, 8, 38, 25, 70, 31, 430, - 39, 109, 31, 54, 41, 42, 406, 40, 25, 117, - 27, 220, 96, 29, 62, 446, 100, 99, 100, 62, - 100, 37, 39, 25, 62, 73, 110, 60, 116, 31, - 73, 33, 116, 108, 50, 73, 99, 53, 71, 72, - 96, 129, 71, 62, 60, 82, 433, 250, 96, 99, - 100, 219, 100, 96, 73, 3, 4, 100, 74, 9, - 432, 11, 110, 219, 451, 218, 111, 69, 116, 71, - 115, 29, 225, 116, 99, 113, 114, 449, 116, 37, - 61, 97, 98, 266, 28, 109, 30, 68, 29, 30, - 99, 100, 36, 117, 113, 114, 37, 116, 109, 43, - 44, 45, 60, 47, 109, 49, 117, 99, 61, 100, - 266, 347, 117, 34, 58, 68, 74, 273, 59, 60, - 48, 274, 27, 51, 52, 46, 34, 55, 113, 114, - 106, 75, 76, 74, 39, 63, 112, 108, 46, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 23, 24, 81, 19, 20, 21, 22, 23, 113, - 114, 26, 27, 101, 99, 108, 104, 105, 101, 102, - 103, 104, 99, 77, 78, 79, 80, 109, 115, 115, - 363, 337, 337, 337, 109, 109, 109, 109, 104, 342, - 109, 109, 109, 100, 109, 109, 23, 99, 111, 111, - 111, 23, 64, 112, 65, 115, 109, 363, 109, 109, - 109, 66, 368, 111, 111, 111, 111, 111, 111, 372, - 111, 111, 111, 109, 109, 112, 104, 115, 104, 83, - 23, 23, 23, 23, 67, 23, 111, 111, 23, 23, - 29, 111, 23, 110, 112, 428, 104, 116, 111, 23, - 110, 23, 109, 109, 23, 23, 109, 57, 23, 335, - 112, 112, 112, 112, 112, 421, 421, 421, 112, 112, - 112, 112, 428, 109, 430, 112, 23, 112, 112, 32, - 112, 109, 111, 109, 66, 431, 111, 111, 109, 109, - 446, 106, 106, 112, 117, 112, 112, 447, 204, 263, - 220, 84, 421, 243, 374, -1, 198, 86, 86, 189, - -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, - -1, -1, -1, 207 + 89, 89, 89, 9, 124, 181, 106, 125, 23, 109, + 23, 24, 98, 23, 24, 104, 381, 106, 171, 105, + 109, 107, 108, 162, 23, 38, 99, 100, 38, 5, + 6, 7, 185, 26, 10, 124, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 65, 29, 62, + 203, 137, 62, 23, 24, 359, 37, 41, 42, 445, + 73, 38, 62, 73, 109, 25, 77, 0, 38, 50, + 446, 31, 53, 73, 119, 29, 462, 70, 443, 60, + 35, 8, 100, 96, 99, 100, 96, 100, 464, 207, + 100, 230, 62, 74, 459, 62, 457, 110, 82, 54, + 110, 100, 56, 73, 108, 118, 73, 260, 118, 470, + 228, 71, 123, 113, 114, 419, 97, 98, 118, 96, + 28, 111, 30, 99, 100, 136, 96, 117, 36, 229, + 100, 25, 34, 27, 29, 43, 44, 45, 224, 47, + 229, 49, 37, 99, 46, 39, 113, 114, 118, 235, + 58, 118, 27, 25, 25, 26, 276, 113, 114, 31, + 31, 33, 29, 30, 39, 60, 100, 75, 76, 40, + 37, 48, 109, 27, 51, 52, 34, 99, 55, 74, + 109, 109, 119, 99, 360, 39, 63, 276, 46, 60, + 119, 119, 59, 60, 283, 61, 61, 69, 284, 71, + 71, 72, 68, 68, 81, 3, 4, 74, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 19, 20, 21, 22, 23, 106, 99, 26, 27, 113, + 114, 112, 101, 23, 24, 104, 105, 101, 102, 103, + 104, 77, 78, 79, 80, 9, 108, 11, 99, 100, + 113, 114, 108, 99, 109, 23, 376, 117, 117, 109, + 109, 350, 350, 350, 109, 109, 109, 109, 109, 355, + 104, 109, 99, 99, 109, 100, 115, 117, 111, 111, + 111, 23, 112, 111, 64, 109, 109, 376, 109, 109, + 66, 65, 381, 111, 111, 111, 111, 111, 111, 385, + 111, 111, 109, 109, 112, 117, 83, 116, 104, 104, + 23, 116, 23, 23, 23, 67, 23, 111, 111, 23, + 111, 441, 23, 29, 23, 110, 112, 110, 109, 104, + 118, 109, 111, 23, 23, 23, 23, 57, 23, 112, + 112, 112, 348, 112, 109, 434, 434, 434, 23, 112, + 112, 112, 441, 112, 443, 112, 109, 112, 112, 32, + 109, 112, 112, 109, 111, 106, 111, 111, 66, 109, + 459, 119, 109, 112, 112, 106, 112, 444, 460, 87, + 273, 210, 230, 434, 387, 253, 89, 89, -1, 159, + -1, 213, -1, -1, 198, -1, 139 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = +static const yytype_uint16 yystos[] = { - 0, 3, 4, 119, 120, 0, 121, 8, 122, 123, - 99, 100, 255, 5, 6, 7, 10, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 139, 163, 164, 171, 172, 173, 235, 237, 238, - 241, 254, 255, 108, 239, 99, 99, 99, 65, 100, - 143, 149, 242, 143, 143, 143, 143, 143, 100, 144, - 157, 113, 114, 142, 234, 143, 143, 108, 108, 9, - 11, 99, 240, 115, 115, 111, 115, 175, 29, 30, - 37, 59, 60, 74, 243, 109, 101, 102, 103, 104, - 162, 109, 109, 109, 109, 109, 109, 104, 159, 23, - 24, 38, 62, 73, 96, 100, 110, 116, 148, 150, - 165, 179, 182, 218, 222, 225, 229, 231, 232, 109, - 109, 99, 236, 109, 100, 165, 23, 174, 178, 182, - 218, 228, 230, 232, 233, 234, 27, 39, 244, 111, - 248, 142, 140, 234, 142, 140, 142, 142, 140, 29, - 37, 60, 74, 170, 34, 46, 28, 30, 36, 43, - 44, 45, 47, 49, 58, 75, 76, 183, 185, 188, - 190, 192, 196, 199, 201, 203, 205, 208, 217, 29, - 37, 50, 53, 60, 74, 97, 98, 166, 148, 233, - 101, 104, 105, 161, 111, 148, 142, 115, 240, 99, - 112, 23, 24, 61, 68, 245, 23, 251, 109, 109, - 110, 141, 148, 231, 109, 109, 61, 68, 247, 248, - 111, 111, 111, 64, 29, 56, 200, 111, 25, 27, - 39, 189, 246, 111, 246, 48, 51, 52, 55, 63, - 81, 212, 26, 70, 204, 111, 250, 248, 66, 247, - 111, 248, 111, 111, 168, 161, 109, 117, 23, 151, - 152, 153, 157, 109, 109, 242, 115, 176, 112, 142, - 140, 141, 104, 160, 83, 137, 142, 23, 226, 23, - 227, 23, 202, 23, 195, 67, 195, 25, 31, 33, - 69, 71, 184, 194, 111, 23, 213, 214, 111, 248, - 41, 42, 82, 209, 210, 23, 253, 29, 193, 35, - 54, 197, 111, 23, 169, 23, 167, 169, 110, 233, - 112, 104, 158, 145, 146, 234, 142, 116, 110, 111, - 249, 109, 109, 112, 112, 112, 112, 112, 23, 216, - 23, 215, 112, 77, 78, 79, 80, 198, 23, 211, - 112, 112, 112, 109, 117, 113, 114, 154, 109, 23, - 147, 255, 109, 62, 73, 177, 180, 181, 182, 219, - 220, 223, 228, 23, 252, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 138, 142, 57, - 26, 40, 60, 72, 186, 194, 246, 112, 112, 112, - 233, 23, 155, 23, 156, 146, 142, 34, 46, 206, - 208, 109, 117, 112, 32, 187, 191, 194, 109, 117, - 109, 109, 111, 111, 66, 207, 180, 233, 146, 137, - 221, 226, 224, 227, 111, 117, 109, 109, 112, 106, - 112, 106, 211, 146, 138, 226, 227, 106, 211, 112 + 0, 3, 4, 121, 122, 0, 123, 8, 124, 125, + 99, 100, 262, 5, 6, 7, 10, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 141, 170, 171, 178, 179, 180, 242, 244, 245, + 248, 261, 262, 108, 246, 99, 99, 99, 65, 100, + 145, 151, 249, 145, 145, 145, 145, 145, 100, 146, + 159, 99, 113, 114, 144, 166, 168, 241, 145, 145, + 108, 108, 9, 11, 99, 247, 117, 117, 111, 117, + 182, 29, 30, 37, 59, 60, 74, 250, 109, 101, + 102, 103, 104, 164, 109, 109, 109, 109, 109, 109, + 104, 161, 101, 104, 105, 163, 23, 24, 38, 62, + 73, 96, 100, 110, 118, 150, 152, 172, 186, 189, + 225, 229, 232, 236, 238, 239, 109, 109, 99, 243, + 109, 100, 172, 23, 181, 185, 189, 225, 235, 237, + 239, 240, 241, 27, 39, 251, 111, 255, 144, 115, + 165, 142, 241, 144, 142, 144, 144, 142, 29, 37, + 60, 74, 177, 34, 46, 28, 30, 36, 43, 44, + 45, 47, 49, 58, 75, 76, 190, 192, 195, 197, + 199, 203, 206, 208, 210, 212, 215, 224, 29, 37, + 50, 53, 60, 74, 97, 98, 173, 150, 240, 163, + 111, 150, 144, 117, 247, 99, 112, 23, 24, 61, + 68, 252, 23, 258, 109, 100, 166, 167, 169, 109, + 110, 143, 150, 238, 109, 109, 61, 68, 254, 255, + 111, 111, 111, 64, 29, 56, 207, 111, 25, 27, + 39, 196, 253, 111, 253, 48, 51, 52, 55, 63, + 81, 219, 26, 70, 211, 111, 257, 255, 66, 254, + 111, 255, 111, 111, 175, 163, 109, 119, 23, 153, + 154, 155, 159, 109, 109, 249, 117, 183, 112, 144, + 116, 116, 163, 142, 143, 104, 162, 83, 139, 144, + 23, 233, 23, 234, 23, 209, 23, 202, 67, 202, + 25, 31, 33, 69, 71, 191, 201, 111, 23, 220, + 221, 111, 255, 41, 42, 82, 216, 217, 23, 260, + 29, 200, 35, 54, 204, 111, 23, 176, 23, 174, + 176, 110, 240, 112, 104, 160, 147, 148, 241, 144, + 118, 110, 111, 256, 109, 109, 112, 112, 112, 112, + 112, 23, 223, 23, 222, 112, 77, 78, 79, 80, + 205, 23, 218, 112, 112, 112, 109, 119, 113, 114, + 156, 109, 23, 149, 262, 109, 62, 73, 184, 187, + 188, 189, 226, 227, 230, 235, 23, 259, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 140, 144, 57, 26, 40, 60, 72, 193, 201, 253, + 112, 112, 112, 240, 23, 157, 23, 158, 148, 144, + 34, 46, 213, 215, 109, 119, 112, 32, 194, 198, + 201, 109, 119, 109, 109, 111, 111, 66, 214, 187, + 240, 148, 139, 228, 233, 231, 234, 111, 119, 109, + 109, 112, 106, 112, 106, 218, 148, 140, 233, 234, + 106, 218, 112 }; #define yyerrok (yyerrstatus = 0) @@ -2104,7 +2119,7 @@ yyreduce: case 3: /* Line 1455 of yacc.c */ -#line 270 "program_parse.y" +#line 272 "program_parse.y" { if (state->prog->Target != GL_VERTEX_PROGRAM_ARB) { yyerror(& (yylsp[(1) - (1)]), state, "invalid fragment program header"); @@ -2117,7 +2132,7 @@ yyreduce: case 4: /* Line 1455 of yacc.c */ -#line 278 "program_parse.y" +#line 280 "program_parse.y" { if (state->prog->Target != GL_FRAGMENT_PROGRAM_ARB) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex program header"); @@ -2132,7 +2147,7 @@ yyreduce: case 7: /* Line 1455 of yacc.c */ -#line 294 "program_parse.y" +#line 296 "program_parse.y" { int valid = 0; @@ -2157,7 +2172,7 @@ yyreduce: case 10: /* Line 1455 of yacc.c */ -#line 320 "program_parse.y" +#line 322 "program_parse.y" { if ((yyvsp[(1) - (2)].inst) != NULL) { if (state->inst_tail == NULL) { @@ -2177,7 +2192,7 @@ yyreduce: case 12: /* Line 1455 of yacc.c */ -#line 338 "program_parse.y" +#line 340 "program_parse.y" { (yyval.inst) = (yyvsp[(1) - (1)].inst); state->prog->NumAluInstructions++; @@ -2187,7 +2202,7 @@ yyreduce: case 13: /* Line 1455 of yacc.c */ -#line 343 "program_parse.y" +#line 345 "program_parse.y" { (yyval.inst) = (yyvsp[(1) - (1)].inst); state->prog->NumTexInstructions++; @@ -2197,7 +2212,7 @@ yyreduce: case 24: /* Line 1455 of yacc.c */ -#line 364 "program_parse.y" +#line 366 "program_parse.y" { (yyval.inst) = asm_instruction_ctor(OPCODE_ARL, & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} @@ -2206,7 +2221,7 @@ yyreduce: case 25: /* Line 1455 of yacc.c */ -#line 370 "program_parse.y" +#line 372 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (4)].temp_inst), & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} @@ -2215,7 +2230,7 @@ yyreduce: case 26: /* Line 1455 of yacc.c */ -#line 376 "program_parse.y" +#line 378 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (4)].temp_inst), & (yyvsp[(2) - (4)].dst_reg), & (yyvsp[(4) - (4)].src_reg), NULL, NULL); ;} @@ -2224,7 +2239,7 @@ yyreduce: case 27: /* Line 1455 of yacc.c */ -#line 382 "program_parse.y" +#line 384 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); ;} @@ -2233,7 +2248,7 @@ yyreduce: case 28: /* Line 1455 of yacc.c */ -#line 389 "program_parse.y" +#line 391 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (6)].temp_inst), & (yyvsp[(2) - (6)].dst_reg), & (yyvsp[(4) - (6)].src_reg), & (yyvsp[(6) - (6)].src_reg), NULL); ;} @@ -2242,7 +2257,7 @@ yyreduce: case 29: /* Line 1455 of yacc.c */ -#line 396 "program_parse.y" +#line 398 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (8)].temp_inst), & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), & (yyvsp[(6) - (8)].src_reg), & (yyvsp[(8) - (8)].src_reg)); ;} @@ -2251,7 +2266,7 @@ yyreduce: case 30: /* Line 1455 of yacc.c */ -#line 402 "program_parse.y" +#line 404 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (8)].temp_inst), & (yyvsp[(2) - (8)].dst_reg), & (yyvsp[(4) - (8)].src_reg), NULL, NULL); if ((yyval.inst) != NULL) { @@ -2298,7 +2313,7 @@ yyreduce: case 31: /* Line 1455 of yacc.c */ -#line 446 "program_parse.y" +#line 448 "program_parse.y" { (yyval.inst) = asm_instruction_ctor(OPCODE_KIL, NULL, & (yyvsp[(2) - (2)].src_reg), NULL, NULL); state->fragment.UsesKill = 1; @@ -2309,6 +2324,19 @@ yyreduce: /* Line 1455 of yacc.c */ #line 453 "program_parse.y" + { + (yyval.inst) = asm_instruction_ctor(OPCODE_KIL_NV, NULL, NULL, NULL, NULL); + (yyval.inst)->Base.DstReg.CondMask = (yyvsp[(2) - (2)].dst_reg).CondMask; + (yyval.inst)->Base.DstReg.CondSwizzle = (yyvsp[(2) - (2)].dst_reg).CondSwizzle; + (yyval.inst)->Base.DstReg.CondSrc = (yyvsp[(2) - (2)].dst_reg).CondSrc; + state->fragment.UsesKill = 1; + ;} + break; + + case 33: + +/* Line 1455 of yacc.c */ +#line 463 "program_parse.y" { (yyval.inst) = asm_instruction_copy_ctor(& (yyvsp[(1) - (12)].temp_inst), & (yyvsp[(2) - (12)].dst_reg), & (yyvsp[(4) - (12)].src_reg), & (yyvsp[(6) - (12)].src_reg), & (yyvsp[(8) - (12)].src_reg)); if ((yyval.inst) != NULL) { @@ -2352,103 +2380,103 @@ yyreduce: ;} break; - case 33: + case 34: /* Line 1455 of yacc.c */ -#line 497 "program_parse.y" +#line 507 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 34: + case 35: /* Line 1455 of yacc.c */ -#line 502 "program_parse.y" +#line 512 "program_parse.y" { (yyval.integer) = TEXTURE_1D_INDEX; ;} break; - case 35: + case 36: /* Line 1455 of yacc.c */ -#line 503 "program_parse.y" +#line 513 "program_parse.y" { (yyval.integer) = TEXTURE_2D_INDEX; ;} break; - case 36: + case 37: /* Line 1455 of yacc.c */ -#line 504 "program_parse.y" +#line 514 "program_parse.y" { (yyval.integer) = TEXTURE_3D_INDEX; ;} break; - case 37: + case 38: /* Line 1455 of yacc.c */ -#line 505 "program_parse.y" +#line 515 "program_parse.y" { (yyval.integer) = TEXTURE_CUBE_INDEX; ;} break; - case 38: + case 39: /* Line 1455 of yacc.c */ -#line 506 "program_parse.y" +#line 516 "program_parse.y" { (yyval.integer) = TEXTURE_RECT_INDEX; ;} break; - case 39: + case 40: /* Line 1455 of yacc.c */ -#line 507 "program_parse.y" +#line 517 "program_parse.y" { (yyval.integer) = -TEXTURE_1D_INDEX; ;} break; - case 40: + case 41: /* Line 1455 of yacc.c */ -#line 508 "program_parse.y" +#line 518 "program_parse.y" { (yyval.integer) = -TEXTURE_2D_INDEX; ;} break; - case 41: + case 42: /* Line 1455 of yacc.c */ -#line 509 "program_parse.y" +#line 519 "program_parse.y" { (yyval.integer) = -TEXTURE_RECT_INDEX; ;} break; - case 42: + case 43: /* Line 1455 of yacc.c */ -#line 510 "program_parse.y" +#line 520 "program_parse.y" { (yyval.integer) = TEXTURE_1D_ARRAY_INDEX; ;} break; - case 43: + case 44: /* Line 1455 of yacc.c */ -#line 511 "program_parse.y" +#line 521 "program_parse.y" { (yyval.integer) = TEXTURE_2D_ARRAY_INDEX; ;} break; - case 44: + case 45: /* Line 1455 of yacc.c */ -#line 512 "program_parse.y" +#line 522 "program_parse.y" { (yyval.integer) = -TEXTURE_1D_ARRAY_INDEX; ;} break; - case 45: + case 46: /* Line 1455 of yacc.c */ -#line 513 "program_parse.y" +#line 523 "program_parse.y" { (yyval.integer) = -TEXTURE_2D_ARRAY_INDEX; ;} break; - case 46: + case 47: /* Line 1455 of yacc.c */ -#line 517 "program_parse.y" +#line 527 "program_parse.y" { /* FIXME: Is this correct? Should the extenedSwizzle be applied * FIXME: to the existing swizzle? @@ -2460,10 +2488,10 @@ yyreduce: ;} break; - case 47: + case 48: /* Line 1455 of yacc.c */ -#line 529 "program_parse.y" +#line 539 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (2)].src_reg); @@ -2473,10 +2501,10 @@ yyreduce: ;} break; - case 48: + case 49: /* Line 1455 of yacc.c */ -#line 537 "program_parse.y" +#line 547 "program_parse.y" { (yyval.src_reg) = (yyvsp[(3) - (4)].src_reg); @@ -2493,10 +2521,10 @@ yyreduce: ;} break; - case 49: + case 50: /* Line 1455 of yacc.c */ -#line 554 "program_parse.y" +#line 564 "program_parse.y" { (yyval.src_reg) = (yyvsp[(1) - (2)].src_reg); @@ -2505,10 +2533,10 @@ yyreduce: ;} break; - case 50: + case 51: /* Line 1455 of yacc.c */ -#line 561 "program_parse.y" +#line 571 "program_parse.y" { struct asm_symbol temp_sym; @@ -2527,10 +2555,10 @@ yyreduce: ;} break; - case 51: + case 52: /* Line 1455 of yacc.c */ -#line 580 "program_parse.y" +#line 590 "program_parse.y" { (yyval.src_reg) = (yyvsp[(2) - (3)].src_reg); @@ -2543,10 +2571,10 @@ yyreduce: ;} break; - case 52: + case 53: /* Line 1455 of yacc.c */ -#line 591 "program_parse.y" +#line 601 "program_parse.y" { (yyval.src_reg) = (yyvsp[(3) - (5)].src_reg); @@ -2565,13 +2593,16 @@ yyreduce: ;} break; - case 53: + case 54: /* Line 1455 of yacc.c */ -#line 611 "program_parse.y" +#line 621 "program_parse.y" { - (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg); - (yyval.dst_reg).WriteMask = (yyvsp[(2) - (2)].swiz_mask).mask; + (yyval.dst_reg) = (yyvsp[(1) - (3)].dst_reg); + (yyval.dst_reg).WriteMask = (yyvsp[(2) - (3)].swiz_mask).mask; + (yyval.dst_reg).CondMask = (yyvsp[(3) - (3)].dst_reg).CondMask; + (yyval.dst_reg).CondSwizzle = (yyvsp[(3) - (3)].dst_reg).CondSwizzle; + (yyval.dst_reg).CondSrc = (yyvsp[(3) - (3)].dst_reg).CondSrc; if ((yyval.dst_reg).File == PROGRAM_OUTPUT) { /* Technically speaking, this should check that it is in @@ -2580,7 +2611,7 @@ yyreduce: */ if (state->option.PositionInvariant && ((yyval.dst_reg).Index == VERT_RESULT_HPOS)) { - yyerror(& (yylsp[(1) - (2)]), state, "position-invariant programs cannot " + yyerror(& (yylsp[(1) - (3)]), state, "position-invariant programs cannot " "write position"); YYERROR; } @@ -2590,10 +2621,10 @@ yyreduce: ;} break; - case 54: + case 55: /* Line 1455 of yacc.c */ -#line 633 "program_parse.y" +#line 646 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_ADDRESS; @@ -2602,10 +2633,10 @@ yyreduce: ;} break; - case 55: + case 56: /* Line 1455 of yacc.c */ -#line 642 "program_parse.y" +#line 655 "program_parse.y" { const unsigned xyzw_valid = ((yyvsp[(1) - (7)].ext_swizzle).xyzw_valid << 0) @@ -2638,20 +2669,20 @@ yyreduce: ;} break; - case 56: + case 57: /* Line 1455 of yacc.c */ -#line 675 "program_parse.y" +#line 688 "program_parse.y" { (yyval.ext_swizzle) = (yyvsp[(2) - (2)].ext_swizzle); (yyval.ext_swizzle).negate = ((yyvsp[(1) - (2)].negate)) ? 1 : 0; ;} break; - case 57: + case 58: /* Line 1455 of yacc.c */ -#line 682 "program_parse.y" +#line 695 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) != 0) && ((yyvsp[(1) - (1)].integer) != 1)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2668,10 +2699,10 @@ yyreduce: ;} break; - case 58: + case 59: /* Line 1455 of yacc.c */ -#line 697 "program_parse.y" +#line 710 "program_parse.y" { if (strlen((yyvsp[(1) - (1)].string)) > 1) { yyerror(& (yylsp[(1) - (1)]), state, "invalid extended swizzle selector"); @@ -2721,10 +2752,10 @@ yyreduce: ;} break; - case 59: + case 60: /* Line 1455 of yacc.c */ -#line 747 "program_parse.y" +#line 760 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2768,10 +2799,10 @@ yyreduce: ;} break; - case 60: + case 61: /* Line 1455 of yacc.c */ -#line 789 "program_parse.y" +#line 802 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = PROGRAM_INPUT; @@ -2784,10 +2815,10 @@ yyreduce: ;} break; - case 61: + case 62: /* Line 1455 of yacc.c */ -#line 800 "program_parse.y" +#line 813 "program_parse.y" { if (! (yyvsp[(3) - (4)].src_reg).Base.RelAddr && ((unsigned) (yyvsp[(3) - (4)].src_reg).Base.Index >= (yyvsp[(1) - (4)].sym)->param_binding_length)) { @@ -2810,10 +2841,10 @@ yyreduce: ;} break; - case 62: + case 63: /* Line 1455 of yacc.c */ -#line 821 "program_parse.y" +#line 834 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.File = ((yyvsp[(1) - (1)].temp_sym).name != NULL) @@ -2823,10 +2854,10 @@ yyreduce: ;} break; - case 63: + case 64: /* Line 1455 of yacc.c */ -#line 831 "program_parse.y" +#line 844 "program_parse.y" { init_dst_reg(& (yyval.dst_reg)); (yyval.dst_reg).File = PROGRAM_OUTPUT; @@ -2834,10 +2865,10 @@ yyreduce: ;} break; - case 64: + case 65: /* Line 1455 of yacc.c */ -#line 837 "program_parse.y" +#line 850 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2868,10 +2899,10 @@ yyreduce: ;} break; - case 65: + case 66: /* Line 1455 of yacc.c */ -#line 868 "program_parse.y" +#line 881 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2888,20 +2919,20 @@ yyreduce: ;} break; - case 68: + case 69: /* Line 1455 of yacc.c */ -#line 887 "program_parse.y" +#line 900 "program_parse.y" { init_src_reg(& (yyval.src_reg)); (yyval.src_reg).Base.Index = (yyvsp[(1) - (1)].integer); ;} break; - case 69: + case 70: /* Line 1455 of yacc.c */ -#line 894 "program_parse.y" +#line 907 "program_parse.y" { /* FINISHME: Add support for multiple address registers. */ @@ -2913,31 +2944,31 @@ yyreduce: ;} break; - case 70: + case 71: /* Line 1455 of yacc.c */ -#line 905 "program_parse.y" +#line 918 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 71: + case 72: /* Line 1455 of yacc.c */ -#line 906 "program_parse.y" +#line 919 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 72: + case 73: /* Line 1455 of yacc.c */ -#line 907 "program_parse.y" +#line 920 "program_parse.y" { (yyval.integer) = -(yyvsp[(2) - (2)].integer); ;} break; - case 73: + case 74: /* Line 1455 of yacc.c */ -#line 911 "program_parse.y" +#line 924 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 63)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2949,10 +2980,10 @@ yyreduce: ;} break; - case 74: + case 75: /* Line 1455 of yacc.c */ -#line 923 "program_parse.y" +#line 936 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 0) || ((yyvsp[(1) - (1)].integer) > 64)) { yyerror(& (yylsp[(1) - (1)]), state, @@ -2964,10 +2995,10 @@ yyreduce: ;} break; - case 75: + case 76: /* Line 1455 of yacc.c */ -#line 935 "program_parse.y" +#line 948 "program_parse.y" { struct asm_symbol *const s = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(1) - (1)].string)); @@ -2985,10 +3016,10 @@ yyreduce: ;} break; - case 76: + case 77: /* Line 1455 of yacc.c */ -#line 953 "program_parse.y" +#line 966 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, "invalid address component selector"); @@ -2999,10 +3030,10 @@ yyreduce: ;} break; - case 77: + case 78: /* Line 1455 of yacc.c */ -#line 964 "program_parse.y" +#line 977 "program_parse.y" { if ((yyvsp[(1) - (1)].swiz_mask).mask != WRITEMASK_X) { yyerror(& (yylsp[(1) - (1)]), state, @@ -3014,24 +3045,125 @@ yyreduce: ;} break; - case 82: + case 83: /* Line 1455 of yacc.c */ -#line 980 "program_parse.y" +#line 993 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; - case 87: + case 88: /* Line 1455 of yacc.c */ -#line 984 "program_parse.y" +#line 997 "program_parse.y" { (yyval.swiz_mask).swizzle = SWIZZLE_NOOP; (yyval.swiz_mask).mask = WRITEMASK_XYZW; ;} break; + case 89: + +/* Line 1455 of yacc.c */ +#line 1001 "program_parse.y" + { + (yyval.dst_reg) = (yyvsp[(2) - (3)].dst_reg); + ;} + break; + + case 90: + +/* Line 1455 of yacc.c */ +#line 1005 "program_parse.y" + { + (yyval.dst_reg) = (yyvsp[(2) - (3)].dst_reg); + ;} + break; + + case 91: + +/* Line 1455 of yacc.c */ +#line 1009 "program_parse.y" + { + (yyval.dst_reg).CondMask = COND_TR; + (yyval.dst_reg).CondSwizzle = SWIZZLE_NOOP; + (yyval.dst_reg).CondSrc = 0; + ;} + break; + + case 92: + +/* Line 1455 of yacc.c */ +#line 1017 "program_parse.y" + { + (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg); + (yyval.dst_reg).CondSwizzle = (yyvsp[(2) - (2)].swiz_mask).swizzle; + ;} + break; + + case 93: + +/* Line 1455 of yacc.c */ +#line 1024 "program_parse.y" + { + (yyval.dst_reg) = (yyvsp[(1) - (2)].dst_reg); + (yyval.dst_reg).CondSwizzle = (yyvsp[(2) - (2)].swiz_mask).swizzle; + ;} + break; + case 94: /* Line 1455 of yacc.c */ -#line 996 "program_parse.y" +#line 1031 "program_parse.y" + { + const int cond = _mesa_parse_cc((yyvsp[(1) - (1)].string)); + if ((cond == 0) || ((yyvsp[(1) - (1)].string)[2] != '\0')) { + char *const err_str = + make_error_string("invalid condition code \"%s\"", (yyvsp[(1) - (1)].string)); + + yyerror(& (yylsp[(1) - (1)]), state, (err_str != NULL) + ? err_str : "invalid condition code"); + + if (err_str != NULL) { + _mesa_free(err_str); + } + + YYERROR; + } + + (yyval.dst_reg).CondMask = cond; + (yyval.dst_reg).CondSwizzle = SWIZZLE_NOOP; + (yyval.dst_reg).CondSrc = 0; + ;} + break; + + case 95: + +/* Line 1455 of yacc.c */ +#line 1054 "program_parse.y" + { + const int cond = _mesa_parse_cc((yyvsp[(1) - (1)].string)); + if ((cond == 0) || ((yyvsp[(1) - (1)].string)[2] != '\0')) { + char *const err_str = + make_error_string("invalid condition code \"%s\"", (yyvsp[(1) - (1)].string)); + + yyerror(& (yylsp[(1) - (1)]), state, (err_str != NULL) + ? err_str : "invalid condition code"); + + if (err_str != NULL) { + _mesa_free(err_str); + } + + YYERROR; + } + + (yyval.dst_reg).CondMask = cond; + (yyval.dst_reg).CondSwizzle = SWIZZLE_NOOP; + (yyval.dst_reg).CondSrc = 0; + ;} + break; + + case 102: + +/* Line 1455 of yacc.c */ +#line 1085 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (4)].string), at_attrib, & (yylsp[(2) - (4)])); @@ -3049,55 +3181,55 @@ yyreduce: ;} break; - case 95: + case 103: /* Line 1455 of yacc.c */ -#line 1014 "program_parse.y" +#line 1103 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} break; - case 96: + case 104: /* Line 1455 of yacc.c */ -#line 1018 "program_parse.y" +#line 1107 "program_parse.y" { (yyval.attrib) = (yyvsp[(2) - (2)].attrib); ;} break; - case 97: + case 105: /* Line 1455 of yacc.c */ -#line 1024 "program_parse.y" +#line 1113 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_POS; ;} break; - case 98: + case 106: /* Line 1455 of yacc.c */ -#line 1028 "program_parse.y" +#line 1117 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_WEIGHT; ;} break; - case 99: + case 107: /* Line 1455 of yacc.c */ -#line 1032 "program_parse.y" +#line 1121 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_NORMAL; ;} break; - case 100: + case 108: /* Line 1455 of yacc.c */ -#line 1036 "program_parse.y" +#line 1125 "program_parse.y" { if (!state->ctx->Extensions.EXT_secondary_color) { yyerror(& (yylsp[(2) - (2)]), state, "GL_EXT_secondary_color not supported"); @@ -3108,10 +3240,10 @@ yyreduce: ;} break; - case 101: + case 109: /* Line 1455 of yacc.c */ -#line 1045 "program_parse.y" +#line 1134 "program_parse.y" { if (!state->ctx->Extensions.EXT_fog_coord) { yyerror(& (yylsp[(1) - (1)]), state, "GL_EXT_fog_coord not supported"); @@ -3122,38 +3254,38 @@ yyreduce: ;} break; - case 102: + case 110: /* Line 1455 of yacc.c */ -#line 1054 "program_parse.y" +#line 1143 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} break; - case 103: + case 111: /* Line 1455 of yacc.c */ -#line 1058 "program_parse.y" +#line 1147 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; ;} break; - case 104: + case 112: /* Line 1455 of yacc.c */ -#line 1063 "program_parse.y" +#line 1152 "program_parse.y" { (yyval.attrib) = VERT_ATTRIB_GENERIC0 + (yyvsp[(3) - (4)].integer); ;} break; - case 105: + case 113: /* Line 1455 of yacc.c */ -#line 1069 "program_parse.y" +#line 1158 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxAttribs) { yyerror(& (yylsp[(1) - (1)]), state, "invalid vertex attribute reference"); @@ -3164,46 +3296,46 @@ yyreduce: ;} break; - case 109: + case 117: /* Line 1455 of yacc.c */ -#line 1083 "program_parse.y" +#line 1172 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_WPOS; ;} break; - case 110: + case 118: /* Line 1455 of yacc.c */ -#line 1087 "program_parse.y" +#line 1176 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_COL0 + (yyvsp[(2) - (2)].integer); ;} break; - case 111: + case 119: /* Line 1455 of yacc.c */ -#line 1091 "program_parse.y" +#line 1180 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_FOGC; ;} break; - case 112: + case 120: /* Line 1455 of yacc.c */ -#line 1095 "program_parse.y" +#line 1184 "program_parse.y" { (yyval.attrib) = FRAG_ATTRIB_TEX0 + (yyvsp[(2) - (2)].integer); ;} break; - case 115: + case 123: /* Line 1455 of yacc.c */ -#line 1103 "program_parse.y" +#line 1192 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(2) - (3)].string), at_param, & (yylsp[(2) - (3)])); @@ -3219,10 +3351,10 @@ yyreduce: ;} break; - case 116: + case 124: /* Line 1455 of yacc.c */ -#line 1119 "program_parse.y" +#line 1208 "program_parse.y" { if (((yyvsp[(4) - (6)].integer) != 0) && ((unsigned) (yyvsp[(4) - (6)].integer) != (yyvsp[(6) - (6)].temp_sym).param_binding_length)) { yyerror(& (yylsp[(4) - (6)]), state, @@ -3244,19 +3376,19 @@ yyreduce: ;} break; - case 117: + case 125: /* Line 1455 of yacc.c */ -#line 1141 "program_parse.y" +#line 1230 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 118: + case 126: /* Line 1455 of yacc.c */ -#line 1145 "program_parse.y" +#line 1234 "program_parse.y" { if (((yyvsp[(1) - (1)].integer) < 1) || ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxParameters)) { yyerror(& (yylsp[(1) - (1)]), state, "invalid parameter array size"); @@ -3267,38 +3399,38 @@ yyreduce: ;} break; - case 119: + case 127: /* Line 1455 of yacc.c */ -#line 1156 "program_parse.y" +#line 1245 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(2) - (2)].temp_sym); ;} break; - case 120: + case 128: /* Line 1455 of yacc.c */ -#line 1162 "program_parse.y" +#line 1251 "program_parse.y" { (yyval.temp_sym) = (yyvsp[(3) - (4)].temp_sym); ;} break; - case 122: + case 130: /* Line 1455 of yacc.c */ -#line 1169 "program_parse.y" +#line 1258 "program_parse.y" { (yyvsp[(1) - (3)].temp_sym).param_binding_length += (yyvsp[(3) - (3)].temp_sym).param_binding_length; (yyval.temp_sym) = (yyvsp[(1) - (3)].temp_sym); ;} break; - case 123: + case 131: /* Line 1455 of yacc.c */ -#line 1176 "program_parse.y" +#line 1265 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3306,10 +3438,10 @@ yyreduce: ;} break; - case 124: + case 132: /* Line 1455 of yacc.c */ -#line 1182 "program_parse.y" +#line 1271 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3317,10 +3449,10 @@ yyreduce: ;} break; - case 125: + case 133: /* Line 1455 of yacc.c */ -#line 1188 "program_parse.y" +#line 1277 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3328,10 +3460,10 @@ yyreduce: ;} break; - case 126: + case 134: /* Line 1455 of yacc.c */ -#line 1196 "program_parse.y" +#line 1285 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3339,10 +3471,10 @@ yyreduce: ;} break; - case 127: + case 135: /* Line 1455 of yacc.c */ -#line 1202 "program_parse.y" +#line 1291 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3350,10 +3482,10 @@ yyreduce: ;} break; - case 128: + case 136: /* Line 1455 of yacc.c */ -#line 1208 "program_parse.y" +#line 1297 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3361,10 +3493,10 @@ yyreduce: ;} break; - case 129: + case 137: /* Line 1455 of yacc.c */ -#line 1216 "program_parse.y" +#line 1305 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3372,10 +3504,10 @@ yyreduce: ;} break; - case 130: + case 138: /* Line 1455 of yacc.c */ -#line 1222 "program_parse.y" +#line 1311 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3383,10 +3515,10 @@ yyreduce: ;} break; - case 131: + case 139: /* Line 1455 of yacc.c */ -#line 1228 "program_parse.y" +#line 1317 "program_parse.y" { memset(& (yyval.temp_sym), 0, sizeof((yyval.temp_sym))); (yyval.temp_sym).param_binding_begin = ~0; @@ -3394,101 +3526,101 @@ yyreduce: ;} break; - case 132: + case 140: /* Line 1455 of yacc.c */ -#line 1235 "program_parse.y" +#line 1324 "program_parse.y" { memcpy((yyval.state), (yyvsp[(1) - (1)].state), sizeof((yyval.state))); ;} break; - case 133: + case 141: /* Line 1455 of yacc.c */ -#line 1236 "program_parse.y" +#line 1325 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 134: + case 142: /* Line 1455 of yacc.c */ -#line 1239 "program_parse.y" +#line 1328 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 135: + case 143: /* Line 1455 of yacc.c */ -#line 1240 "program_parse.y" +#line 1329 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 136: + case 144: /* Line 1455 of yacc.c */ -#line 1241 "program_parse.y" +#line 1330 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 137: + case 145: /* Line 1455 of yacc.c */ -#line 1242 "program_parse.y" +#line 1331 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 138: + case 146: /* Line 1455 of yacc.c */ -#line 1243 "program_parse.y" +#line 1332 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 139: + case 147: /* Line 1455 of yacc.c */ -#line 1244 "program_parse.y" +#line 1333 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 140: + case 148: /* Line 1455 of yacc.c */ -#line 1245 "program_parse.y" +#line 1334 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 141: + case 149: /* Line 1455 of yacc.c */ -#line 1246 "program_parse.y" +#line 1335 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 142: + case 150: /* Line 1455 of yacc.c */ -#line 1247 "program_parse.y" +#line 1336 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 143: + case 151: /* Line 1455 of yacc.c */ -#line 1248 "program_parse.y" +#line 1337 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 144: + case 152: /* Line 1455 of yacc.c */ -#line 1249 "program_parse.y" +#line 1338 "program_parse.y" { memcpy((yyval.state), (yyvsp[(2) - (2)].state), sizeof((yyval.state))); ;} break; - case 145: + case 153: /* Line 1455 of yacc.c */ -#line 1253 "program_parse.y" +#line 1342 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_MATERIAL; @@ -3497,37 +3629,37 @@ yyreduce: ;} break; - case 146: + case 154: /* Line 1455 of yacc.c */ -#line 1262 "program_parse.y" +#line 1351 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 147: + case 155: /* Line 1455 of yacc.c */ -#line 1266 "program_parse.y" +#line 1355 "program_parse.y" { (yyval.integer) = STATE_EMISSION; ;} break; - case 148: + case 156: /* Line 1455 of yacc.c */ -#line 1270 "program_parse.y" +#line 1359 "program_parse.y" { (yyval.integer) = STATE_SHININESS; ;} break; - case 149: + case 157: /* Line 1455 of yacc.c */ -#line 1276 "program_parse.y" +#line 1365 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHT; @@ -3536,28 +3668,28 @@ yyreduce: ;} break; - case 150: + case 158: /* Line 1455 of yacc.c */ -#line 1285 "program_parse.y" +#line 1374 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 151: + case 159: /* Line 1455 of yacc.c */ -#line 1289 "program_parse.y" +#line 1378 "program_parse.y" { (yyval.integer) = STATE_POSITION; ;} break; - case 152: + case 160: /* Line 1455 of yacc.c */ -#line 1293 "program_parse.y" +#line 1382 "program_parse.y" { if (!state->ctx->Extensions.EXT_point_parameters) { yyerror(& (yylsp[(1) - (1)]), state, "GL_ARB_point_parameters not supported"); @@ -3568,57 +3700,57 @@ yyreduce: ;} break; - case 153: + case 161: /* Line 1455 of yacc.c */ -#line 1302 "program_parse.y" +#line 1391 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 154: + case 162: /* Line 1455 of yacc.c */ -#line 1306 "program_parse.y" +#line 1395 "program_parse.y" { (yyval.integer) = STATE_HALF_VECTOR; ;} break; - case 155: + case 163: /* Line 1455 of yacc.c */ -#line 1312 "program_parse.y" +#line 1401 "program_parse.y" { (yyval.integer) = STATE_SPOT_DIRECTION; ;} break; - case 156: + case 164: /* Line 1455 of yacc.c */ -#line 1318 "program_parse.y" +#line 1407 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (2)].state)[1]; ;} break; - case 157: + case 165: /* Line 1455 of yacc.c */ -#line 1325 "program_parse.y" +#line 1414 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_AMBIENT; ;} break; - case 158: + case 166: /* Line 1455 of yacc.c */ -#line 1330 "program_parse.y" +#line 1419 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTMODEL_SCENECOLOR; @@ -3626,10 +3758,10 @@ yyreduce: ;} break; - case 159: + case 167: /* Line 1455 of yacc.c */ -#line 1338 "program_parse.y" +#line 1427 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_LIGHTPROD; @@ -3639,10 +3771,10 @@ yyreduce: ;} break; - case 161: + case 169: /* Line 1455 of yacc.c */ -#line 1350 "program_parse.y" +#line 1439 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(3) - (3)].integer); @@ -3650,46 +3782,46 @@ yyreduce: ;} break; - case 162: + case 170: /* Line 1455 of yacc.c */ -#line 1358 "program_parse.y" +#line 1447 "program_parse.y" { (yyval.integer) = STATE_TEXENV_COLOR; ;} break; - case 163: + case 171: /* Line 1455 of yacc.c */ -#line 1364 "program_parse.y" +#line 1453 "program_parse.y" { (yyval.integer) = STATE_AMBIENT; ;} break; - case 164: + case 172: /* Line 1455 of yacc.c */ -#line 1368 "program_parse.y" +#line 1457 "program_parse.y" { (yyval.integer) = STATE_DIFFUSE; ;} break; - case 165: + case 173: /* Line 1455 of yacc.c */ -#line 1372 "program_parse.y" +#line 1461 "program_parse.y" { (yyval.integer) = STATE_SPECULAR; ;} break; - case 166: + case 174: /* Line 1455 of yacc.c */ -#line 1378 "program_parse.y" +#line 1467 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxLights) { yyerror(& (yylsp[(1) - (1)]), state, "invalid light selector"); @@ -3700,10 +3832,10 @@ yyreduce: ;} break; - case 167: + case 175: /* Line 1455 of yacc.c */ -#line 1389 "program_parse.y" +#line 1478 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_TEXGEN; @@ -3712,92 +3844,92 @@ yyreduce: ;} break; - case 168: + case 176: /* Line 1455 of yacc.c */ -#line 1398 "program_parse.y" +#line 1487 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S; ;} break; - case 169: + case 177: /* Line 1455 of yacc.c */ -#line 1402 "program_parse.y" +#line 1491 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_OBJECT_S; ;} break; - case 170: + case 178: /* Line 1455 of yacc.c */ -#line 1407 "program_parse.y" +#line 1496 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_S - STATE_TEXGEN_EYE_S; ;} break; - case 171: + case 179: /* Line 1455 of yacc.c */ -#line 1411 "program_parse.y" +#line 1500 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_T - STATE_TEXGEN_EYE_S; ;} break; - case 172: + case 180: /* Line 1455 of yacc.c */ -#line 1415 "program_parse.y" +#line 1504 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_R - STATE_TEXGEN_EYE_S; ;} break; - case 173: + case 181: /* Line 1455 of yacc.c */ -#line 1419 "program_parse.y" +#line 1508 "program_parse.y" { (yyval.integer) = STATE_TEXGEN_EYE_Q - STATE_TEXGEN_EYE_S; ;} break; - case 174: + case 182: /* Line 1455 of yacc.c */ -#line 1425 "program_parse.y" +#line 1514 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); ;} break; - case 175: + case 183: /* Line 1455 of yacc.c */ -#line 1432 "program_parse.y" +#line 1521 "program_parse.y" { (yyval.integer) = STATE_FOG_COLOR; ;} break; - case 176: + case 184: /* Line 1455 of yacc.c */ -#line 1436 "program_parse.y" +#line 1525 "program_parse.y" { (yyval.integer) = STATE_FOG_PARAMS; ;} break; - case 177: + case 185: /* Line 1455 of yacc.c */ -#line 1442 "program_parse.y" +#line 1531 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_CLIPPLANE; @@ -3805,10 +3937,10 @@ yyreduce: ;} break; - case 178: + case 186: /* Line 1455 of yacc.c */ -#line 1450 "program_parse.y" +#line 1539 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxClipPlanes) { yyerror(& (yylsp[(1) - (1)]), state, "invalid clip plane selector"); @@ -3819,38 +3951,38 @@ yyreduce: ;} break; - case 179: + case 187: /* Line 1455 of yacc.c */ -#line 1461 "program_parse.y" +#line 1550 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = (yyvsp[(2) - (2)].integer); ;} break; - case 180: + case 188: /* Line 1455 of yacc.c */ -#line 1468 "program_parse.y" +#line 1557 "program_parse.y" { (yyval.integer) = STATE_POINT_SIZE; ;} break; - case 181: + case 189: /* Line 1455 of yacc.c */ -#line 1472 "program_parse.y" +#line 1561 "program_parse.y" { (yyval.integer) = STATE_POINT_ATTENUATION; ;} break; - case 182: + case 190: /* Line 1455 of yacc.c */ -#line 1478 "program_parse.y" +#line 1567 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (5)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (5)].state)[1]; @@ -3860,10 +3992,10 @@ yyreduce: ;} break; - case 183: + case 191: /* Line 1455 of yacc.c */ -#line 1488 "program_parse.y" +#line 1577 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (2)].state)[0]; (yyval.state)[1] = (yyvsp[(1) - (2)].state)[1]; @@ -3873,20 +4005,20 @@ yyreduce: ;} break; - case 184: + case 192: /* Line 1455 of yacc.c */ -#line 1498 "program_parse.y" +#line 1587 "program_parse.y" { (yyval.state)[2] = 0; (yyval.state)[3] = 3; ;} break; - case 185: + case 193: /* Line 1455 of yacc.c */ -#line 1503 "program_parse.y" +#line 1592 "program_parse.y" { /* It seems logical that the matrix row range specifier would have * to specify a range or more than one row (i.e., $5 > $3). @@ -3904,10 +4036,10 @@ yyreduce: ;} break; - case 186: + case 194: /* Line 1455 of yacc.c */ -#line 1521 "program_parse.y" +#line 1610 "program_parse.y" { (yyval.state)[0] = (yyvsp[(2) - (3)].state)[0]; (yyval.state)[1] = (yyvsp[(2) - (3)].state)[1]; @@ -3915,55 +4047,55 @@ yyreduce: ;} break; - case 187: + case 195: /* Line 1455 of yacc.c */ -#line 1529 "program_parse.y" +#line 1618 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 188: + case 196: /* Line 1455 of yacc.c */ -#line 1533 "program_parse.y" +#line 1622 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 189: + case 197: /* Line 1455 of yacc.c */ -#line 1539 "program_parse.y" +#line 1628 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVERSE; ;} break; - case 190: + case 198: /* Line 1455 of yacc.c */ -#line 1543 "program_parse.y" +#line 1632 "program_parse.y" { (yyval.integer) = STATE_MATRIX_TRANSPOSE; ;} break; - case 191: + case 199: /* Line 1455 of yacc.c */ -#line 1547 "program_parse.y" +#line 1636 "program_parse.y" { (yyval.integer) = STATE_MATRIX_INVTRANS; ;} break; - case 192: + case 200: /* Line 1455 of yacc.c */ -#line 1553 "program_parse.y" +#line 1642 "program_parse.y" { if ((yyvsp[(1) - (1)].integer) > 3) { yyerror(& (yylsp[(1) - (1)]), state, "invalid matrix row reference"); @@ -3974,88 +4106,88 @@ yyreduce: ;} break; - case 193: + case 201: /* Line 1455 of yacc.c */ -#line 1564 "program_parse.y" +#line 1653 "program_parse.y" { (yyval.state)[0] = STATE_MODELVIEW_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); ;} break; - case 194: + case 202: /* Line 1455 of yacc.c */ -#line 1569 "program_parse.y" +#line 1658 "program_parse.y" { (yyval.state)[0] = STATE_PROJECTION_MATRIX; (yyval.state)[1] = 0; ;} break; - case 195: + case 203: /* Line 1455 of yacc.c */ -#line 1574 "program_parse.y" +#line 1663 "program_parse.y" { (yyval.state)[0] = STATE_MVP_MATRIX; (yyval.state)[1] = 0; ;} break; - case 196: + case 204: /* Line 1455 of yacc.c */ -#line 1579 "program_parse.y" +#line 1668 "program_parse.y" { (yyval.state)[0] = STATE_TEXTURE_MATRIX; (yyval.state)[1] = (yyvsp[(2) - (2)].integer); ;} break; - case 197: + case 205: /* Line 1455 of yacc.c */ -#line 1584 "program_parse.y" +#line 1673 "program_parse.y" { yyerror(& (yylsp[(1) - (4)]), state, "GL_ARB_matrix_palette not supported"); YYERROR; ;} break; - case 198: + case 206: /* Line 1455 of yacc.c */ -#line 1589 "program_parse.y" +#line 1678 "program_parse.y" { (yyval.state)[0] = STATE_PROGRAM_MATRIX; (yyval.state)[1] = (yyvsp[(3) - (4)].integer); ;} break; - case 199: + case 207: /* Line 1455 of yacc.c */ -#line 1596 "program_parse.y" +#line 1685 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 200: + case 208: /* Line 1455 of yacc.c */ -#line 1600 "program_parse.y" +#line 1689 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 201: + case 209: /* Line 1455 of yacc.c */ -#line 1605 "program_parse.y" +#line 1694 "program_parse.y" { /* Since GL_ARB_vertex_blend isn't supported, only modelview matrix * zero is valid. @@ -4069,10 +4201,10 @@ yyreduce: ;} break; - case 202: + case 210: /* Line 1455 of yacc.c */ -#line 1618 "program_parse.y" +#line 1707 "program_parse.y" { /* Since GL_ARB_matrix_palette isn't supported, just let any value * through here. The error will be generated later. @@ -4081,10 +4213,10 @@ yyreduce: ;} break; - case 203: + case 211: /* Line 1455 of yacc.c */ -#line 1626 "program_parse.y" +#line 1715 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxProgramMatrices) { yyerror(& (yylsp[(1) - (1)]), state, "invalid program matrix selector"); @@ -4095,20 +4227,20 @@ yyreduce: ;} break; - case 204: + case 212: /* Line 1455 of yacc.c */ -#line 1637 "program_parse.y" +#line 1726 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = STATE_DEPTH_RANGE; ;} break; - case 209: + case 217: /* Line 1455 of yacc.c */ -#line 1649 "program_parse.y" +#line 1738 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4118,30 +4250,30 @@ yyreduce: ;} break; - case 210: + case 218: /* Line 1455 of yacc.c */ -#line 1659 "program_parse.y" +#line 1748 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); ;} break; - case 211: + case 219: /* Line 1455 of yacc.c */ -#line 1664 "program_parse.y" +#line 1753 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); ;} break; - case 212: + case 220: /* Line 1455 of yacc.c */ -#line 1671 "program_parse.y" +#line 1760 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4151,10 +4283,10 @@ yyreduce: ;} break; - case 213: + case 221: /* Line 1455 of yacc.c */ -#line 1681 "program_parse.y" +#line 1770 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4164,30 +4296,30 @@ yyreduce: ;} break; - case 214: + case 222: /* Line 1455 of yacc.c */ -#line 1690 "program_parse.y" +#line 1779 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (1)].integer); (yyval.state)[1] = (yyvsp[(1) - (1)].integer); ;} break; - case 215: + case 223: /* Line 1455 of yacc.c */ -#line 1695 "program_parse.y" +#line 1784 "program_parse.y" { (yyval.state)[0] = (yyvsp[(1) - (3)].integer); (yyval.state)[1] = (yyvsp[(3) - (3)].integer); ;} break; - case 216: + case 224: /* Line 1455 of yacc.c */ -#line 1702 "program_parse.y" +#line 1791 "program_parse.y" { memset((yyval.state), 0, sizeof((yyval.state))); (yyval.state)[0] = state->state_param_enum; @@ -4197,10 +4329,10 @@ yyreduce: ;} break; - case 217: + case 225: /* Line 1455 of yacc.c */ -#line 1712 "program_parse.y" +#line 1801 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxEnvParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid environment parameter reference"); @@ -4210,10 +4342,10 @@ yyreduce: ;} break; - case 218: + case 226: /* Line 1455 of yacc.c */ -#line 1722 "program_parse.y" +#line 1811 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->limits->MaxLocalParams) { yyerror(& (yylsp[(1) - (1)]), state, "invalid local parameter reference"); @@ -4223,10 +4355,10 @@ yyreduce: ;} break; - case 223: + case 231: /* Line 1455 of yacc.c */ -#line 1737 "program_parse.y" +#line 1826 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4236,10 +4368,10 @@ yyreduce: ;} break; - case 224: + case 232: /* Line 1455 of yacc.c */ -#line 1747 "program_parse.y" +#line 1836 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (yyvsp[(1) - (1)].real); @@ -4249,10 +4381,10 @@ yyreduce: ;} break; - case 225: + case 233: /* Line 1455 of yacc.c */ -#line 1755 "program_parse.y" +#line 1844 "program_parse.y" { (yyval.vector).count = 1; (yyval.vector).data[0] = (float) (yyvsp[(1) - (1)].integer); @@ -4262,10 +4394,10 @@ yyreduce: ;} break; - case 226: + case 234: /* Line 1455 of yacc.c */ -#line 1765 "program_parse.y" +#line 1854 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (3)].real); @@ -4275,10 +4407,10 @@ yyreduce: ;} break; - case 227: + case 235: /* Line 1455 of yacc.c */ -#line 1773 "program_parse.y" +#line 1862 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (5)].real); @@ -4288,10 +4420,10 @@ yyreduce: ;} break; - case 228: + case 236: /* Line 1455 of yacc.c */ -#line 1782 "program_parse.y" +#line 1871 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (7)].real); @@ -4301,10 +4433,10 @@ yyreduce: ;} break; - case 229: + case 237: /* Line 1455 of yacc.c */ -#line 1791 "program_parse.y" +#line 1880 "program_parse.y" { (yyval.vector).count = 4; (yyval.vector).data[0] = (yyvsp[(2) - (9)].real); @@ -4314,56 +4446,56 @@ yyreduce: ;} break; - case 230: + case 238: /* Line 1455 of yacc.c */ -#line 1801 "program_parse.y" +#line 1890 "program_parse.y" { (yyval.real) = ((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].real) : (yyvsp[(2) - (2)].real); ;} break; - case 231: + case 239: /* Line 1455 of yacc.c */ -#line 1805 "program_parse.y" +#line 1894 "program_parse.y" { (yyval.real) = (float)(((yyvsp[(1) - (2)].negate)) ? -(yyvsp[(2) - (2)].integer) : (yyvsp[(2) - (2)].integer)); ;} break; - case 232: + case 240: /* Line 1455 of yacc.c */ -#line 1810 "program_parse.y" +#line 1899 "program_parse.y" { (yyval.negate) = FALSE; ;} break; - case 233: + case 241: /* Line 1455 of yacc.c */ -#line 1811 "program_parse.y" +#line 1900 "program_parse.y" { (yyval.negate) = TRUE; ;} break; - case 234: + case 242: /* Line 1455 of yacc.c */ -#line 1812 "program_parse.y" +#line 1901 "program_parse.y" { (yyval.negate) = FALSE; ;} break; - case 235: + case 243: /* Line 1455 of yacc.c */ -#line 1815 "program_parse.y" +#line 1904 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (2)].integer); ;} break; - case 237: + case 245: /* Line 1455 of yacc.c */ -#line 1819 "program_parse.y" +#line 1908 "program_parse.y" { /* NV_fragment_program_option defines the size qualifiers in a * fairly broken way. "SHORT" or "LONG" can optionally be used @@ -4399,25 +4531,25 @@ yyreduce: ;} break; - case 238: + case 246: /* Line 1455 of yacc.c */ -#line 1853 "program_parse.y" +#line 1942 "program_parse.y" { ;} break; - case 239: + case 247: /* Line 1455 of yacc.c */ -#line 1857 "program_parse.y" +#line 1946 "program_parse.y" { (yyval.integer) = (yyvsp[(1) - (1)].integer); ;} break; - case 241: + case 249: /* Line 1455 of yacc.c */ -#line 1861 "program_parse.y" +#line 1950 "program_parse.y" { if (!declare_variable(state, (yyvsp[(3) - (3)].string), (yyvsp[(0) - (3)].integer), & (yylsp[(3) - (3)]))) { YYERROR; @@ -4425,10 +4557,10 @@ yyreduce: ;} break; - case 242: + case 250: /* Line 1455 of yacc.c */ -#line 1867 "program_parse.y" +#line 1956 "program_parse.y" { if (!declare_variable(state, (yyvsp[(1) - (1)].string), (yyvsp[(0) - (1)].integer), & (yylsp[(1) - (1)]))) { YYERROR; @@ -4436,10 +4568,10 @@ yyreduce: ;} break; - case 243: + case 251: /* Line 1455 of yacc.c */ -#line 1875 "program_parse.y" +#line 1964 "program_parse.y" { struct asm_symbol *const s = declare_variable(state, (yyvsp[(3) - (5)].string), at_output, & (yylsp[(3) - (5)])); @@ -4452,10 +4584,10 @@ yyreduce: ;} break; - case 244: + case 252: /* Line 1455 of yacc.c */ -#line 1888 "program_parse.y" +#line 1977 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_HPOS; @@ -4466,10 +4598,10 @@ yyreduce: ;} break; - case 245: + case 253: /* Line 1455 of yacc.c */ -#line 1897 "program_parse.y" +#line 1986 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_FOGC; @@ -4480,19 +4612,19 @@ yyreduce: ;} break; - case 246: + case 254: /* Line 1455 of yacc.c */ -#line 1906 "program_parse.y" +#line 1995 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (2)].result); ;} break; - case 247: + case 255: /* Line 1455 of yacc.c */ -#line 1910 "program_parse.y" +#line 1999 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_PSIZ; @@ -4503,10 +4635,10 @@ yyreduce: ;} break; - case 248: + case 256: /* Line 1455 of yacc.c */ -#line 1919 "program_parse.y" +#line 2008 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.result) = VERT_RESULT_TEX0 + (yyvsp[(3) - (3)].integer); @@ -4517,10 +4649,10 @@ yyreduce: ;} break; - case 249: + case 257: /* Line 1455 of yacc.c */ -#line 1928 "program_parse.y" +#line 2017 "program_parse.y" { if (state->mode == ARB_fragment) { (yyval.result) = FRAG_RESULT_DEPTH; @@ -4531,19 +4663,19 @@ yyreduce: ;} break; - case 250: + case 258: /* Line 1455 of yacc.c */ -#line 1939 "program_parse.y" +#line 2028 "program_parse.y" { (yyval.result) = (yyvsp[(2) - (3)].integer) + (yyvsp[(3) - (3)].integer); ;} break; - case 251: + case 259: /* Line 1455 of yacc.c */ -#line 1945 "program_parse.y" +#line 2034 "program_parse.y" { (yyval.integer) = (state->mode == ARB_vertex) ? VERT_RESULT_COL0 @@ -4551,10 +4683,10 @@ yyreduce: ;} break; - case 252: + case 260: /* Line 1455 of yacc.c */ -#line 1951 "program_parse.y" +#line 2040 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_COL0; @@ -4565,10 +4697,10 @@ yyreduce: ;} break; - case 253: + case 261: /* Line 1455 of yacc.c */ -#line 1960 "program_parse.y" +#line 2049 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = VERT_RESULT_BFC0; @@ -4579,19 +4711,19 @@ yyreduce: ;} break; - case 254: + case 262: /* Line 1455 of yacc.c */ -#line 1971 "program_parse.y" +#line 2060 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 255: + case 263: /* Line 1455 of yacc.c */ -#line 1975 "program_parse.y" +#line 2064 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 0; @@ -4602,10 +4734,10 @@ yyreduce: ;} break; - case 256: + case 264: /* Line 1455 of yacc.c */ -#line 1984 "program_parse.y" +#line 2073 "program_parse.y" { if (state->mode == ARB_vertex) { (yyval.integer) = 1; @@ -4616,94 +4748,94 @@ yyreduce: ;} break; - case 257: + case 265: /* Line 1455 of yacc.c */ -#line 1994 "program_parse.y" +#line 2083 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 258: + case 266: /* Line 1455 of yacc.c */ -#line 1995 "program_parse.y" +#line 2084 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 259: + case 267: /* Line 1455 of yacc.c */ -#line 1996 "program_parse.y" +#line 2085 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 260: + case 268: /* Line 1455 of yacc.c */ -#line 1999 "program_parse.y" +#line 2088 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 261: + case 269: /* Line 1455 of yacc.c */ -#line 2000 "program_parse.y" +#line 2089 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 262: + case 270: /* Line 1455 of yacc.c */ -#line 2001 "program_parse.y" +#line 2090 "program_parse.y" { (yyval.integer) = 1; ;} break; - case 263: + case 271: /* Line 1455 of yacc.c */ -#line 2004 "program_parse.y" +#line 2093 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 264: + case 272: /* Line 1455 of yacc.c */ -#line 2005 "program_parse.y" +#line 2094 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 265: + case 273: /* Line 1455 of yacc.c */ -#line 2008 "program_parse.y" +#line 2097 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 266: + case 274: /* Line 1455 of yacc.c */ -#line 2009 "program_parse.y" +#line 2098 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 267: + case 275: /* Line 1455 of yacc.c */ -#line 2012 "program_parse.y" +#line 2101 "program_parse.y" { (yyval.integer) = 0; ;} break; - case 268: + case 276: /* Line 1455 of yacc.c */ -#line 2013 "program_parse.y" +#line 2102 "program_parse.y" { (yyval.integer) = (yyvsp[(2) - (3)].integer); ;} break; - case 269: + case 277: /* Line 1455 of yacc.c */ -#line 2017 "program_parse.y" +#line 2106 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureCoordUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture coordinate unit selector"); @@ -4714,10 +4846,10 @@ yyreduce: ;} break; - case 270: + case 278: /* Line 1455 of yacc.c */ -#line 2028 "program_parse.y" +#line 2117 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureImageUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture image unit selector"); @@ -4728,10 +4860,10 @@ yyreduce: ;} break; - case 271: + case 279: /* Line 1455 of yacc.c */ -#line 2039 "program_parse.y" +#line 2128 "program_parse.y" { if ((unsigned) (yyvsp[(1) - (1)].integer) >= state->MaxTextureUnits) { yyerror(& (yylsp[(1) - (1)]), state, "invalid texture unit selector"); @@ -4742,10 +4874,10 @@ yyreduce: ;} break; - case 272: + case 280: /* Line 1455 of yacc.c */ -#line 2050 "program_parse.y" +#line 2139 "program_parse.y" { struct asm_symbol *exist = (struct asm_symbol *) _mesa_symbol_table_find_symbol(state->st, 0, (yyvsp[(2) - (4)].string)); @@ -4769,7 +4901,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 4773 "program_parse.tab.c" +#line 4905 "program_parse.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -4988,7 +5120,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 2074 "program_parse.y" +#line 2163 "program_parse.y" void @@ -5007,8 +5139,15 @@ asm_instruction_set_operands(struct asm_instruction *inst, inst->Base.DstReg = *dst; } - inst->Base.SrcReg[0] = src0->Base; - inst->SrcReg[0] = *src0; + /* The only instruction that doesn't have any source registers is the + * condition-code based KIL instruction added by NV_fragment_program_option. + */ + if (src0 != NULL) { + inst->Base.SrcReg[0] = src0->Base; + inst->SrcReg[0] = *src0; + } else { + init_src_reg(& inst->SrcReg[0]); + } if (src1 != NULL) { inst->Base.SrcReg[1] = src1->Base; diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y index d6bac07081..3021ae83f3 100644 --- a/src/mesa/shader/program_parse.y +++ b/src/mesa/shader/program_parse.y @@ -202,6 +202,8 @@ static struct asm_instruction *asm_instruction_copy_ctor( %type addrReg %type addrComponent addrWriteMask +%type ccMaskRule ccTest ccMaskRule2 ccTest2 optionalCcMask + %type resultBinding resultColBinding %type optFaceType optColorType %type optResultFaceType optResultColorType @@ -447,6 +449,14 @@ KIL_instruction: KIL swizzleSrcReg $$ = asm_instruction_ctor(OPCODE_KIL, NULL, & $2, NULL, NULL); state->fragment.UsesKill = 1; } + | KIL ccTest + { + $$ = asm_instruction_ctor(OPCODE_KIL_NV, NULL, NULL, NULL, NULL); + $$->Base.DstReg.CondMask = $2.CondMask; + $$->Base.DstReg.CondSwizzle = $2.CondSwizzle; + $$->Base.DstReg.CondSrc = $2.CondSrc; + state->fragment.UsesKill = 1; + } ; TXD_instruction: TXD_OP maskedDstReg ',' swizzleSrcReg ',' swizzleSrcReg ',' swizzleSrcReg ',' texImageUnit ',' texTarget @@ -607,10 +617,13 @@ swizzleSrcReg: optionalSign srcReg swizzleSuffix ; -maskedDstReg: dstReg optionalMask +maskedDstReg: dstReg optionalMask optionalCcMask { $$ = $1; $$.WriteMask = $2.mask; + $$.CondMask = $3.CondMask; + $$.CondSwizzle = $3.CondSwizzle; + $$.CondSrc = $3.CondSrc; if ($$.File == PROGRAM_OUTPUT) { /* Technically speaking, this should check that it is in @@ -984,6 +997,82 @@ optionalMask: MASK4 | MASK3 | MASK2 | MASK1 | { $$.swizzle = SWIZZLE_NOOP; $$.mask = WRITEMASK_XYZW; } ; +optionalCcMask: '(' ccTest ')' + { + $$ = $2; + } + | '(' ccTest2 ')' + { + $$ = $2; + } + | + { + $$.CondMask = COND_TR; + $$.CondSwizzle = SWIZZLE_NOOP; + $$.CondSrc = 0; + } + ; + +ccTest: ccMaskRule swizzleSuffix + { + $$ = $1; + $$.CondSwizzle = $2.swizzle; + } + ; + +ccTest2: ccMaskRule2 swizzleSuffix + { + $$ = $1; + $$.CondSwizzle = $2.swizzle; + } + ; + +ccMaskRule: IDENTIFIER + { + const int cond = _mesa_parse_cc($1); + if ((cond == 0) || ($1[2] != '\0')) { + char *const err_str = + make_error_string("invalid condition code \"%s\"", $1); + + yyerror(& @1, state, (err_str != NULL) + ? err_str : "invalid condition code"); + + if (err_str != NULL) { + _mesa_free(err_str); + } + + YYERROR; + } + + $$.CondMask = cond; + $$.CondSwizzle = SWIZZLE_NOOP; + $$.CondSrc = 0; + } + ; + +ccMaskRule2: USED_IDENTIFIER + { + const int cond = _mesa_parse_cc($1); + if ((cond == 0) || ($1[2] != '\0')) { + char *const err_str = + make_error_string("invalid condition code \"%s\"", $1); + + yyerror(& @1, state, (err_str != NULL) + ? err_str : "invalid condition code"); + + if (err_str != NULL) { + _mesa_free(err_str); + } + + YYERROR; + } + + $$.CondMask = cond; + $$.CondSwizzle = SWIZZLE_NOOP; + $$.CondSrc = 0; + } + ; + namingStatement: ATTRIB_statement | PARAM_statement | TEMP_statement @@ -2089,8 +2178,15 @@ asm_instruction_set_operands(struct asm_instruction *inst, inst->Base.DstReg = *dst; } - inst->Base.SrcReg[0] = src0->Base; - inst->SrcReg[0] = *src0; + /* The only instruction that doesn't have any source registers is the + * condition-code based KIL instruction added by NV_fragment_program_option. + */ + if (src0 != NULL) { + inst->Base.SrcReg[0] = src0->Base; + inst->SrcReg[0] = *src0; + } else { + init_src_reg(& inst->SrcReg[0]); + } if (src1 != NULL) { inst->Base.SrcReg[1] = src1->Base; diff --git a/src/mesa/shader/program_parse_extra.c b/src/mesa/shader/program_parse_extra.c index cb7b7a5fb2..0656c5eaa8 100644 --- a/src/mesa/shader/program_parse_extra.c +++ b/src/mesa/shader/program_parse_extra.c @@ -94,6 +94,60 @@ _mesa_parse_instruction_suffix(const struct asm_parser_state *state, } +int +_mesa_parse_cc(const char *s) +{ + int cond = 0; + + switch (s[0]) { + case 'E': + if (s[1] == 'Q') { + cond = COND_EQ; + } + break; + + case 'F': + if (s[1] == 'L') { + cond = COND_FL; + } + break; + + case 'G': + if (s[1] == 'E') { + cond = COND_GE; + } else if (s[1] == 'T') { + cond = COND_GT; + } + break; + + case 'L': + if (s[1] == 'E') { + cond = COND_LE; + } else if (s[1] == 'T') { + cond = COND_LT; + } + break; + + case 'N': + if (s[1] == 'E') { + cond = COND_NE; + } + break; + + case 'T': + if (s[1] == 'R') { + cond = COND_TR; + } + break; + + default: + break; + } + + return ((cond == 0) || (s[2] != '\0')) ? 0 : cond; +} + + int _mesa_ARBvp_parse_option(struct asm_parser_state *state, const char *option) { diff --git a/src/mesa/shader/program_parser.h b/src/mesa/shader/program_parser.h index 497891f53d..bce6041381 100644 --- a/src/mesa/shader/program_parser.h +++ b/src/mesa/shader/program_parser.h @@ -278,4 +278,17 @@ extern int _mesa_ARBfp_parse_option(struct asm_parser_state *state, extern int _mesa_parse_instruction_suffix(const struct asm_parser_state *state, const char *suffix, struct prog_instruction *inst); +/** + * Parses a condition code name + * + * The condition code names (e.g., \c LT, \c GT, \c NE) were added to assembly + * shaders with the \c GL_NV_fragment_program_option extension. This function + * converts a string representation into one of the \c COND_ macros. + * + * \return + * One of the \c COND_ macros defined in prog_instruction.h on success or zero + * on failure. + */ +extern int _mesa_parse_cc(const char *s); + /*@}*/ -- cgit v1.2.3 From 09af58d7ed7dfa8f2ce2b881bb849064e136c830 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 24 Sep 2009 18:27:20 -0700 Subject: NV fp lexer: Add UP4B and UP4UB instructions that were previously missing --- src/mesa/shader/lex.yy.c | 1351 ++++++++++++++++++++------------------- src/mesa/shader/program_lexer.l | 2 + 2 files changed, 686 insertions(+), 667 deletions(-) diff --git a/src/mesa/shader/lex.yy.c b/src/mesa/shader/lex.yy.c index 3c4e97b650..3c86913fdf 100644 --- a/src/mesa/shader/lex.yy.c +++ b/src/mesa/shader/lex.yy.c @@ -357,8 +357,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 168 -#define YY_END_OF_BUFFER 169 +#define YY_NUM_RULES 170 +#define YY_END_OF_BUFFER 171 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -366,100 +366,101 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[836] = +static yyconst flex_int16_t yy_accept[850] = { 0, - 0, 0, 169, 167, 165, 164, 167, 167, 137, 163, - 139, 139, 139, 139, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 165, 0, 0, 166, 137, - 0, 138, 140, 160, 160, 0, 0, 0, 0, 160, - 0, 0, 0, 0, 0, 0, 0, 117, 161, 118, - 119, 151, 151, 151, 151, 0, 139, 0, 125, 126, - 127, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 158, 0, 0, 0, + 0, 0, 171, 169, 167, 166, 169, 169, 139, 165, + 141, 141, 141, 141, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 167, 0, 0, 168, 139, + 0, 140, 142, 162, 162, 0, 0, 0, 0, 162, + 0, 0, 0, 0, 0, 0, 0, 119, 163, 120, + 121, 153, 153, 153, 153, 0, 141, 0, 127, 128, + 129, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 157, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 148, 148, 148, 149, 149, 150, 141, - 140, 141, 0, 142, 11, 12, 137, 13, 137, 137, - 14, 15, 137, 16, 17, 18, 19, 20, 21, 6, + 159, 159, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 150, 150, 150, 151, 151, 152, 143, + 142, 143, 0, 144, 11, 12, 139, 13, 139, 139, + 14, 15, 139, 16, 17, 18, 19, 20, 21, 6, 22, 23, 24, 25, 26, 28, 27, 29, 30, 31, - 32, 33, 34, 35, 137, 137, 137, 137, 137, 40, - 41, 137, 42, 43, 44, 45, 46, 47, 48, 137, - 49, 50, 51, 52, 53, 54, 55, 137, 56, 57, - 58, 59, 137, 62, 63, 137, 137, 137, 137, 137, - 137, 0, 0, 0, 0, 140, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 78, 79, 81, 0, - 156, 0, 0, 0, 0, 0, 0, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 154, - 154, 107, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 145, 145, 146, 147, 0, 143, 11, 11, - 137, 12, 12, 12, 137, 137, 137, 137, 137, 15, - 15, 137, 128, 16, 16, 137, 17, 17, 137, 18, - 18, 137, 19, 19, 137, 20, 20, 137, 21, 21, - 137, 22, 22, 137, 24, 24, 137, 25, 25, 137, - 28, 28, 137, 27, 27, 137, 30, 30, 137, 31, - 31, 137, 32, 32, 137, 33, 33, 137, 34, 34, - 137, 35, 35, 137, 137, 137, 137, 36, 137, 38, - 137, 40, 40, 137, 41, 41, 137, 129, 42, 42, - 137, 43, 43, 137, 137, 45, 45, 137, 46, 46, - - 137, 47, 47, 137, 48, 48, 137, 137, 49, 49, - 137, 50, 50, 137, 51, 51, 137, 52, 52, 137, - 53, 53, 137, 54, 54, 137, 137, 10, 56, 137, - 57, 137, 58, 137, 59, 137, 60, 137, 62, 62, - 137, 137, 137, 137, 137, 137, 137, 137, 0, 162, - 0, 0, 0, 71, 72, 0, 0, 0, 0, 0, - 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, + 32, 33, 34, 35, 139, 139, 139, 139, 139, 40, + 41, 139, 42, 43, 44, 45, 46, 47, 48, 139, + 49, 50, 51, 52, 53, 54, 55, 139, 56, 57, + 58, 59, 139, 139, 64, 65, 139, 139, 139, 139, + 139, 139, 0, 0, 0, 0, 142, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 80, 81, 83, + 0, 158, 0, 0, 0, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 156, 156, 109, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 147, 147, 148, 149, 0, 145, 11, + 11, 139, 12, 12, 12, 139, 139, 139, 139, 139, + 15, 15, 139, 130, 16, 16, 139, 17, 17, 139, + 18, 18, 139, 19, 19, 139, 20, 20, 139, 21, + 21, 139, 22, 22, 139, 24, 24, 139, 25, 25, + 139, 28, 28, 139, 27, 27, 139, 30, 30, 139, + 31, 31, 139, 32, 32, 139, 33, 33, 139, 34, + 34, 139, 35, 35, 139, 139, 139, 139, 36, 139, + 38, 139, 40, 40, 139, 41, 41, 139, 131, 42, + 42, 139, 43, 43, 139, 139, 45, 45, 139, 46, + + 46, 139, 47, 47, 139, 48, 48, 139, 139, 49, + 49, 139, 50, 50, 139, 51, 51, 139, 52, 52, + 139, 53, 53, 139, 54, 54, 139, 139, 10, 56, + 139, 57, 139, 58, 139, 59, 139, 60, 139, 62, + 139, 64, 64, 139, 139, 139, 139, 139, 139, 139, + 139, 0, 164, 0, 0, 0, 73, 74, 0, 0, + 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 0, 0, 0, 111, 0, 113, 0, 0, - 0, 0, 0, 0, 152, 144, 137, 137, 137, 4, - - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 9, 37, 39, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 60, 137, 61, - 137, 137, 137, 137, 137, 67, 137, 137, 0, 0, - 0, 0, 0, 73, 74, 0, 0, 0, 0, 82, - 0, 0, 86, 89, 0, 0, 0, 0, 0, 0, - 0, 100, 101, 0, 0, 0, 0, 106, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 137, 137, - - 137, 137, 137, 137, 5, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 7, 8, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 61, 137, - 137, 137, 137, 137, 68, 137, 64, 0, 0, 0, - 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 92, 0, 96, 97, 0, 99, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 115, 116, 0, - 0, 123, 11, 3, 12, 133, 134, 137, 14, 15, - - 16, 17, 18, 19, 20, 21, 22, 24, 25, 28, - 27, 30, 31, 32, 33, 34, 35, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 137, 137, 137, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 137, 137, 62, 63, 137, 66, 124, 0, 0, 69, - 0, 75, 0, 0, 0, 84, 0, 0, 0, 0, - 0, 0, 98, 0, 0, 104, 91, 0, 0, 0, - 0, 0, 0, 120, 0, 137, 130, 131, 137, 60, - 137, 65, 0, 0, 0, 0, 77, 80, 85, 0, - 0, 90, 0, 0, 0, 103, 0, 0, 0, 0, - - 112, 114, 0, 137, 137, 61, 2, 1, 0, 76, - 0, 88, 0, 94, 102, 0, 0, 109, 110, 121, - 137, 132, 0, 87, 0, 105, 108, 137, 70, 93, - 137, 137, 135, 136, 0 + 0, 0, 0, 0, 155, 0, 0, 0, 113, 0, + 115, 0, 0, 0, 0, 0, 0, 154, 146, 139, + + 139, 139, 4, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 9, 37, 39, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 60, 139, 61, 62, 139, 63, 139, 139, 139, 139, + 139, 69, 139, 139, 0, 0, 0, 0, 0, 75, + 76, 0, 0, 0, 0, 84, 0, 0, 88, 91, + 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, + 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 139, 139, 139, 139, 139, 139, + 5, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 7, 8, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 61, 139, 139, 63, 139, 139, + 139, 139, 139, 70, 139, 66, 0, 0, 0, 0, + 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94, 0, 98, 99, 0, 101, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 117, 118, 0, 0, + + 125, 11, 3, 12, 135, 136, 139, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 24, 25, 28, 27, + 30, 31, 32, 33, 34, 35, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 139, 139, 139, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 139, + 139, 139, 139, 64, 65, 139, 68, 126, 0, 0, + 71, 0, 77, 0, 0, 0, 86, 0, 0, 0, + 0, 0, 0, 100, 0, 0, 106, 93, 0, 0, + 0, 0, 0, 0, 122, 0, 139, 132, 133, 139, + 60, 139, 62, 139, 67, 0, 0, 0, 0, 79, + + 82, 87, 0, 0, 92, 0, 0, 0, 105, 0, + 0, 0, 0, 114, 116, 0, 139, 139, 61, 63, + 2, 1, 0, 78, 0, 90, 0, 96, 104, 0, + 0, 111, 112, 123, 139, 134, 0, 89, 0, 107, + 110, 139, 72, 95, 139, 139, 137, 138, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -505,199 +506,203 @@ static yyconst flex_int32_t yy_meta[68] = 2, 2, 2, 2, 2, 2, 2 } ; -static yyconst flex_int16_t yy_base[839] = +static yyconst flex_int16_t yy_base[853] = { 0, - 0, 0, 1283, 1284, 66, 1284, 1277, 1278, 0, 69, - 85, 128, 140, 152, 151, 58, 56, 63, 76, 1256, - 158, 160, 39, 163, 173, 189, 52, 1249, 76, 1219, - 1218, 1230, 1214, 1228, 1227, 105, 1256, 1268, 1284, 0, - 225, 1284, 218, 160, 157, 20, 123, 66, 119, 192, - 1228, 1214, 54, 162, 1212, 1224, 194, 1284, 200, 195, - 98, 227, 196, 231, 235, 293, 305, 316, 1284, 1284, - 1284, 1233, 1246, 1240, 223, 1229, 1232, 1228, 1243, 107, - 298, 1225, 1239, 246, 1225, 1238, 1229, 1242, 1219, 1230, - 1221, 182, 1222, 1213, 1222, 1213, 1212, 1213, 144, 1207, - - 1213, 1224, 1215, 1209, 1206, 1207, 1211, 289, 1220, 1207, - 302, 1214, 1201, 1215, 1191, 65, 315, 1218, 1210, 1209, - 1185, 1170, 1165, 1182, 1158, 1163, 1189, 279, 1178, 293, - 1173, 342, 299, 1175, 1156, 317, 1166, 1162, 1157, 207, - 1163, 1149, 1165, 1162, 1153, 320, 324, 1155, 1144, 1158, - 1161, 1143, 1158, 1145, 1142, 1149, 284, 1157, 227, 288, - 327, 342, 345, 1134, 1151, 1152, 1145, 1127, 318, 1128, - 1150, 1141, 330, 341, 345, 349, 353, 357, 361, 1284, - 419, 430, 436, 442, 440, 441, 1174, 0, 1173, 1156, - 1146, 443, 1166, 444, 451, 468, 470, 472, 471, 0, + 0, 0, 1299, 1300, 66, 1300, 1293, 1294, 0, 69, + 85, 128, 140, 152, 151, 58, 56, 63, 76, 1272, + 158, 160, 39, 163, 173, 189, 52, 1265, 76, 1235, + 1234, 1246, 1230, 1244, 1243, 105, 1272, 1284, 1300, 0, + 225, 1300, 218, 160, 157, 20, 123, 66, 119, 192, + 1244, 1230, 54, 162, 1228, 1240, 194, 1300, 200, 195, + 98, 227, 196, 231, 235, 293, 305, 316, 1300, 1300, + 1300, 1249, 1262, 1256, 223, 1245, 1248, 1244, 1259, 107, + 298, 1241, 1255, 246, 1241, 1254, 1245, 1258, 1235, 1246, + 1237, 182, 1238, 1229, 1238, 1229, 1228, 1229, 144, 1223, + + 1229, 1240, 1231, 1225, 1222, 1223, 1227, 289, 1236, 1223, + 302, 1230, 1217, 1231, 1207, 65, 315, 276, 1227, 1226, + 1202, 1187, 1182, 1199, 1175, 1180, 1206, 279, 1195, 293, + 1190, 342, 299, 1192, 1173, 317, 1183, 1179, 1174, 207, + 1180, 1166, 1182, 1179, 1170, 320, 324, 1172, 1161, 1175, + 1178, 1160, 1175, 1162, 1159, 1166, 284, 1174, 227, 288, + 327, 342, 345, 1151, 1168, 1169, 1162, 1144, 318, 1145, + 1167, 1158, 330, 341, 345, 349, 353, 357, 361, 1300, + 419, 430, 436, 442, 440, 441, 1191, 0, 1190, 1173, + 1163, 443, 1183, 444, 451, 468, 470, 472, 471, 0, 496, 0, 497, 498, 0, 499, 500, 0, 524, 525, - 526, 536, 537, 553, 1161, 1154, 1167, 354, 356, 561, - 563, 1148, 564, 565, 1140, 580, 590, 591, 592, 1161, - 593, 617, 618, 619, 629, 630, 1138, 1148, 247, 330, - 362, 419, 445, 646, 1136, 1128, 1127, 1112, 1112, 1111, - 1110, 1153, 1125, 1113, 662, 669, 643, 1117, 487, 1114, - 1108, 1108, 1102, 1115, 1115, 1100, 1284, 1284, 1115, 1103, - 646, 1110, 135, 1107, 1113, 561, 1108, 1284, 1099, 1106, - 1105, 1108, 1094, 1093, 1097, 1092, 330, 1097, 650, 653, - 665, 1284, 1089, 1087, 1087, 1095, 1096, 1078, 670, 1083, - - 1089, 432, 460, 486, 579, 655, 715, 722, 1095, 682, - 1102, 1093, 697, 721, 1100, 1099, 1092, 1106, 1096, 1087, - 699, 1094, 0, 1085, 724, 1092, 1083, 725, 1090, 1081, - 726, 1088, 1079, 727, 1086, 1077, 728, 1084, 1075, 729, - 1082, 1073, 730, 1080, 1071, 731, 1078, 1069, 732, 1076, - 1067, 733, 1074, 1065, 734, 1072, 1063, 735, 1070, 1061, - 736, 1068, 1059, 737, 1066, 1057, 738, 1064, 1055, 739, - 1062, 1053, 740, 1060, 1063, 1056, 1063, 0, 1056, 0, - 1071, 1046, 741, 1053, 1044, 742, 1051, 0, 1042, 743, - 1049, 1040, 745, 1047, 1046, 1037, 746, 1044, 1035, 767, - - 1042, 1033, 770, 1040, 1031, 771, 1038, 1041, 1028, 772, - 1035, 1026, 773, 1033, 1024, 774, 1031, 1022, 775, 1029, - 1020, 776, 1027, 1018, 777, 1025, 1024, 0, 1015, 1022, - 1013, 1020, 1011, 1018, 1009, 1016, 778, 1015, 1006, 779, - 1013, 1012, 990, 984, 989, 995, 978, 993, 424, 1284, - 992, 982, 986, 1284, 1284, 976, 985, 971, 988, 971, - 974, 968, 1284, 969, 968, 965, 972, 965, 973, 969, - 979, 976, 958, 964, 971, 955, 954, 972, 954, 966, - 965, 1284, 964, 954, 958, 1284, 945, 1284, 950, 950, - 958, 941, 942, 952, 1284, 1284, 984, 966, 982, 0, - - 788, 980, 980, 979, 978, 977, 976, 975, 974, 973, - 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, - 962, 949, 942, 0, 0, 0, 959, 958, 957, 956, - 955, 954, 953, 952, 951, 929, 949, 948, 947, 946, - 945, 944, 943, 942, 941, 940, 939, 913, 920, 783, - 936, 935, 904, 907, 887, 0, 888, 881, 888, 887, - 888, 880, 898, 1284, 1284, 880, 878, 888, 881, 1284, - 876, 893, 345, 1284, 884, 868, 869, 878, 869, 868, - 868, 1284, 867, 876, 866, 882, 879, 1284, 878, 876, - 865, 866, 862, 854, 861, 856, 857, 852, 878, 878, - - 876, 890, 889, 884, 0, 872, 871, 870, 869, 868, - 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, - 857, 856, 855, 854, 0, 0, 853, 852, 851, 850, - 849, 848, 847, 846, 845, 791, 844, 843, 842, 841, - 840, 839, 838, 837, 836, 835, 834, 851, 825, 832, - 830, 829, 807, 807, 0, 814, 0, 848, 847, 796, - 814, 1284, 809, 804, 797, 793, 805, 795, 793, 789, - 805, 796, 795, 1284, 1284, 798, 1284, 793, 786, 775, - 786, 778, 782, 795, 790, 793, 775, 1284, 1284, 787, - 776, 1284, 0, 0, 0, 0, 0, 815, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 526, 536, 537, 553, 1178, 1171, 1184, 354, 356, 561, + 563, 1165, 564, 565, 1157, 580, 590, 591, 592, 1178, + 593, 617, 618, 619, 629, 630, 1155, 1165, 330, 362, + 419, 483, 445, 364, 646, 1153, 1145, 1144, 1129, 1129, + 1128, 1127, 1170, 1142, 1130, 662, 669, 643, 1134, 487, + 1131, 1125, 1125, 1119, 1132, 1132, 1117, 1300, 1300, 1132, + 1120, 646, 1127, 135, 1124, 1130, 561, 1125, 1300, 1116, + 1123, 1122, 1125, 1111, 1110, 1114, 1109, 448, 1114, 650, + 653, 665, 1300, 1106, 1104, 1104, 1112, 1113, 1095, 670, + + 1100, 1106, 486, 579, 655, 661, 668, 726, 732, 1112, + 682, 1119, 1110, 688, 730, 1117, 1116, 1109, 1123, 1113, + 1104, 712, 1111, 0, 1102, 731, 1109, 1100, 733, 1107, + 1098, 734, 1105, 1096, 736, 1103, 1094, 737, 1101, 1092, + 738, 1099, 1090, 739, 1097, 1088, 740, 1095, 1086, 741, + 1093, 1084, 742, 1091, 1082, 743, 1089, 1080, 744, 1087, + 1078, 745, 1085, 1076, 746, 1083, 1074, 747, 1081, 1072, + 748, 1079, 1070, 749, 1077, 1080, 1073, 1080, 0, 1073, + 0, 1088, 1063, 750, 1070, 1061, 751, 1068, 0, 1059, + 752, 1066, 1057, 755, 1064, 1063, 1054, 758, 1061, 1052, + + 776, 1059, 1050, 777, 1057, 1048, 779, 1055, 1058, 1045, + 780, 1052, 1043, 782, 1050, 1041, 783, 1048, 1039, 784, + 1046, 1037, 785, 1044, 1035, 786, 1042, 1041, 0, 1032, + 1039, 1030, 1037, 1028, 1035, 1026, 1033, 787, 1032, 788, + 1047, 1022, 789, 1029, 1028, 1006, 1000, 1005, 1011, 994, + 1009, 424, 1300, 1008, 998, 1002, 1300, 1300, 992, 1001, + 987, 1004, 987, 990, 984, 1300, 985, 984, 981, 988, + 981, 989, 985, 995, 992, 974, 980, 987, 971, 970, + 988, 970, 982, 981, 1300, 980, 970, 974, 1300, 961, + 1300, 966, 966, 974, 957, 958, 968, 1300, 1300, 1000, + + 982, 998, 0, 798, 996, 996, 995, 994, 993, 992, + 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, + 981, 980, 979, 978, 965, 958, 0, 0, 0, 975, + 974, 973, 972, 971, 970, 969, 968, 967, 945, 965, + 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, + 929, 936, 793, 927, 934, 794, 950, 949, 918, 921, + 901, 0, 902, 895, 902, 901, 902, 894, 912, 1300, + 1300, 894, 892, 902, 895, 1300, 890, 907, 516, 1300, + 898, 882, 883, 892, 883, 882, 882, 1300, 881, 890, + 880, 896, 893, 1300, 892, 890, 879, 880, 876, 868, + + 875, 870, 871, 866, 892, 892, 890, 904, 903, 898, + 0, 886, 885, 884, 883, 882, 881, 880, 879, 878, + 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, + 0, 0, 867, 866, 865, 864, 863, 862, 861, 860, + 859, 804, 858, 857, 856, 855, 854, 853, 852, 851, + 850, 849, 848, 865, 839, 846, 862, 836, 843, 841, + 840, 818, 818, 0, 825, 0, 859, 858, 807, 825, + 1300, 820, 815, 808, 804, 816, 806, 804, 800, 816, + 807, 806, 1300, 1300, 809, 1300, 804, 797, 786, 797, + 789, 793, 806, 801, 804, 786, 1300, 1300, 798, 787, + + 1300, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 811, 803, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 775, 791, 0, 0, 745, 0, 0, 796, 795, 1284, - 737, 1284, 655, 655, 661, 1284, 644, 658, 643, 644, - 635, 620, 1284, 598, 608, 1284, 1284, 604, 586, 579, - 567, 567, 574, 1284, 557, 582, 0, 0, 582, 0, - 565, 0, 582, 580, 539, 525, 1284, 1284, 1284, 527, - 527, 1284, 525, 497, 499, 1284, 478, 451, 439, 441, - - 1284, 1284, 431, 441, 366, 0, 1284, 1284, 21, 1284, - 144, 1284, 176, 1284, 1284, 182, 187, 1284, 1284, 1284, - 220, 0, 235, 1284, 245, 1284, 1284, 424, 1284, 1284, - 327, 373, 0, 0, 1284, 824, 396, 827 + 0, 0, 0, 0, 0, 814, 813, 802, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, + 798, 779, 792, 0, 0, 656, 0, 0, 706, 702, + 1300, 649, 1300, 648, 648, 654, 1300, 637, 645, 610, + 612, 608, 608, 1300, 572, 583, 1300, 1300, 577, 573, + 560, 557, 542, 555, 1300, 539, 573, 0, 0, 572, + 0, 555, 0, 546, 0, 562, 551, 495, 479, 1300, + + 1300, 1300, 481, 481, 1300, 480, 443, 31, 1300, 141, + 166, 171, 186, 1300, 1300, 211, 236, 276, 0, 0, + 1300, 1300, 290, 1300, 325, 1300, 346, 1300, 1300, 343, + 341, 1300, 1300, 1300, 365, 0, 380, 1300, 371, 1300, + 1300, 486, 1300, 1300, 451, 458, 0, 0, 1300, 836, + 503, 839 } ; -static yyconst flex_int16_t yy_def[839] = +static yyconst flex_int16_t yy_def[853] = { 0, - 835, 1, 835, 835, 835, 835, 835, 836, 837, 835, - 835, 835, 835, 835, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 835, 835, 836, 835, 837, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 838, 835, 835, 835, 835, - 835, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - - 835, 835, 835, 835, 835, 835, 835, 835, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 837, 837, 837, 837, - - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 837, 837, - - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 837, 837, 837, 837, 837, 837, 837, 837, - - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 837, 837, 837, 837, 837, 837, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 837, 837, 837, 837, 837, - 837, 837, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - - 835, 835, 835, 837, 837, 837, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 837, 837, 835, 835, 835, 835, 835, 837, 835, 835, - 837, 837, 837, 837, 0, 835, 835, 835 + 849, 1, 849, 849, 849, 849, 849, 850, 851, 849, + 849, 849, 849, 849, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 849, 849, 850, 849, 851, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 852, 849, 849, 849, 849, + 849, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + + 849, 849, 849, 849, 849, 849, 849, 849, 849, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 851, + + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + + 849, 849, 849, 849, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + + 849, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 851, 851, 851, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 851, 851, 851, 851, + 851, 851, 851, 851, 851, 849, 849, 849, 849, 849, + + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 851, 851, 851, 851, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 851, 851, 849, 849, 849, 849, + 849, 851, 849, 849, 851, 851, 851, 851, 0, 849, + 849, 849 } ; -static yyconst flex_int16_t yy_nxt[1352] = +static yyconst flex_int16_t yy_nxt[1368] = { 0, 4, 5, 6, 5, 7, 8, 9, 4, 10, 11, 12, 13, 14, 11, 11, 15, 9, 16, 17, 18, @@ -706,7 +711,7 @@ static yyconst flex_int16_t yy_nxt[1352] = 9, 9, 9, 9, 9, 9, 30, 9, 9, 9, 9, 9, 9, 9, 9, 9, 31, 9, 32, 33, 34, 9, 35, 9, 9, 9, 9, 36, 96, 36, - 41, 116, 137, 97, 80, 138, 823, 42, 43, 43, + 41, 116, 137, 97, 80, 138, 829, 42, 43, 43, 43, 43, 43, 43, 77, 81, 78, 119, 82, 117, 83, 238, 79, 66, 67, 67, 67, 67, 67, 67, @@ -718,139 +723,140 @@ static yyconst flex_int16_t yy_nxt[1352] = 67, 67, 67, 67, 67, 218, 171, 219, 70, 68, 66, 67, 67, 67, 67, 67, 67, 72, 139, 73, 71, 68, 140, 68, 144, 92, 74, 145, 98, 88, - 464, 89, 75, 93, 76, 68, 90, 99, 94, 91, - 101, 100, 102, 103, 95, 465, 824, 68, 136, 133, + 467, 89, 75, 93, 76, 68, 90, 99, 94, 91, + 101, 100, 102, 103, 95, 468, 830, 68, 136, 133, 210, 133, 133, 152, 133, 104, 105, 133, 106, 107, 108, 109, 110, 134, 111, 133, 112, 153, 133, 211, - 135, 825, 113, 114, 154, 115, 41, 43, 43, 43, - 43, 43, 43, 146, 147, 157, 826, 132, 165, 133, - 166, 161, 162, 167, 168, 827, 158, 163, 188, 159, - 133, 169, 160, 264, 189, 164, 828, 201, 133, 174, - 173, 175, 176, 132, 429, 265, 128, 129, 46, 47, - 48, 49, 172, 51, 52, 202, 284, 53, 54, 55, - 56, 57, 58, 130, 60, 61, 285, 430, 131, 829, + 135, 831, 113, 114, 154, 115, 41, 43, 43, 43, + 43, 43, 43, 146, 147, 157, 832, 132, 165, 133, + 166, 161, 162, 167, 168, 833, 158, 163, 188, 159, + 133, 169, 160, 265, 189, 164, 834, 201, 133, 174, + 173, 175, 176, 132, 835, 266, 128, 129, 46, 47, + 48, 49, 172, 51, 52, 202, 285, 53, 54, 55, + 56, 57, 58, 130, 60, 61, 286, 243, 131, 244, 173, 173, 173, 173, 177, 173, 173, 178, 179, 173, - 173, 173, 181, 181, 181, 181, 181, 181, 228, 830, + 173, 173, 181, 181, 181, 181, 181, 181, 228, 836, 196, 197, 182, 66, 67, 67, 67, 67, 67, 67, 198, 232, 229, 183, 68, 184, 184, 184, 184, 184, - 184, 240, 134, 241, 254, 233, 281, 286, 182, 135, - 257, 257, 282, 287, 242, 833, 257, 431, 164, 255, - 68, 256, 256, 256, 256, 256, 256, 257, 257, 257, - 260, 257, 257, 297, 257, 271, 257, 257, 257, 257, - 432, 257, 380, 298, 257, 257, 378, 479, 257, 433, - 480, 288, 257, 289, 257, 257, 290, 291, 379, 257, - 381, 834, 257, 302, 302, 302, 302, 40, 669, 822, - - 257, 670, 434, 257, 302, 302, 302, 302, 303, 302, - 302, 304, 305, 302, 302, 302, 302, 302, 302, 302, - 306, 302, 302, 302, 302, 302, 302, 302, 43, 43, - 43, 43, 43, 43, 831, 832, 435, 307, 132, 308, - 308, 308, 308, 308, 308, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 309, 312, 436, - 320, 324, 310, 313, 132, 321, 325, 437, 327, 821, - 559, 310, 314, 328, 321, 325, 820, 310, 313, 438, - 311, 315, 328, 322, 326, 330, 560, 333, 339, 336, - 331, 329, 334, 340, 337, 495, 495, 495, 495, 331, - - 819, 334, 340, 337, 818, 331, 817, 334, 332, 337, - 335, 341, 338, 342, 345, 348, 351, 354, 343, 346, - 349, 352, 355, 495, 495, 495, 495, 343, 346, 349, - 352, 355, 452, 816, 346, 349, 344, 347, 350, 353, - 356, 357, 360, 363, 815, 453, 358, 361, 364, 496, - 495, 495, 495, 366, 369, 358, 361, 364, 367, 370, - 814, 358, 361, 364, 359, 362, 365, 367, 370, 813, - 372, 812, 811, 367, 370, 373, 368, 371, 382, 810, - 385, 389, 392, 383, 373, 386, 390, 393, 809, 808, - 373, 807, 383, 374, 386, 390, 393, 396, 806, 805, - - 804, 384, 397, 387, 391, 394, 468, 399, 402, 405, - 409, 397, 400, 403, 406, 410, 803, 397, 802, 469, - 398, 400, 403, 406, 410, 801, 800, 400, 403, 406, - 401, 404, 407, 411, 412, 415, 418, 799, 798, 413, - 416, 419, 495, 495, 495, 495, 421, 424, 413, 416, - 419, 422, 425, 797, 413, 416, 419, 414, 417, 420, - 422, 425, 796, 439, 795, 794, 422, 425, 440, 423, - 426, 256, 256, 256, 256, 256, 256, 440, 256, 256, - 256, 256, 256, 256, 450, 450, 441, 450, 450, 793, - 450, 450, 450, 450, 450, 450, 792, 450, 791, 309, - - 450, 450, 790, 789, 450, 788, 482, 450, 450, 787, - 786, 450, 450, 489, 312, 490, 320, 491, 495, 495, - 495, 495, 311, 450, 308, 308, 308, 308, 308, 308, - 492, 308, 308, 308, 308, 308, 308, 315, 312, 322, - 498, 324, 327, 330, 333, 336, 339, 342, 345, 348, - 351, 354, 357, 360, 363, 366, 369, 372, 382, 385, - 389, 315, 392, 396, 326, 329, 332, 335, 338, 341, - 344, 347, 350, 353, 356, 359, 362, 365, 368, 371, - 374, 384, 387, 391, 399, 394, 398, 402, 405, 409, - 412, 415, 418, 421, 424, 548, 439, 785, 602, 603, - - 649, 727, 728, 784, 783, 782, 781, 401, 780, 779, - 404, 407, 411, 414, 417, 420, 423, 426, 549, 441, - 604, 778, 729, 650, 38, 38, 38, 180, 180, 777, - 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, - 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, - 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, - 746, 745, 744, 743, 742, 650, 741, 740, 739, 738, - 737, 736, 735, 734, 733, 732, 731, 730, 726, 725, - 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, - 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, - - 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, - 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, - 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, - 674, 673, 672, 671, 668, 667, 666, 665, 664, 663, - 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, - 652, 651, 648, 549, 647, 646, 645, 644, 643, 642, - 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, - 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, - 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, - 611, 610, 609, 608, 607, 606, 605, 601, 600, 599, - - 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, - 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, - 568, 567, 566, 565, 564, 563, 562, 561, 558, 557, - 556, 555, 554, 553, 552, 551, 441, 550, 547, 436, - 546, 434, 545, 432, 544, 430, 543, 542, 426, 541, - 423, 540, 420, 539, 417, 538, 414, 537, 411, 536, - 535, 407, 534, 404, 533, 401, 532, 398, 531, 530, - 394, 529, 391, 528, 387, 527, 384, 526, 525, 524, - 523, 522, 521, 374, 520, 371, 519, 368, 518, 365, - - 517, 362, 516, 359, 515, 356, 514, 353, 513, 350, - 512, 347, 511, 344, 510, 341, 509, 338, 508, 335, - 507, 332, 506, 329, 505, 326, 504, 322, 503, 502, - 501, 500, 499, 315, 497, 311, 494, 493, 488, 487, - 486, 485, 484, 483, 481, 478, 477, 476, 475, 474, - 473, 472, 471, 470, 467, 466, 463, 462, 461, 460, - 459, 458, 457, 456, 455, 454, 451, 288, 260, 449, - 448, 447, 446, 445, 444, 443, 442, 428, 427, 408, - 395, 388, 377, 376, 375, 323, 319, 318, 317, 316, - 301, 300, 299, 296, 295, 294, 293, 292, 283, 280, - - 279, 278, 277, 276, 275, 274, 273, 272, 270, 269, - 268, 267, 266, 263, 262, 261, 259, 258, 172, 253, - 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, - 237, 236, 235, 234, 231, 230, 227, 226, 225, 224, - 223, 222, 221, 220, 217, 216, 215, 214, 213, 212, - 209, 208, 207, 206, 205, 204, 203, 200, 199, 193, - 192, 191, 190, 187, 186, 185, 156, 155, 149, 148, - 39, 127, 126, 125, 124, 123, 122, 121, 118, 87, - 39, 37, 835, 3, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835 + 184, 240, 134, 241, 255, 233, 282, 287, 182, 135, + 258, 258, 283, 288, 242, 837, 258, 430, 164, 256, + 68, 257, 257, 257, 257, 257, 257, 258, 258, 258, + 261, 258, 258, 298, 258, 272, 258, 258, 258, 258, + 431, 258, 381, 299, 258, 258, 379, 838, 258, 432, + 440, 289, 258, 290, 258, 258, 291, 292, 380, 258, + 382, 839, 258, 303, 303, 303, 303, 840, 441, 841, + + 258, 842, 433, 258, 303, 303, 303, 303, 304, 303, + 303, 305, 306, 303, 303, 303, 303, 303, 303, 303, + 307, 303, 303, 303, 303, 303, 303, 303, 43, 43, + 43, 43, 43, 43, 843, 844, 434, 308, 132, 309, + 309, 309, 309, 309, 309, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 310, 313, 435, + 321, 325, 311, 314, 132, 322, 326, 438, 328, 847, + 565, 311, 315, 329, 322, 326, 848, 311, 314, 439, + 312, 316, 329, 323, 327, 331, 566, 334, 340, 337, + 332, 330, 335, 341, 338, 482, 845, 846, 483, 332, + + 436, 335, 341, 338, 40, 332, 828, 335, 333, 338, + 336, 342, 339, 343, 346, 349, 352, 355, 344, 347, + 350, 353, 356, 437, 827, 826, 825, 344, 347, 350, + 353, 356, 455, 824, 347, 350, 345, 348, 351, 354, + 357, 358, 361, 364, 823, 456, 359, 362, 365, 498, + 498, 498, 498, 367, 370, 359, 362, 365, 368, 371, + 822, 359, 362, 365, 360, 363, 366, 368, 371, 678, + 373, 821, 679, 368, 371, 374, 369, 372, 383, 820, + 386, 390, 393, 384, 374, 387, 391, 394, 819, 818, + 374, 817, 384, 375, 387, 391, 394, 397, 816, 815, + + 814, 385, 398, 388, 392, 395, 471, 400, 403, 406, + 410, 398, 401, 404, 407, 411, 813, 398, 812, 472, + 399, 401, 404, 407, 411, 811, 810, 401, 404, 407, + 402, 405, 408, 412, 413, 416, 419, 809, 808, 414, + 417, 420, 498, 498, 498, 498, 422, 425, 414, 417, + 420, 423, 426, 807, 414, 417, 420, 415, 418, 421, + 423, 426, 806, 442, 805, 804, 423, 426, 443, 424, + 427, 257, 257, 257, 257, 257, 257, 443, 257, 257, + 257, 257, 257, 257, 453, 453, 444, 453, 453, 803, + 453, 453, 453, 453, 453, 453, 802, 453, 801, 310, + + 453, 453, 800, 799, 453, 313, 485, 453, 453, 798, + 797, 453, 453, 492, 796, 493, 795, 494, 499, 498, + 498, 498, 312, 453, 498, 498, 498, 498, 316, 321, + 495, 498, 498, 498, 498, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 313, 325, 501, + 328, 331, 323, 334, 337, 340, 343, 346, 349, 352, + 355, 358, 361, 364, 367, 370, 373, 383, 386, 390, + 316, 327, 393, 330, 333, 397, 336, 339, 342, 345, + 348, 351, 354, 357, 360, 363, 366, 369, 372, 375, + 385, 388, 392, 400, 403, 395, 406, 410, 399, 413, + + 416, 419, 422, 425, 551, 554, 442, 794, 608, 609, + 655, 658, 793, 792, 736, 737, 402, 405, 791, 408, + 412, 790, 415, 418, 421, 424, 427, 552, 555, 444, + 610, 789, 788, 656, 659, 738, 38, 38, 38, 180, + 180, 787, 786, 785, 784, 783, 782, 781, 780, 779, + 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, + 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, + 758, 757, 756, 755, 754, 753, 659, 752, 751, 656, + 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, + 740, 739, 735, 734, 733, 732, 731, 730, 729, 728, + + 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, + 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, + 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, + 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, + 687, 686, 685, 684, 683, 682, 681, 680, 677, 676, + 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, + 665, 664, 663, 662, 661, 660, 657, 555, 654, 552, + 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, + 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, + 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, + + 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, + 613, 612, 611, 607, 606, 605, 604, 603, 602, 601, + 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, + 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, + 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, + 570, 569, 568, 567, 564, 563, 562, 561, 560, 559, + 558, 557, 444, 556, 553, 550, 437, 549, 435, 548, + 433, 547, 431, 546, 545, 427, 544, 424, 543, 421, + 542, 418, 541, 415, 540, 412, 539, 538, 408, 537, + 405, 536, 402, 535, 399, 534, 533, 395, 532, 392, + + 531, 388, 530, 385, 529, 528, 527, 526, 525, 524, + 375, 523, 372, 522, 369, 521, 366, 520, 363, 519, + 360, 518, 357, 517, 354, 516, 351, 515, 348, 514, + 345, 513, 342, 512, 339, 511, 336, 510, 333, 509, + 330, 508, 327, 507, 323, 506, 505, 504, 503, 502, + 316, 500, 312, 497, 496, 491, 490, 489, 488, 487, + 486, 484, 481, 480, 479, 478, 477, 476, 475, 474, + 473, 470, 469, 466, 465, 464, 463, 462, 461, 460, + 459, 458, 457, 454, 289, 261, 452, 451, 450, 449, + 448, 447, 446, 445, 429, 428, 409, 396, 389, 378, + + 377, 376, 324, 320, 319, 318, 317, 302, 301, 300, + 297, 296, 295, 294, 293, 284, 281, 280, 279, 278, + 277, 276, 275, 274, 273, 271, 270, 269, 268, 267, + 264, 263, 262, 260, 259, 172, 254, 253, 252, 251, + 250, 249, 248, 247, 246, 245, 237, 236, 235, 234, + 231, 230, 227, 226, 225, 224, 223, 222, 221, 220, + 217, 216, 215, 214, 213, 212, 209, 208, 207, 206, + 205, 204, 203, 200, 199, 193, 192, 191, 190, 187, + 186, 185, 156, 155, 149, 148, 39, 127, 126, 125, + 124, 123, 122, 121, 118, 87, 39, 37, 849, 3, + + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849 } ; -static yyconst flex_int16_t yy_chk[1352] = +static yyconst flex_int16_t yy_chk[1368] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -859,7 +865,7 @@ static yyconst flex_int16_t yy_chk[1352] = 1, 1, 1, 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, 23, 5, - 10, 27, 46, 23, 17, 46, 809, 10, 10, 10, + 10, 27, 46, 23, 17, 46, 808, 10, 10, 10, 10, 10, 10, 10, 16, 17, 16, 29, 17, 27, 18, 116, 16, 11, 11, 11, 11, 11, 11, 11, @@ -871,136 +877,137 @@ static yyconst flex_int16_t yy_chk[1352] = 13, 13, 13, 13, 13, 99, 61, 99, 13, 13, 14, 14, 14, 14, 14, 14, 14, 15, 47, 15, 14, 14, 47, 12, 49, 22, 15, 49, 24, 21, - 273, 21, 15, 22, 15, 13, 21, 24, 22, 21, - 25, 24, 25, 25, 22, 273, 811, 14, 45, 45, + 274, 21, 15, 22, 15, 13, 21, 24, 22, 21, + 25, 24, 25, 25, 22, 274, 810, 14, 45, 45, 92, 44, 44, 54, 45, 25, 26, 44, 26, 26, 26, 26, 26, 44, 26, 45, 26, 54, 44, 92, - 44, 813, 26, 26, 54, 26, 41, 43, 43, 43, - 43, 43, 43, 50, 50, 57, 816, 43, 60, 50, - 60, 59, 59, 60, 60, 817, 57, 59, 75, 57, - 50, 60, 57, 140, 75, 59, 821, 84, 59, 63, - 63, 63, 63, 43, 239, 140, 41, 41, 41, 41, + 44, 811, 26, 26, 54, 26, 41, 43, 43, 43, + 43, 43, 43, 50, 50, 57, 812, 43, 60, 50, + 60, 59, 59, 60, 60, 813, 57, 59, 75, 57, + 50, 60, 57, 140, 75, 59, 816, 84, 59, 63, + 63, 63, 63, 43, 817, 140, 41, 41, 41, 41, 41, 41, 62, 41, 41, 84, 159, 41, 41, 41, - 41, 41, 41, 41, 41, 41, 159, 239, 41, 823, + 41, 41, 41, 41, 41, 41, 159, 118, 41, 118, 62, 62, 62, 62, 64, 64, 64, 64, 65, 65, - 65, 65, 66, 66, 66, 66, 66, 66, 108, 825, + 65, 65, 66, 66, 66, 66, 66, 66, 108, 818, 81, 81, 66, 67, 67, 67, 67, 67, 67, 67, 81, 111, 108, 68, 67, 68, 68, 68, 68, 68, 68, 117, 128, 117, 130, 111, 157, 160, 66, 128, - 133, 133, 157, 160, 117, 831, 133, 240, 130, 132, + 133, 133, 157, 160, 117, 823, 133, 239, 130, 132, 67, 132, 132, 132, 132, 132, 132, 133, 136, 136, 136, 146, 146, 169, 136, 147, 147, 146, 161, 161, - 240, 147, 219, 169, 161, 136, 218, 287, 146, 241, - 287, 161, 147, 162, 162, 161, 163, 163, 218, 162, - 219, 832, 163, 173, 173, 173, 173, 837, 573, 805, + 239, 147, 219, 169, 161, 136, 218, 825, 146, 240, + 244, 161, 147, 162, 162, 161, 163, 163, 218, 162, + 219, 827, 163, 173, 173, 173, 173, 830, 244, 831, - 162, 573, 241, 163, 174, 174, 174, 174, 175, 175, + 162, 835, 240, 163, 174, 174, 174, 174, 175, 175, 175, 175, 176, 176, 176, 176, 177, 177, 177, 177, 178, 178, 178, 178, 179, 179, 179, 179, 181, 181, - 181, 181, 181, 181, 828, 828, 242, 182, 181, 182, + 181, 181, 181, 181, 837, 839, 241, 182, 181, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, - 183, 184, 184, 184, 184, 184, 184, 185, 186, 242, - 192, 194, 185, 186, 181, 192, 194, 243, 195, 804, - 449, 185, 186, 195, 192, 194, 803, 185, 186, 243, - 185, 186, 195, 192, 194, 196, 449, 197, 199, 198, - 196, 195, 197, 199, 198, 302, 302, 302, 302, 196, + 183, 184, 184, 184, 184, 184, 184, 185, 186, 241, + 192, 194, 185, 186, 181, 192, 194, 243, 195, 845, + 452, 185, 186, 195, 192, 194, 846, 185, 186, 243, + 185, 186, 195, 192, 194, 196, 452, 197, 199, 198, + 196, 195, 197, 199, 198, 288, 842, 842, 288, 196, - 800, 197, 199, 198, 799, 196, 798, 197, 196, 198, + 242, 197, 199, 198, 851, 196, 807, 197, 196, 198, 197, 199, 198, 201, 203, 204, 206, 207, 201, 203, - 204, 206, 207, 303, 303, 303, 303, 201, 203, 204, - 206, 207, 259, 797, 203, 204, 201, 203, 204, 206, - 207, 209, 210, 211, 795, 259, 209, 210, 211, 304, - 304, 304, 304, 212, 213, 209, 210, 211, 212, 213, - 794, 209, 210, 211, 209, 210, 211, 212, 213, 793, - 214, 791, 790, 212, 213, 214, 212, 213, 220, 786, - 221, 223, 224, 220, 214, 221, 223, 224, 785, 784, - 214, 783, 220, 214, 221, 223, 224, 226, 781, 779, - - 776, 220, 226, 221, 223, 224, 276, 227, 228, 229, - 231, 226, 227, 228, 229, 231, 775, 226, 773, 276, - 226, 227, 228, 229, 231, 772, 771, 227, 228, 229, - 227, 228, 229, 231, 232, 233, 234, 770, 769, 232, - 233, 234, 305, 305, 305, 305, 235, 236, 232, 233, - 234, 235, 236, 768, 232, 233, 234, 232, 233, 234, - 235, 236, 765, 244, 764, 762, 235, 236, 244, 235, - 236, 255, 255, 255, 255, 255, 255, 244, 256, 256, - 256, 256, 256, 256, 257, 257, 244, 271, 271, 761, - 257, 289, 289, 271, 290, 290, 760, 289, 759, 310, - - 290, 257, 758, 757, 271, 755, 291, 291, 289, 754, - 753, 290, 291, 299, 313, 299, 321, 299, 306, 306, - 306, 306, 310, 291, 307, 307, 307, 307, 307, 307, - 299, 308, 308, 308, 308, 308, 308, 313, 314, 321, - 314, 325, 328, 331, 334, 337, 340, 343, 346, 349, - 352, 355, 358, 361, 364, 367, 370, 373, 383, 386, - 390, 314, 393, 397, 325, 328, 331, 334, 337, 340, - 343, 346, 349, 352, 355, 358, 361, 364, 367, 370, - 373, 383, 386, 390, 400, 393, 397, 403, 406, 410, - 413, 416, 419, 422, 425, 437, 440, 751, 501, 501, - - 550, 636, 636, 749, 748, 745, 742, 400, 741, 729, - 403, 406, 410, 413, 416, 419, 422, 425, 437, 440, - 501, 728, 636, 550, 836, 836, 836, 838, 838, 727, - 698, 691, 690, 687, 686, 685, 684, 683, 682, 681, - 680, 679, 678, 676, 673, 672, 671, 670, 669, 668, - 667, 666, 665, 664, 663, 661, 660, 659, 658, 656, + 204, 206, 207, 242, 806, 804, 803, 201, 203, 204, + 206, 207, 260, 799, 203, 204, 201, 203, 204, 206, + 207, 209, 210, 211, 798, 260, 209, 210, 211, 303, + 303, 303, 303, 212, 213, 209, 210, 211, 212, 213, + 797, 209, 210, 211, 209, 210, 211, 212, 213, 579, + 214, 796, 579, 212, 213, 214, 212, 213, 220, 794, + 221, 223, 224, 220, 214, 221, 223, 224, 792, 790, + 214, 787, 220, 214, 221, 223, 224, 226, 786, 784, + + 783, 220, 226, 221, 223, 224, 277, 227, 228, 229, + 231, 226, 227, 228, 229, 231, 782, 226, 781, 277, + 226, 227, 228, 229, 231, 780, 779, 227, 228, 229, + 227, 228, 229, 231, 232, 233, 234, 776, 775, 232, + 233, 234, 304, 304, 304, 304, 235, 236, 232, 233, + 234, 235, 236, 773, 232, 233, 234, 232, 233, 234, + 235, 236, 772, 245, 771, 770, 235, 236, 245, 235, + 236, 256, 256, 256, 256, 256, 256, 245, 257, 257, + 257, 257, 257, 257, 258, 258, 245, 272, 272, 769, + 258, 290, 290, 272, 291, 291, 768, 290, 766, 311, + + 291, 258, 765, 764, 272, 314, 292, 292, 290, 762, + 760, 291, 292, 300, 759, 300, 756, 300, 305, 305, + 305, 305, 311, 292, 306, 306, 306, 306, 314, 322, + 300, 307, 307, 307, 307, 308, 308, 308, 308, 308, + 308, 309, 309, 309, 309, 309, 309, 315, 326, 315, + 329, 332, 322, 335, 338, 341, 344, 347, 350, 353, + 356, 359, 362, 365, 368, 371, 374, 384, 387, 391, + 315, 326, 394, 329, 332, 398, 335, 338, 341, 344, + 347, 350, 353, 356, 359, 362, 365, 368, 371, 374, + 384, 387, 391, 401, 404, 394, 407, 411, 398, 414, + + 417, 420, 423, 426, 438, 440, 443, 753, 504, 504, + 553, 556, 752, 751, 642, 642, 401, 404, 750, 407, + 411, 738, 414, 417, 420, 423, 426, 438, 440, 443, + 504, 737, 736, 553, 556, 642, 850, 850, 850, 852, + 852, 707, 700, 699, 696, 695, 694, 693, 692, 691, + 690, 689, 688, 687, 685, 682, 681, 680, 679, 678, + 677, 676, 675, 674, 673, 672, 670, 669, 668, 667, + 665, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, - 644, 643, 642, 641, 640, 639, 638, 637, 635, 634, - 633, 632, 631, 630, 629, 628, 627, 624, 623, 622, - 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + 644, 643, 641, 640, 639, 638, 637, 636, 635, 634, - 611, 610, 609, 608, 607, 606, 604, 603, 602, 601, - 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, - 590, 589, 587, 586, 585, 584, 583, 581, 580, 579, - 578, 577, 576, 575, 572, 571, 569, 568, 567, 566, - 563, 562, 561, 560, 559, 558, 557, 555, 554, 553, - 552, 551, 549, 548, 547, 546, 545, 544, 543, 542, - 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, - 531, 530, 529, 528, 527, 523, 522, 521, 520, 519, - 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, - 508, 507, 506, 505, 504, 503, 502, 499, 498, 497, - - 494, 493, 492, 491, 490, 489, 487, 485, 484, 483, - 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, - 471, 470, 469, 468, 467, 466, 465, 464, 462, 461, - 460, 459, 458, 457, 456, 453, 452, 451, 448, 447, - 446, 445, 444, 443, 442, 441, 439, 438, 436, 435, - 434, 433, 432, 431, 430, 429, 427, 426, 424, 423, - 421, 420, 418, 417, 415, 414, 412, 411, 409, 408, - 407, 405, 404, 402, 401, 399, 398, 396, 395, 394, - 392, 391, 389, 387, 385, 384, 382, 381, 379, 377, - 376, 375, 374, 372, 371, 369, 368, 366, 365, 363, - - 362, 360, 359, 357, 356, 354, 353, 351, 350, 348, - 347, 345, 344, 342, 341, 339, 338, 336, 335, 333, - 332, 330, 329, 327, 326, 324, 322, 320, 319, 318, - 317, 316, 315, 312, 311, 309, 301, 300, 298, 297, - 296, 295, 294, 293, 288, 286, 285, 284, 283, 282, - 281, 280, 279, 277, 275, 274, 272, 270, 269, 266, - 265, 264, 263, 262, 261, 260, 258, 254, 253, 252, - 251, 250, 249, 248, 247, 246, 245, 238, 237, 230, - 225, 222, 217, 216, 215, 193, 191, 190, 189, 187, - 172, 171, 170, 168, 167, 166, 165, 164, 158, 156, - - 155, 154, 153, 152, 151, 150, 149, 148, 145, 144, - 143, 142, 141, 139, 138, 137, 135, 134, 131, 129, - 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, - 115, 114, 113, 112, 110, 109, 107, 106, 105, 104, - 103, 102, 101, 100, 98, 97, 96, 95, 94, 93, - 91, 90, 89, 88, 87, 86, 85, 83, 82, 79, - 78, 77, 76, 74, 73, 72, 56, 55, 52, 51, - 38, 37, 35, 34, 33, 32, 31, 30, 28, 20, - 8, 7, 3, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, - 835 + 633, 630, 629, 628, 627, 626, 625, 624, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, + 600, 599, 598, 597, 596, 595, 593, 592, 591, 590, + 589, 587, 586, 585, 584, 583, 582, 581, 578, 577, + 575, 574, 573, 572, 569, 568, 567, 566, 565, 564, + 563, 561, 560, 559, 558, 557, 555, 554, 552, 551, + 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, + 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, + 530, 526, 525, 524, 523, 522, 521, 520, 519, 518, + + 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, + 507, 506, 505, 502, 501, 500, 497, 496, 495, 494, + 493, 492, 490, 488, 487, 486, 484, 483, 482, 481, + 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, + 470, 469, 468, 467, 465, 464, 463, 462, 461, 460, + 459, 456, 455, 454, 451, 450, 449, 448, 447, 446, + 445, 444, 442, 441, 439, 437, 436, 435, 434, 433, + 432, 431, 430, 428, 427, 425, 424, 422, 421, 419, + 418, 416, 415, 413, 412, 410, 409, 408, 406, 405, + 403, 402, 400, 399, 397, 396, 395, 393, 392, 390, + + 388, 386, 385, 383, 382, 380, 378, 377, 376, 375, + 373, 372, 370, 369, 367, 366, 364, 363, 361, 360, + 358, 357, 355, 354, 352, 351, 349, 348, 346, 345, + 343, 342, 340, 339, 337, 336, 334, 333, 331, 330, + 328, 327, 325, 323, 321, 320, 319, 318, 317, 316, + 313, 312, 310, 302, 301, 299, 298, 297, 296, 295, + 294, 289, 287, 286, 285, 284, 283, 282, 281, 280, + 278, 276, 275, 273, 271, 270, 267, 266, 265, 264, + 263, 262, 261, 259, 255, 254, 253, 252, 251, 250, + 249, 248, 247, 246, 238, 237, 230, 225, 222, 217, + + 216, 215, 193, 191, 190, 189, 187, 172, 171, 170, + 168, 167, 166, 165, 164, 158, 156, 155, 154, 153, + 152, 151, 150, 149, 148, 145, 144, 143, 142, 141, + 139, 138, 137, 135, 134, 131, 129, 127, 126, 125, + 124, 123, 122, 121, 120, 119, 115, 114, 113, 112, + 110, 109, 107, 106, 105, 104, 103, 102, 101, 100, + 98, 97, 96, 95, 94, 93, 91, 90, 89, 88, + 87, 86, 85, 83, 82, 79, 78, 77, 76, 74, + 73, 72, 56, 55, 52, 51, 38, 37, 35, 34, + 33, 32, 31, 30, 28, 20, 8, 7, 3, 849, + + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 849, 849, 849, 849, 849, 849, 849 } ; /* The intent behind this definition is that it'll catch @@ -1153,7 +1160,7 @@ handle_ident(struct asm_parser_state *state, const char *text, YYSTYPE *lval) } while(0); #define YY_EXTRA_TYPE struct asm_parser_state * -#line 1157 "lex.yy.c" +#line 1164 "lex.yy.c" #define INITIAL 0 @@ -1402,7 +1409,7 @@ YY_DECL #line 156 "program_lexer.l" -#line 1406 "lex.yy.c" +#line 1413 "lex.yy.c" yylval = yylval_param; @@ -1459,13 +1466,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 >= 836 ) + if ( yy_current_state >= 850 ) 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_base[yy_current_state] != 1284 ); + while ( yy_base[yy_current_state] != 1300 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1799,445 +1806,455 @@ YY_RULE_SETUP YY_BREAK case 62: YY_RULE_SETUP -#line 236 "program_lexer.l" -{ return_opcode(require_NV_fp, TRI_OP, X2D, 3); } +#line 235 "program_lexer.l" +{ return_opcode(require_NV_fp, SCALAR_OP, UP4B, 4); } YY_BREAK case 63: YY_RULE_SETUP -#line 237 "program_lexer.l" -{ return_opcode( 1, BIN_OP, XPD, 3); } +#line 236 "program_lexer.l" +{ return_opcode(require_NV_fp, SCALAR_OP, UP4UB, 5); } YY_BREAK case 64: YY_RULE_SETUP -#line 239 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } +#line 238 "program_lexer.l" +{ return_opcode(require_NV_fp, TRI_OP, X2D, 3); } YY_BREAK case 65: YY_RULE_SETUP -#line 240 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } +#line 239 "program_lexer.l" +{ return_opcode( 1, BIN_OP, XPD, 3); } YY_BREAK case 66: YY_RULE_SETUP #line 241 "program_lexer.l" -{ return PROGRAM; } +{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); } YY_BREAK case 67: YY_RULE_SETUP #line 242 "program_lexer.l" -{ return STATE; } +{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); } YY_BREAK case 68: YY_RULE_SETUP #line 243 "program_lexer.l" -{ return RESULT; } +{ return PROGRAM; } YY_BREAK case 69: YY_RULE_SETUP -#line 245 "program_lexer.l" -{ return AMBIENT; } +#line 244 "program_lexer.l" +{ return STATE; } YY_BREAK case 70: YY_RULE_SETUP -#line 246 "program_lexer.l" -{ return ATTENUATION; } +#line 245 "program_lexer.l" +{ return RESULT; } YY_BREAK case 71: YY_RULE_SETUP #line 247 "program_lexer.l" -{ return BACK; } +{ return AMBIENT; } YY_BREAK case 72: YY_RULE_SETUP #line 248 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, CLIP); } +{ return ATTENUATION; } YY_BREAK case 73: YY_RULE_SETUP #line 249 "program_lexer.l" -{ return COLOR; } +{ return BACK; } YY_BREAK case 74: YY_RULE_SETUP #line 250 "program_lexer.l" -{ return_token_or_DOT(require_ARB_fp, DEPTH); } +{ return_token_or_DOT(require_ARB_vp, CLIP); } YY_BREAK case 75: YY_RULE_SETUP #line 251 "program_lexer.l" -{ return DIFFUSE; } +{ return COLOR; } YY_BREAK case 76: YY_RULE_SETUP #line 252 "program_lexer.l" -{ return DIRECTION; } +{ return_token_or_DOT(require_ARB_fp, DEPTH); } YY_BREAK case 77: YY_RULE_SETUP #line 253 "program_lexer.l" -{ return EMISSION; } +{ return DIFFUSE; } YY_BREAK case 78: YY_RULE_SETUP #line 254 "program_lexer.l" -{ return ENV; } +{ return DIRECTION; } YY_BREAK case 79: YY_RULE_SETUP #line 255 "program_lexer.l" -{ return EYE; } +{ return EMISSION; } YY_BREAK case 80: YY_RULE_SETUP #line 256 "program_lexer.l" -{ return FOGCOORD; } +{ return ENV; } YY_BREAK case 81: YY_RULE_SETUP #line 257 "program_lexer.l" -{ return FOG; } +{ return EYE; } YY_BREAK case 82: YY_RULE_SETUP #line 258 "program_lexer.l" -{ return FRONT; } +{ return FOGCOORD; } YY_BREAK case 83: YY_RULE_SETUP #line 259 "program_lexer.l" -{ return HALF; } +{ return FOG; } YY_BREAK case 84: YY_RULE_SETUP #line 260 "program_lexer.l" -{ return INVERSE; } +{ return FRONT; } YY_BREAK case 85: YY_RULE_SETUP #line 261 "program_lexer.l" -{ return INVTRANS; } +{ return HALF; } YY_BREAK case 86: YY_RULE_SETUP #line 262 "program_lexer.l" -{ return LIGHT; } +{ return INVERSE; } YY_BREAK case 87: YY_RULE_SETUP #line 263 "program_lexer.l" -{ return LIGHTMODEL; } +{ return INVTRANS; } YY_BREAK case 88: YY_RULE_SETUP #line 264 "program_lexer.l" -{ return LIGHTPROD; } +{ return LIGHT; } YY_BREAK case 89: YY_RULE_SETUP #line 265 "program_lexer.l" -{ return LOCAL; } +{ return LIGHTMODEL; } YY_BREAK case 90: YY_RULE_SETUP #line 266 "program_lexer.l" -{ return MATERIAL; } +{ return LIGHTPROD; } YY_BREAK case 91: YY_RULE_SETUP #line 267 "program_lexer.l" -{ return MAT_PROGRAM; } +{ return LOCAL; } YY_BREAK case 92: YY_RULE_SETUP #line 268 "program_lexer.l" -{ return MATRIX; } +{ return MATERIAL; } YY_BREAK case 93: YY_RULE_SETUP #line 269 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); } +{ return MAT_PROGRAM; } YY_BREAK case 94: YY_RULE_SETUP #line 270 "program_lexer.l" -{ return MODELVIEW; } +{ return MATRIX; } YY_BREAK case 95: YY_RULE_SETUP #line 271 "program_lexer.l" -{ return MVP; } +{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); } YY_BREAK case 96: YY_RULE_SETUP #line 272 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, NORMAL); } +{ return MODELVIEW; } YY_BREAK case 97: YY_RULE_SETUP #line 273 "program_lexer.l" -{ return OBJECT; } +{ return MVP; } YY_BREAK case 98: YY_RULE_SETUP #line 274 "program_lexer.l" -{ return PALETTE; } +{ return_token_or_DOT(require_ARB_vp, NORMAL); } YY_BREAK case 99: YY_RULE_SETUP #line 275 "program_lexer.l" -{ return PARAMS; } +{ return OBJECT; } YY_BREAK case 100: YY_RULE_SETUP #line 276 "program_lexer.l" -{ return PLANE; } +{ return PALETTE; } YY_BREAK case 101: YY_RULE_SETUP #line 277 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, POINT_TOK); } +{ return PARAMS; } YY_BREAK case 102: YY_RULE_SETUP #line 278 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, POINTSIZE); } +{ return PLANE; } YY_BREAK case 103: YY_RULE_SETUP #line 279 "program_lexer.l" -{ return POSITION; } +{ return_token_or_DOT(require_ARB_vp, POINT_TOK); } YY_BREAK case 104: YY_RULE_SETUP #line 280 "program_lexer.l" -{ return PRIMARY; } +{ return_token_or_DOT(require_ARB_vp, POINTSIZE); } YY_BREAK case 105: YY_RULE_SETUP #line 281 "program_lexer.l" -{ return PROJECTION; } +{ return POSITION; } YY_BREAK case 106: YY_RULE_SETUP #line 282 "program_lexer.l" -{ return_token_or_DOT(require_ARB_fp, RANGE); } +{ return PRIMARY; } YY_BREAK case 107: YY_RULE_SETUP #line 283 "program_lexer.l" -{ return ROW; } +{ return PROJECTION; } YY_BREAK case 108: YY_RULE_SETUP #line 284 "program_lexer.l" -{ return SCENECOLOR; } +{ return_token_or_DOT(require_ARB_fp, RANGE); } YY_BREAK case 109: YY_RULE_SETUP #line 285 "program_lexer.l" -{ return SECONDARY; } +{ return ROW; } YY_BREAK case 110: YY_RULE_SETUP #line 286 "program_lexer.l" -{ return SHININESS; } +{ return SCENECOLOR; } YY_BREAK case 111: YY_RULE_SETUP #line 287 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, SIZE_TOK); } +{ return SECONDARY; } YY_BREAK case 112: YY_RULE_SETUP #line 288 "program_lexer.l" -{ return SPECULAR; } +{ return SHININESS; } YY_BREAK case 113: YY_RULE_SETUP #line 289 "program_lexer.l" -{ return SPOT; } +{ return_token_or_DOT(require_ARB_vp, SIZE_TOK); } YY_BREAK case 114: YY_RULE_SETUP #line 290 "program_lexer.l" -{ return TEXCOORD; } +{ return SPECULAR; } YY_BREAK case 115: YY_RULE_SETUP #line 291 "program_lexer.l" -{ return_token_or_DOT(require_ARB_fp, TEXENV); } +{ return SPOT; } YY_BREAK case 116: YY_RULE_SETUP #line 292 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, TEXGEN); } +{ return TEXCOORD; } YY_BREAK case 117: YY_RULE_SETUP #line 293 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); } +{ return_token_or_DOT(require_ARB_fp, TEXENV); } YY_BREAK case 118: YY_RULE_SETUP #line 294 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); } +{ return_token_or_DOT(require_ARB_vp, TEXGEN); } YY_BREAK case 119: YY_RULE_SETUP #line 295 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); } +{ return_token_or_DOT(require_ARB_vp, TEXGEN_Q); } YY_BREAK case 120: YY_RULE_SETUP #line 296 "program_lexer.l" -{ return TEXTURE; } +{ return_token_or_DOT(require_ARB_vp, TEXGEN_S); } YY_BREAK case 121: YY_RULE_SETUP #line 297 "program_lexer.l" -{ return TRANSPOSE; } +{ return_token_or_DOT(require_ARB_vp, TEXGEN_T); } YY_BREAK case 122: YY_RULE_SETUP #line 298 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); } +{ return TEXTURE; } YY_BREAK case 123: YY_RULE_SETUP #line 299 "program_lexer.l" -{ return_token_or_DOT(require_ARB_vp, WEIGHT); } +{ return TRANSPOSE; } YY_BREAK case 124: YY_RULE_SETUP -#line 301 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); } +#line 300 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, VTXATTRIB); } YY_BREAK case 125: YY_RULE_SETUP -#line 302 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); } +#line 301 "program_lexer.l" +{ return_token_or_DOT(require_ARB_vp, WEIGHT); } YY_BREAK case 126: YY_RULE_SETUP #line 303 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); } +{ return_token_or_IDENTIFIER(require_ARB_fp, TEXTURE_UNIT); } YY_BREAK case 127: YY_RULE_SETUP #line 304 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); } +{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_1D); } YY_BREAK case 128: YY_RULE_SETUP #line 305 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); } +{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_2D); } YY_BREAK case 129: YY_RULE_SETUP #line 306 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); } +{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_3D); } YY_BREAK case 130: YY_RULE_SETUP #line 307 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); } +{ return_token_or_IDENTIFIER(require_ARB_fp, TEX_CUBE); } YY_BREAK case 131: YY_RULE_SETUP #line 308 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); } +{ return_token_or_IDENTIFIER(require_ARB_fp && require_rect, TEX_RECT); } YY_BREAK case 132: YY_RULE_SETUP #line 309 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); } +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW1D); } YY_BREAK case 133: YY_RULE_SETUP #line 310 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); } +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow, TEX_SHADOW2D); } YY_BREAK case 134: YY_RULE_SETUP #line 311 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); } +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_rect, TEX_SHADOWRECT); } YY_BREAK case 135: YY_RULE_SETUP #line 312 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); } +{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY1D); } YY_BREAK case 136: YY_RULE_SETUP #line 313 "program_lexer.l" -{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); } +{ return_token_or_IDENTIFIER(require_ARB_fp && require_texarray, TEX_ARRAY2D); } YY_BREAK case 137: YY_RULE_SETUP -#line 315 "program_lexer.l" -{ return handle_ident(yyextra, yytext, yylval); } +#line 314 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW1D); } YY_BREAK case 138: YY_RULE_SETUP -#line 317 "program_lexer.l" -{ return DOT_DOT; } +#line 315 "program_lexer.l" +{ return_token_or_IDENTIFIER(require_ARB_fp && require_shadow && require_texarray, TEX_ARRAYSHADOW2D); } YY_BREAK case 139: YY_RULE_SETUP +#line 317 "program_lexer.l" +{ return handle_ident(yyextra, yytext, yylval); } + YY_BREAK +case 140: +YY_RULE_SETUP #line 319 "program_lexer.l" +{ return DOT_DOT; } + YY_BREAK +case 141: +YY_RULE_SETUP +#line 321 "program_lexer.l" { yylval->integer = strtol(yytext, NULL, 10); return INTEGER; } YY_BREAK -case 140: +case 142: YY_RULE_SETUP -#line 323 "program_lexer.l" +#line 325 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 141: -/* rule 141 can match eol */ +case 143: +/* rule 143 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 327 "program_lexer.l" +#line 329 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 142: +case 144: YY_RULE_SETUP -#line 331 "program_lexer.l" +#line 333 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 143: +case 145: YY_RULE_SETUP -#line 335 "program_lexer.l" +#line 337 "program_lexer.l" { yylval->real = strtod(yytext, NULL); return REAL; } YY_BREAK -case 144: +case 146: YY_RULE_SETUP -#line 340 "program_lexer.l" +#line 342 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; return MASK4; } YY_BREAK -case 145: +case 147: YY_RULE_SETUP -#line 346 "program_lexer.l" +#line 348 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2245,27 +2262,27 @@ YY_RULE_SETUP return MASK3; } YY_BREAK -case 146: +case 148: YY_RULE_SETUP -#line 352 "program_lexer.l" +#line 354 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; return MASK3; } YY_BREAK -case 147: +case 149: YY_RULE_SETUP -#line 357 "program_lexer.l" +#line 359 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; return MASK3; } YY_BREAK -case 148: +case 150: YY_RULE_SETUP -#line 363 "program_lexer.l" +#line 365 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2273,9 +2290,9 @@ YY_RULE_SETUP return MASK2; } YY_BREAK -case 149: +case 151: YY_RULE_SETUP -#line 369 "program_lexer.l" +#line 371 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2283,18 +2300,18 @@ YY_RULE_SETUP return MASK2; } YY_BREAK -case 150: +case 152: YY_RULE_SETUP -#line 375 "program_lexer.l" +#line 377 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; return MASK2; } YY_BREAK -case 151: +case 153: YY_RULE_SETUP -#line 381 "program_lexer.l" +#line 383 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2302,9 +2319,9 @@ YY_RULE_SETUP return MASK1; } YY_BREAK -case 152: +case 154: YY_RULE_SETUP -#line 388 "program_lexer.l" +#line 390 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2314,18 +2331,18 @@ YY_RULE_SETUP return SWIZZLE; } YY_BREAK -case 153: +case 155: YY_RULE_SETUP -#line 397 "program_lexer.l" +#line 399 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_NOOP; yylval->swiz_mask.mask = WRITEMASK_XYZW; return_token_or_DOT(require_ARB_fp, MASK4); } YY_BREAK -case 154: +case 156: YY_RULE_SETUP -#line 403 "program_lexer.l" +#line 405 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XY @@ -2333,27 +2350,27 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 155: +case 157: YY_RULE_SETUP -#line 409 "program_lexer.l" +#line 411 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_XZW; return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 156: +case 158: YY_RULE_SETUP -#line 414 "program_lexer.l" +#line 416 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_YZW; return_token_or_DOT(require_ARB_fp, MASK3); } YY_BREAK -case 157: +case 159: YY_RULE_SETUP -#line 420 "program_lexer.l" +#line 422 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_X @@ -2361,9 +2378,9 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 158: +case 160: YY_RULE_SETUP -#line 426 "program_lexer.l" +#line 428 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_Y @@ -2371,18 +2388,18 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 159: +case 161: YY_RULE_SETUP -#line 432 "program_lexer.l" +#line 434 "program_lexer.l" { yylval->swiz_mask.swizzle = SWIZZLE_INVAL; yylval->swiz_mask.mask = WRITEMASK_ZW; return_token_or_DOT(require_ARB_fp, MASK2); } YY_BREAK -case 160: +case 162: YY_RULE_SETUP -#line 438 "program_lexer.l" +#line 440 "program_lexer.l" { const unsigned s = swiz_from_char(yytext[1]); yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(s, s, s, s); @@ -2390,9 +2407,9 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, MASK1); } YY_BREAK -case 161: +case 163: YY_RULE_SETUP -#line 446 "program_lexer.l" +#line 448 "program_lexer.l" { if (require_ARB_vp) { return TEXGEN_R; @@ -2404,9 +2421,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 164: YY_RULE_SETUP -#line 457 "program_lexer.l" +#line 459 "program_lexer.l" { yylval->swiz_mask.swizzle = MAKE_SWIZZLE4(swiz_from_char(yytext[1]), swiz_from_char(yytext[2]), @@ -2416,15 +2433,15 @@ YY_RULE_SETUP return_token_or_DOT(require_ARB_fp, SWIZZLE); } YY_BREAK -case 163: +case 165: YY_RULE_SETUP -#line 466 "program_lexer.l" +#line 468 "program_lexer.l" { return DOT; } YY_BREAK -case 164: -/* rule 164 can match eol */ +case 166: +/* rule 166 can match eol */ YY_RULE_SETUP -#line 468 "program_lexer.l" +#line 470 "program_lexer.l" { yylloc->first_line++; yylloc->first_column = 1; @@ -2433,30 +2450,30 @@ YY_RULE_SETUP yylloc->position++; } YY_BREAK -case 165: +case 167: YY_RULE_SETUP -#line 475 "program_lexer.l" +#line 477 "program_lexer.l" /* eat whitespace */ ; YY_BREAK -case 166: +case 168: *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 476 "program_lexer.l" +#line 478 "program_lexer.l" /* eat comments */ ; YY_BREAK -case 167: +case 169: YY_RULE_SETUP -#line 477 "program_lexer.l" +#line 479 "program_lexer.l" { return yytext[0]; } YY_BREAK -case 168: +case 170: YY_RULE_SETUP -#line 478 "program_lexer.l" +#line 480 "program_lexer.l" ECHO; YY_BREAK -#line 2460 "lex.yy.c" +#line 2477 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2750,7 +2767,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 >= 836 ) + if ( yy_current_state >= 850 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2779,11 +2796,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 >= 836 ) + if ( yy_current_state >= 850 ) 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 == 835); + yy_is_jam = (yy_current_state == 849); return yy_is_jam ? 0 : yy_current_state; } @@ -3631,7 +3648,7 @@ void yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 478 "program_lexer.l" +#line 480 "program_lexer.l" diff --git a/src/mesa/shader/program_lexer.l b/src/mesa/shader/program_lexer.l index 750c6acf42..8498c3d8fc 100644 --- a/src/mesa/shader/program_lexer.l +++ b/src/mesa/shader/program_lexer.l @@ -232,6 +232,8 @@ TXP{cc}{sat} { return_opcode(require_ARB_fp, SAMPLE_OP, TXP, 3); } UP2H{cc}{sat} { return_opcode(require_NV_fp, SCALAR_OP, UP2H, 4); } UP2US{cc}{sat} { return_opcode(require_NV_fp, SCALAR_OP, UP2US, 5); } +UP4B{cc}{sat} { return_opcode(require_NV_fp, SCALAR_OP, UP4B, 4); } +UP4UB{cc}{sat} { return_opcode(require_NV_fp, SCALAR_OP, UP4UB, 5); } X2D{szf}{cc}{sat} { return_opcode(require_NV_fp, TRI_OP, X2D, 3); } XPD{sat} { return_opcode( 1, BIN_OP, XPD, 3); } -- cgit v1.2.3