summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/shader/lex.yy.c1874
-rw-r--r--src/mesa/shader/program_lexer.l194
-rw-r--r--src/mesa/shader/program_parse.tab.c776
-rw-r--r--src/mesa/shader/program_parse.y50
-rw-r--r--src/mesa/shader/program_parse_extra.c61
-rw-r--r--src/mesa/shader/program_parser.h14
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, 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
+ 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
} ;
-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); }
- YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 213 "program_lexer.l"
-{ return_opcode(require_NV_fp, VECTOR_OP, PK4UB, ZERO_ONE); }
- YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 214 "program_lexer.l"
-{ return_opcode( 1, BINSC_OP, POW, OFF); }
- YY_BREAK
-case 66:
-YY_RULE_SETUP
-#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, SCALAR_OP, RCP, OFF); }
- YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 218 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, RCP, ZERO_ONE); }
- YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 219 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, RFL, OFF); }
- YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 220 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, RFL, ZERO_ONE); }
- YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 221 "program_lexer.l"
-{ return_opcode( 1, SCALAR_OP, RSQ, OFF); }
- YY_BREAK
-case 72:
-YY_RULE_SETUP
-#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, SCALAR_OP, SCS, OFF); }
- YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 225 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, SCS, ZERO_ONE); }
+{ return_opcode( 1, BIN_OP, XPD, 3); }
YY_BREAK
-case 75:
+case 64:
YY_RULE_SETUP
#line 226 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SEQ, OFF); }
- YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 227 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SEQ, ZERO_ONE); }
- YY_BREAK
-case 77:
-YY_RULE_SETUP
-#line 228 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SFL, OFF); }
- YY_BREAK
-case 78:
-YY_RULE_SETUP
-#line 229 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SFL, ZERO_ONE); }
- YY_BREAK
-case 79:
-YY_RULE_SETUP
-#line 230 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, SGE, OFF); }
- YY_BREAK
-case 80:
-YY_RULE_SETUP
-#line 231 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, SGE, ZERO_ONE); }
- YY_BREAK
-case 81:
-YY_RULE_SETUP
-#line 232 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SGT, OFF); }
- YY_BREAK
-case 82:
-YY_RULE_SETUP
-#line 233 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SGT, ZERO_ONE); }
- YY_BREAK
-case 83:
-YY_RULE_SETUP
-#line 234 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, OFF); }
- YY_BREAK
-case 84:
-YY_RULE_SETUP
-#line 235 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SCALAR_OP, SIN, ZERO_ONE); }
- YY_BREAK
-case 85:
-YY_RULE_SETUP
-#line 236 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SLE, OFF); }
- YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 237 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SLE, ZERO_ONE); }
- YY_BREAK
-case 87:
-YY_RULE_SETUP
-#line 238 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, SLT, OFF); }
- YY_BREAK
-case 88:
-YY_RULE_SETUP
-#line 239 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, SLT, ZERO_ONE); }
- YY_BREAK
-case 89:
-YY_RULE_SETUP
-#line 240 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SNE, OFF); }
- YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 241 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, SNE, ZERO_ONE); }
- YY_BREAK
-case 91:
-YY_RULE_SETUP
-#line 242 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, STR, OFF); }
- YY_BREAK
-case 92:
-YY_RULE_SETUP
-#line 243 "program_lexer.l"
-{ return_opcode(require_NV_fp, BIN_OP, STR, ZERO_ONE); }
- YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 244 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, SUB, OFF); }
- YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 245 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, SUB, ZERO_ONE); }
- YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 246 "program_lexer.l"
-{ return_opcode( 1, SWZ, SWZ, OFF); }
- YY_BREAK
-case 96:
-YY_RULE_SETUP
-#line 247 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SWZ, SWZ, ZERO_ONE); }
- YY_BREAK
-case 97:
-YY_RULE_SETUP
-#line 249 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, OFF); }
- YY_BREAK
-case 98:
-YY_RULE_SETUP
-#line 250 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TEX, ZERO_ONE); }
- YY_BREAK
-case 99:
-YY_RULE_SETUP
-#line 251 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, OFF); }
- YY_BREAK
-case 100:
-YY_RULE_SETUP
-#line 252 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TXB, ZERO_ONE); }
- YY_BREAK
-case 101:
-YY_RULE_SETUP
-#line 253 "program_lexer.l"
-{ return_opcode(require_NV_fp, TXD_OP, TXD, OFF); }
- YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 254 "program_lexer.l"
-{ return_opcode(require_NV_fp, TXD_OP, TXD, ZERO_ONE); }
- YY_BREAK
-case 103:
-YY_RULE_SETUP
-#line 255 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, OFF); }
- YY_BREAK
-case 104:
-YY_RULE_SETUP
-#line 256 "program_lexer.l"
-{ return_opcode(require_ARB_fp, SAMPLE_OP, TXP, ZERO_ONE); }
- YY_BREAK
-case 105:
-YY_RULE_SETUP
-#line 258 "program_lexer.l"
-{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, OFF); }
- YY_BREAK
-case 106:
-YY_RULE_SETUP
-#line 259 "program_lexer.l"
-{ return_opcode(require_NV_fp, SCALAR_OP, UP2H, ZERO_ONE); }
- YY_BREAK
-case 107:
-YY_RULE_SETUP
-#line 260 "program_lexer.l"
-{ return_opcode(require_NV_fp, SCALAR_OP, UP2US, OFF); }
- YY_BREAK
-case 108:
-YY_RULE_SETUP
-#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_opcode(require_NV_fp, TRI_OP, X2D, OFF); }
- YY_BREAK
-case 110:
-YY_RULE_SETUP
-#line 264 "program_lexer.l"
-{ return_opcode(require_NV_fp, TRI_OP, X2D, ZERO_ONE); }
- YY_BREAK
-case 111:
-YY_RULE_SETUP
-#line 265 "program_lexer.l"
-{ return_opcode( 1, BIN_OP, XPD, OFF); }
- YY_BREAK
-case 112:
-YY_RULE_SETUP
-#line 266 "program_lexer.l"
-{ return_opcode(require_ARB_fp, BIN_OP, XPD, ZERO_ONE); }
- YY_BREAK
-case 113:
-YY_RULE_SETUP
-#line 268 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_vp, VERTEX); }
YY_BREAK
-case 114:
+case 65:
YY_RULE_SETUP
-#line 269 "program_lexer.l"
+#line 227 "program_lexer.l"
{ return_token_or_IDENTIFIER(require_ARB_fp, FRAGMENT); }
YY_BREAK
-case 115:
+case 66:
YY_RULE_SETUP
-#line 270 "program_lexer.l"
+#line 228 "program_lexer.l"
{ return PROGRAM; }
YY_BREAK
-case 116:
+case 67:
YY_RULE_SETUP
-#line 271 "program_lexer.l"
+#line 229 "program_lexer.l"
{ return STATE; }
YY_BREAK
-case 117:
+case 68:
YY_RULE_SETUP
-#line 272 "program_lexer.l"
+#line 230 "program_lexer.l"
{ return RESULT; }
YY_BREAK
-case 118:
+case 69:
YY_RULE_SETUP
-#line 274 "program_lexer.l"
+#line 232 "program_lexer.l"
{ return AMBIENT; }
YY_BREAK
-case 119:
+case 70:
YY_RULE_SETUP
-#line 275 "program_lexer.l"
+#line 233 "program_lexer.l"
{ return ATTENUATION; }
YY_BREAK
-case 120:
+case 71:
YY_RULE_SETUP
-#line 276 "program_lexer.l"
+#line 234 "program_lexer.l"
{ return BACK; }
YY_BREAK
-case 121:
+case 72:
YY_RULE_SETUP
-#line 277 "program_lexer.l"
+#line 235 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, CLIP); }
YY_BREAK
-case 122:
+case 73:
YY_RULE_SETUP
-#line 278 "program_lexer.l"
+#line 236 "program_lexer.l"
{ return COLOR; }
YY_BREAK
-case 123:
+case 74:
YY_RULE_SETUP
-#line 279 "program_lexer.l"
+#line 237 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, DEPTH); }
YY_BREAK
-case 124:
+case 75:
YY_RULE_SETUP
-#line 280 "program_lexer.l"
+#line 238 "program_lexer.l"
{ return DIFFUSE; }
YY_BREAK
-case 125:
+case 76:
YY_RULE_SETUP
-#line 281 "program_lexer.l"
+#line 239 "program_lexer.l"
{ return DIRECTION; }
YY_BREAK
-case 126:
+case 77:
YY_RULE_SETUP
-#line 282 "program_lexer.l"
+#line 240 "program_lexer.l"
{ return EMISSION; }
YY_BREAK
-case 127:
+case 78:
YY_RULE_SETUP
-#line 283 "program_lexer.l"
+#line 241 "program_lexer.l"
{ return ENV; }
YY_BREAK
-case 128:
+case 79:
YY_RULE_SETUP
-#line 284 "program_lexer.l"
+#line 242 "program_lexer.l"
{ return EYE; }
YY_BREAK
-case 129:
+case 80:
YY_RULE_SETUP
-#line 285 "program_lexer.l"
+#line 243 "program_lexer.l"
{ return FOGCOORD; }
YY_BREAK
-case 130:
+case 81:
YY_RULE_SETUP
-#line 286 "program_lexer.l"
+#line 244 "program_lexer.l"
{ return FOG; }
YY_BREAK
-case 131:
+case 82:
YY_RULE_SETUP
-#line 287 "program_lexer.l"
+#line 245 "program_lexer.l"
{ return FRONT; }
YY_BREAK
-case 132:
+case 83:
YY_RULE_SETUP
-#line 288 "program_lexer.l"
+#line 246 "program_lexer.l"
{ return HALF; }
YY_BREAK
-case 133:
+case 84:
YY_RULE_SETUP
-#line 289 "program_lexer.l"
+#line 247 "program_lexer.l"
{ return INVERSE; }
YY_BREAK
-case 134:
+case 85:
YY_RULE_SETUP
-#line 290 "program_lexer.l"
+#line 248 "program_lexer.l"
{ return INVTRANS; }
YY_BREAK
-case 135:
+case 86:
YY_RULE_SETUP
-#line 291 "program_lexer.l"
+#line 249 "program_lexer.l"
{ return LIGHT; }
YY_BREAK
-case 136:
+case 87:
YY_RULE_SETUP
-#line 292 "program_lexer.l"
+#line 250 "program_lexer.l"
{ return LIGHTMODEL; }
YY_BREAK
-case 137:
+case 88:
YY_RULE_SETUP
-#line 293 "program_lexer.l"
+#line 251 "program_lexer.l"
{ return LIGHTPROD; }
YY_BREAK
-case 138:
+case 89:
YY_RULE_SETUP
-#line 294 "program_lexer.l"
+#line 252 "program_lexer.l"
{ return LOCAL; }
YY_BREAK
-case 139:
+case 90:
YY_RULE_SETUP
-#line 295 "program_lexer.l"
+#line 253 "program_lexer.l"
{ return MATERIAL; }
YY_BREAK
-case 140:
+case 91:
YY_RULE_SETUP
-#line 296 "program_lexer.l"
+#line 254 "program_lexer.l"
{ return MAT_PROGRAM; }
YY_BREAK
-case 141:
+case 92:
YY_RULE_SETUP
-#line 297 "program_lexer.l"
+#line 255 "program_lexer.l"
{ return MATRIX; }
YY_BREAK
-case 142:
+case 93:
YY_RULE_SETUP
-#line 298 "program_lexer.l"
+#line 256 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, MATRIXINDEX); }
YY_BREAK
-case 143:
+case 94:
YY_RULE_SETUP
-#line 299 "program_lexer.l"
+#line 257 "program_lexer.l"
{ return MODELVIEW; }
YY_BREAK
-case 144:
+case 95:
YY_RULE_SETUP
-#line 300 "program_lexer.l"
+#line 258 "program_lexer.l"
{ return MVP; }
YY_BREAK
-case 145:
+case 96:
YY_RULE_SETUP
-#line 301 "program_lexer.l"
+#line 259 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, NORMAL); }
YY_BREAK
-case 146:
+case 97:
YY_RULE_SETUP
-#line 302 "program_lexer.l"
+#line 260 "program_lexer.l"
{ return OBJECT; }
YY_BREAK
-case 147:
+case 98:
YY_RULE_SETUP
-#line 303 "program_lexer.l"
+#line 261 "program_lexer.l"
{ return PALETTE; }
YY_BREAK
-case 148:
+case 99:
YY_RULE_SETUP
-#line 304 "program_lexer.l"
+#line 262 "program_lexer.l"
{ return PARAMS; }
YY_BREAK
-case 149:
+case 100:
YY_RULE_SETUP
-#line 305 "program_lexer.l"
+#line 263 "program_lexer.l"
{ return PLANE; }
YY_BREAK
-case 150:
+case 101:
YY_RULE_SETUP
-#line 306 "program_lexer.l"
+#line 264 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, POINT); }
YY_BREAK
-case 151:
+case 102:
YY_RULE_SETUP
-#line 307 "program_lexer.l"
+#line 265 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, POINTSIZE); }
YY_BREAK
-case 152:
+case 103:
YY_RULE_SETUP
-#line 308 "program_lexer.l"
+#line 266 "program_lexer.l"
{ return POSITION; }
YY_BREAK
-case 153:
+case 104:
YY_RULE_SETUP
-#line 309 "program_lexer.l"
+#line 267 "program_lexer.l"
{ return PRIMARY; }
YY_BREAK
-case 154:
+case 105:
YY_RULE_SETUP
-#line 310 "program_lexer.l"
+#line 268 "program_lexer.l"
{ return PROJECTION; }
YY_BREAK
-case 155:
+case 106:
YY_RULE_SETUP
-#line 311 "program_lexer.l"
+#line 269 "program_lexer.l"
{ return_token_or_DOT(require_ARB_fp, RANGE); }
YY_BREAK
-case 156:
+case 107:
YY_RULE_SETUP
-#line 312 "program_lexer.l"
+#line 270 "program_lexer.l"
{ return ROW; }
YY_BREAK
-case 157:
+case 108:
YY_RULE_SETUP
-#line 313 "program_lexer.l"
+#line 271 "program_lexer.l"
{ return SCENECOLOR; }
YY_BREAK
-case 158:
+case 109:
YY_RULE_SETUP
-#line 314 "program_lexer.l"
+#line 272 "program_lexer.l"
{ return SECONDARY; }
YY_BREAK
-case 159:
+case 110:
YY_RULE_SETUP
-#line 315 "program_lexer.l"
+#line 273 "program_lexer.l"
{ return SHININESS; }
YY_BREAK
-case 160:
+case 111:
YY_RULE_SETUP
-#line 316 "program_lexer.l"
+#line 274 "program_lexer.l"
{ return_token_or_DOT(require_ARB_vp, SIZE); }
YY_BREAK
-case 161:
+case 112:
YY_RULE_SETUP
-#line 317 "program_lexer.l"
+#line 275 "program_lexer.l"
{ return SPECULAR; }
YY_BREAK
-case 162:
+case 113:
YY_RULE_SETUP
-#line 318 "program_lexer.l"
+#line 276 "program_lexer.l"
{ return SPOT; }
YY_BREAK
-case 163:
+case 114:
YY_RULE_SETUP
-#line 319 "program_lexer.l"
+#line 277 "program_lexer.l"
{ return TEXCOORD; }
YY_BREAK
-case 164:
+case 115:
YY_RULE_SETUP
-#line 320 "program_lexer.l"
+#line 278 "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 { $<integer>$ = $1; } varNameList
+TEMP_statement: optVarSize TEMP { $<integer>$ = $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 { $<integer>$ = $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
@@ -34,6 +34,67 @@
*/
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)
{
if (strcmp(option, "ARB_position_invariant") == 0) {
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);
+
/*@}*/