From f5b204228ef9116528e1b339ccce7ea5885fa808 Mon Sep 17 00:00:00 2001 From: David Rose Date: Sun, 10 Apr 2005 16:15:46 +0000 Subject: [PATCH] prebuild-bison --- panda/src/egg/parser.cxx.prebuilt | 2003 +++++++++++++++-------------- 1 file changed, 1013 insertions(+), 990 deletions(-) diff --git a/panda/src/egg/parser.cxx.prebuilt b/panda/src/egg/parser.cxx.prebuilt index 17be1ac39e..3d8aa154ae 100644 --- a/panda/src/egg/parser.cxx.prebuilt +++ b/panda/src/egg/parser.cxx.prebuilt @@ -111,6 +111,7 @@ #include "eggVertexUV.h" #include "eggPolygon.h" #include "eggCompositePrimitive.h" +#include "eggTriangleFan.h" #include "eggTriangleStrip.h" #include "eggPoint.h" #include "eggLine.h" @@ -240,12 +241,12 @@ egg_cleanup_parser() { -#define YYFINAL 714 +#define YYFINAL 721 #define YYFLAG -32768 #define YYNTBASE 91 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 207) +#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 209) /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ static const char yytranslate[] = @@ -292,141 +293,142 @@ static const short yyprhs[] = { 0, 0, 3, 6, 9, 12, 14, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, - 43, 45, 47, 49, 54, 60, 61, 69, 71, 78, - 81, 82, 89, 91, 98, 104, 111, 112, 119, 121, - 124, 125, 131, 132, 139, 141, 144, 148, 153, 154, - 162, 168, 174, 183, 192, 195, 203, 211, 215, 224, - 233, 238, 248, 258, 259, 266, 267, 274, 275, 282, - 284, 291, 297, 305, 313, 319, 325, 331, 337, 343, - 349, 355, 362, 368, 371, 374, 377, 380, 382, 384, - 387, 388, 394, 396, 399, 402, 405, 408, 411, 414, - 417, 424, 429, 434, 439, 447, 454, 459, 464, 466, - 483, 484, 490, 492, 495, 498, 501, 504, 510, 515, - 521, 526, 528, 538, 548, 550, 557, 562, 574, 587, - 588, 595, 596, 603, 604, 611, 612, 619, 620, 627, - 628, 635, 637, 643, 649, 651, 652, 660, 666, 672, - 678, 681, 687, 693, 699, 706, 708, 714, 720, 726, - 729, 735, 741, 747, 753, 759, 765, 768, 774, 781, - 783, 789, 795, 801, 804, 810, 816, 822, 828, 834, - 841, 843, 845, 847, 851, 860, 869, 874, 884, 894, - 896, 905, 908, 910, 912, 914, 920, 922, 925, 927, - 929, 930, 937, 938, 945, 947, 950, 953, 956, 959, - 962, 963, 970, 972, 979, 985, 986, 993, 995, 1002, - 1008, 1009, 1016, 1018, 1025, 1028, 1030, 1033, 1035, 1038, - 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1058, - 1060, 1062, 1064, 1066, 1068, 1070, 1073, 1075, 1077, 1079, - 1081, 1083, 1085, 1087 + 43, 45, 47, 49, 51, 56, 62, 63, 71, 73, + 80, 83, 84, 91, 93, 100, 106, 113, 114, 121, + 123, 126, 127, 133, 134, 141, 143, 146, 150, 155, + 156, 164, 170, 176, 185, 194, 197, 205, 213, 217, + 226, 235, 240, 250, 260, 261, 268, 269, 276, 277, + 284, 286, 293, 299, 307, 315, 321, 327, 333, 339, + 345, 351, 357, 364, 370, 373, 376, 379, 382, 384, + 386, 389, 390, 396, 398, 401, 404, 407, 410, 413, + 416, 419, 426, 431, 436, 441, 449, 456, 461, 466, + 468, 485, 486, 492, 494, 497, 500, 503, 506, 512, + 517, 523, 528, 530, 540, 550, 552, 559, 564, 576, + 589, 590, 597, 598, 605, 606, 613, 614, 621, 622, + 629, 630, 637, 638, 645, 647, 653, 659, 661, 662, + 670, 676, 682, 688, 691, 697, 703, 709, 716, 718, + 724, 730, 736, 739, 745, 751, 757, 763, 769, 775, + 778, 784, 791, 793, 799, 805, 811, 814, 820, 826, + 832, 838, 844, 851, 853, 855, 857, 861, 870, 879, + 884, 894, 904, 906, 915, 918, 920, 922, 924, 930, + 932, 935, 937, 939, 940, 947, 948, 955, 957, 960, + 963, 966, 969, 972, 973, 980, 982, 989, 995, 996, + 1003, 1005, 1012, 1018, 1019, 1026, 1028, 1035, 1038, 1040, + 1043, 1045, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, + 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1078, 1080, 1083, + 1085, 1087, 1089, 1091, 1093, 1095, 1097 }; static const short yyrhs[] = { 85, 92, 0, 86, 120, 0, 87, 98, 0, 88, - 159, 0, 206, 0, 92, 93, 0, 94, 0, 95, + 161, 0, 208, 0, 92, 93, 0, 94, 0, 95, 0, 96, 0, 99, 0, 102, 0, 103, 0, 114, 0, 116, 0, 118, 0, 146, 0, 148, 0, 150, - 0, 152, 0, 154, 0, 156, 0, 177, 0, 15, - 89, 198, 90, 0, 13, 197, 89, 201, 90, 0, - 0, 67, 196, 89, 198, 97, 98, 90, 0, 206, - 0, 98, 57, 196, 89, 204, 90, 0, 98, 134, - 0, 0, 37, 196, 89, 100, 101, 90, 0, 206, - 0, 101, 57, 196, 89, 204, 90, 0, 26, 197, - 89, 198, 90, 0, 200, 26, 197, 89, 198, 90, - 0, 0, 81, 196, 104, 89, 105, 90, 0, 206, - 0, 105, 106, 0, 0, 79, 107, 89, 109, 90, - 0, 0, 79, 205, 108, 89, 109, 90, 0, 203, - 0, 203, 203, 0, 203, 203, 203, 0, 203, 203, - 203, 203, 0, 0, 109, 77, 197, 89, 110, 111, - 90, 0, 109, 42, 89, 112, 90, 0, 109, 51, - 89, 113, 90, 0, 109, 21, 200, 89, 203, 203, - 203, 90, 0, 109, 21, 89, 200, 203, 203, 203, - 90, 0, 203, 203, 0, 111, 20, 200, 89, 203, - 203, 90, 0, 111, 20, 89, 200, 203, 203, 90, - 0, 203, 203, 203, 0, 112, 18, 200, 89, 203, - 203, 203, 90, 0, 112, 18, 89, 200, 203, 203, - 203, 90, 0, 203, 203, 203, 203, 0, 113, 19, - 200, 89, 203, 203, 203, 203, 90, 0, 113, 19, - 89, 200, 203, 203, 203, 203, 90, 0, 0, 28, - 197, 115, 89, 120, 90, 0, 0, 31, 197, 117, - 89, 120, 90, 0, 0, 34, 197, 119, 89, 120, - 90, 0, 206, 0, 120, 57, 196, 89, 204, 90, - 0, 120, 8, 89, 200, 90, 0, 120, 9, 89, - 203, 203, 203, 90, 0, 120, 12, 197, 89, 121, - 122, 90, 0, 120, 22, 89, 205, 90, 0, 120, - 22, 89, 5, 90, 0, 120, 17, 89, 205, 90, - 0, 120, 17, 89, 5, 90, 0, 120, 61, 89, - 205, 90, 0, 120, 45, 89, 198, 90, 0, 120, - 40, 89, 205, 90, 0, 120, 65, 197, 89, 201, - 90, 0, 120, 66, 89, 205, 90, 0, 120, 123, - 0, 120, 142, 0, 120, 144, 0, 120, 93, 0, - 200, 0, 206, 0, 122, 200, 0, 0, 69, 124, - 89, 125, 90, 0, 206, 0, 125, 126, 0, 125, - 127, 0, 125, 128, 0, 125, 129, 0, 125, 130, - 0, 125, 131, 0, 125, 132, 0, 70, 89, 203, - 203, 203, 90, 0, 53, 89, 203, 90, 0, 54, - 89, 203, 90, 0, 55, 89, 203, 90, 0, 52, - 89, 203, 203, 203, 203, 90, 0, 58, 89, 203, - 203, 203, 90, 0, 58, 89, 203, 90, 0, 39, - 89, 133, 90, 0, 206, 0, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 0, 0, 69, 135, 89, 136, 90, 0, - 206, 0, 136, 140, 0, 136, 137, 0, 136, 138, - 0, 136, 139, 0, 70, 89, 203, 203, 90, 0, - 52, 89, 203, 90, 0, 58, 89, 203, 203, 90, - 0, 38, 89, 141, 90, 0, 206, 0, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 0, 82, 89, - 191, 143, 50, 89, 195, 90, 90, 0, 206, 0, - 143, 57, 196, 89, 204, 90, 0, 62, 89, 145, - 90, 0, 23, 89, 203, 203, 79, 89, 203, 203, - 203, 90, 90, 0, 23, 89, 203, 203, 203, 79, - 89, 203, 203, 203, 90, 90, 0, 0, 49, 197, - 147, 89, 159, 90, 0, 0, 73, 197, 149, 89, - 159, 90, 0, 0, 48, 197, 151, 89, 159, 90, - 0, 0, 35, 197, 153, 89, 159, 90, 0, 0, - 44, 197, 155, 89, 161, 90, 0, 0, 43, 197, - 157, 89, 162, 90, 0, 206, 0, 158, 42, 89, - 166, 90, 0, 158, 51, 89, 167, 90, 0, 206, - 0, 0, 159, 14, 205, 89, 160, 158, 90, 0, - 159, 71, 89, 163, 90, 0, 159, 67, 89, 164, - 90, 0, 159, 41, 89, 165, 90, 0, 159, 169, - 0, 159, 42, 89, 166, 90, 0, 159, 51, 89, - 167, 90, 0, 159, 7, 89, 168, 90, 0, 159, - 57, 196, 89, 204, 90, 0, 206, 0, 161, 71, - 89, 163, 90, 0, 161, 67, 89, 164, 90, 0, - 161, 41, 89, 165, 90, 0, 161, 169, 0, 161, - 42, 89, 166, 90, 0, 161, 51, 89, 167, 90, - 0, 161, 7, 89, 168, 90, 0, 161, 46, 89, - 170, 90, 0, 161, 76, 89, 171, 90, 0, 161, - 78, 89, 172, 90, 0, 161, 156, 0, 161, 74, - 89, 173, 90, 0, 161, 57, 196, 89, 204, 90, - 0, 206, 0, 162, 71, 89, 163, 90, 0, 162, - 67, 89, 164, 90, 0, 162, 41, 89, 165, 90, - 0, 162, 169, 0, 162, 42, 89, 166, 90, 0, - 162, 51, 89, 167, 90, 0, 162, 7, 89, 168, - 90, 0, 162, 46, 89, 175, 90, 0, 162, 32, - 89, 176, 90, 0, 162, 57, 196, 89, 204, 90, - 0, 193, 0, 196, 0, 194, 0, 203, 203, 203, - 0, 166, 18, 200, 89, 203, 203, 203, 90, 0, - 166, 18, 89, 200, 203, 203, 203, 90, 0, 203, - 203, 203, 203, 0, 167, 19, 200, 89, 203, 203, - 203, 203, 90, 0, 167, 19, 89, 200, 203, 203, - 203, 203, 90, 0, 205, 0, 82, 89, 191, 50, - 89, 195, 90, 90, 0, 205, 205, 0, 192, 0, - 192, 0, 206, 0, 173, 36, 89, 174, 90, 0, - 206, 0, 174, 156, 0, 205, 0, 192, 0, 0, - 63, 197, 178, 89, 181, 90, 0, 0, 10, 197, - 180, 89, 181, 90, 0, 206, 0, 181, 177, 0, - 181, 179, 0, 181, 182, 0, 181, 185, 0, 181, - 188, 0, 0, 56, 197, 183, 89, 184, 90, 0, - 206, 0, 184, 57, 196, 89, 204, 90, 0, 184, - 64, 89, 192, 90, 0, 0, 83, 197, 186, 89, - 187, 90, 0, 206, 0, 187, 57, 196, 89, 204, - 90, 0, 187, 64, 89, 192, 90, 0, 0, 84, - 197, 189, 89, 190, 90, 0, 206, 0, 190, 57, - 196, 89, 204, 90, 0, 190, 182, 0, 206, 0, - 191, 205, 0, 206, 0, 192, 203, 0, 196, 0, - 196, 0, 196, 0, 206, 0, 200, 0, 199, 0, - 206, 0, 200, 0, 206, 0, 200, 0, 3, 0, - 4, 0, 5, 0, 206, 0, 202, 0, 200, 0, - 202, 200, 0, 3, 0, 4, 0, 3, 0, 4, + 0, 152, 0, 154, 0, 156, 0, 158, 0, 179, + 0, 15, 89, 200, 90, 0, 13, 199, 89, 203, + 90, 0, 0, 67, 198, 89, 200, 97, 98, 90, + 0, 208, 0, 98, 57, 198, 89, 206, 90, 0, + 98, 134, 0, 0, 37, 198, 89, 100, 101, 90, + 0, 208, 0, 101, 57, 198, 89, 206, 90, 0, + 26, 199, 89, 200, 90, 0, 202, 26, 199, 89, + 200, 90, 0, 0, 81, 198, 104, 89, 105, 90, + 0, 208, 0, 105, 106, 0, 0, 79, 107, 89, + 109, 90, 0, 0, 79, 207, 108, 89, 109, 90, + 0, 205, 0, 205, 205, 0, 205, 205, 205, 0, + 205, 205, 205, 205, 0, 0, 109, 77, 199, 89, + 110, 111, 90, 0, 109, 42, 89, 112, 90, 0, + 109, 51, 89, 113, 90, 0, 109, 21, 202, 89, + 205, 205, 205, 90, 0, 109, 21, 89, 202, 205, + 205, 205, 90, 0, 205, 205, 0, 111, 20, 202, + 89, 205, 205, 90, 0, 111, 20, 89, 202, 205, + 205, 90, 0, 205, 205, 205, 0, 112, 18, 202, + 89, 205, 205, 205, 90, 0, 112, 18, 89, 202, + 205, 205, 205, 90, 0, 205, 205, 205, 205, 0, + 113, 19, 202, 89, 205, 205, 205, 205, 90, 0, + 113, 19, 89, 202, 205, 205, 205, 205, 90, 0, + 0, 28, 199, 115, 89, 120, 90, 0, 0, 31, + 199, 117, 89, 120, 90, 0, 0, 34, 199, 119, + 89, 120, 90, 0, 208, 0, 120, 57, 198, 89, + 206, 90, 0, 120, 8, 89, 202, 90, 0, 120, + 9, 89, 205, 205, 205, 90, 0, 120, 12, 199, + 89, 121, 122, 90, 0, 120, 22, 89, 207, 90, + 0, 120, 22, 89, 5, 90, 0, 120, 17, 89, + 207, 90, 0, 120, 17, 89, 5, 90, 0, 120, + 61, 89, 207, 90, 0, 120, 45, 89, 200, 90, + 0, 120, 40, 89, 207, 90, 0, 120, 65, 199, + 89, 203, 90, 0, 120, 66, 89, 207, 90, 0, + 120, 123, 0, 120, 142, 0, 120, 144, 0, 120, + 93, 0, 202, 0, 208, 0, 122, 202, 0, 0, + 69, 124, 89, 125, 90, 0, 208, 0, 125, 126, + 0, 125, 127, 0, 125, 128, 0, 125, 129, 0, + 125, 130, 0, 125, 131, 0, 125, 132, 0, 70, + 89, 205, 205, 205, 90, 0, 53, 89, 205, 90, + 0, 54, 89, 205, 90, 0, 55, 89, 205, 90, + 0, 52, 89, 205, 205, 205, 205, 90, 0, 58, + 89, 205, 205, 205, 90, 0, 58, 89, 205, 90, + 0, 39, 89, 133, 90, 0, 208, 0, 205, 205, + 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, + 205, 205, 205, 205, 0, 0, 69, 135, 89, 136, + 90, 0, 208, 0, 136, 140, 0, 136, 137, 0, + 136, 138, 0, 136, 139, 0, 70, 89, 205, 205, + 90, 0, 52, 89, 205, 90, 0, 58, 89, 205, + 205, 90, 0, 38, 89, 141, 90, 0, 208, 0, + 205, 205, 205, 205, 205, 205, 205, 205, 205, 0, + 82, 89, 193, 143, 50, 89, 197, 90, 90, 0, + 208, 0, 143, 57, 198, 89, 206, 90, 0, 62, + 89, 145, 90, 0, 23, 89, 205, 205, 79, 89, + 205, 205, 205, 90, 90, 0, 23, 89, 205, 205, + 205, 79, 89, 205, 205, 205, 90, 90, 0, 0, + 49, 199, 147, 89, 161, 90, 0, 0, 72, 199, + 149, 89, 161, 90, 0, 0, 73, 199, 151, 89, + 161, 90, 0, 0, 48, 199, 153, 89, 161, 90, + 0, 0, 35, 199, 155, 89, 161, 90, 0, 0, + 44, 199, 157, 89, 163, 90, 0, 0, 43, 199, + 159, 89, 164, 90, 0, 208, 0, 160, 42, 89, + 168, 90, 0, 160, 51, 89, 169, 90, 0, 208, + 0, 0, 161, 14, 207, 89, 162, 160, 90, 0, + 161, 71, 89, 165, 90, 0, 161, 67, 89, 166, + 90, 0, 161, 41, 89, 167, 90, 0, 161, 171, + 0, 161, 42, 89, 168, 90, 0, 161, 51, 89, + 169, 90, 0, 161, 7, 89, 170, 90, 0, 161, + 57, 198, 89, 206, 90, 0, 208, 0, 163, 71, + 89, 165, 90, 0, 163, 67, 89, 166, 90, 0, + 163, 41, 89, 167, 90, 0, 163, 171, 0, 163, + 42, 89, 168, 90, 0, 163, 51, 89, 169, 90, + 0, 163, 7, 89, 170, 90, 0, 163, 46, 89, + 172, 90, 0, 163, 76, 89, 173, 90, 0, 163, + 78, 89, 174, 90, 0, 163, 158, 0, 163, 74, + 89, 175, 90, 0, 163, 57, 198, 89, 206, 90, + 0, 208, 0, 164, 71, 89, 165, 90, 0, 164, + 67, 89, 166, 90, 0, 164, 41, 89, 167, 90, + 0, 164, 171, 0, 164, 42, 89, 168, 90, 0, + 164, 51, 89, 169, 90, 0, 164, 7, 89, 170, + 90, 0, 164, 46, 89, 177, 90, 0, 164, 32, + 89, 178, 90, 0, 164, 57, 198, 89, 206, 90, + 0, 195, 0, 198, 0, 196, 0, 205, 205, 205, + 0, 168, 18, 202, 89, 205, 205, 205, 90, 0, + 168, 18, 89, 202, 205, 205, 205, 90, 0, 205, + 205, 205, 205, 0, 169, 19, 202, 89, 205, 205, + 205, 205, 90, 0, 169, 19, 89, 202, 205, 205, + 205, 205, 90, 0, 207, 0, 82, 89, 193, 50, + 89, 197, 90, 90, 0, 207, 207, 0, 194, 0, + 194, 0, 208, 0, 175, 36, 89, 176, 90, 0, + 208, 0, 176, 158, 0, 207, 0, 194, 0, 0, + 63, 199, 180, 89, 183, 90, 0, 0, 10, 199, + 182, 89, 183, 90, 0, 208, 0, 183, 179, 0, + 183, 181, 0, 183, 184, 0, 183, 187, 0, 183, + 190, 0, 0, 56, 199, 185, 89, 186, 90, 0, + 208, 0, 186, 57, 198, 89, 206, 90, 0, 186, + 64, 89, 194, 90, 0, 0, 83, 199, 188, 89, + 189, 90, 0, 208, 0, 189, 57, 198, 89, 206, + 90, 0, 189, 64, 89, 194, 90, 0, 0, 84, + 199, 191, 89, 192, 90, 0, 208, 0, 192, 57, + 198, 89, 206, 90, 0, 192, 184, 0, 208, 0, + 193, 207, 0, 208, 0, 194, 205, 0, 198, 0, + 198, 0, 198, 0, 208, 0, 202, 0, 201, 0, + 208, 0, 202, 0, 208, 0, 202, 0, 3, 0, + 4, 0, 5, 0, 208, 0, 204, 0, 202, 0, + 204, 202, 0, 3, 0, 4, 0, 3, 0, 4, 0, 5, 0, 3, 0, 4, 0, 0 }; @@ -436,32 +438,32 @@ static const short yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const short yyrline[] = { - 0, 213, 215, 216, 217, 227, 229, 244, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 270, 293, 307, 307, 335, 337, 619, - 629, 629, 656, 658, 752, 760, 779, 779, 815, 817, - 827, 827, 839, 839, 884, 889, 893, 897, 901, 901, - 916, 917, 918, 926, 944, 949, 957, 974, 979, 987, - 1004, 1009, 1017, 1034, 1034, 1054, 1054, 1075, 1075, 1096, - 1098, 1168, 1180, 1185, 1192, 1198, 1211, 1218, 1231, 1237, - 1243, 1249, 1254, 1260, 1261, 1262, 1263, 1276, 1306, 1308, - 1329, 1329, 1345, 1347, 1348, 1349, 1350, 1351, 1352, 1353, - 1356, 1362, 1368, 1374, 1380, 1386, 1390, 1396, 1400, 1402, - 1423, 1423, 1442, 1444, 1445, 1446, 1447, 1450, 1456, 1462, - 1468, 1471, 1473, 1491, 1524, 1529, 1553, 1565, 1571, 1587, - 1587, 1606, 1606, 1625, 1625, 1644, 1644, 1663, 1663, 1682, - 1682, 1702, 1704, 1705, 1715, 1717, 1717, 1738, 1739, 1740, - 1741, 1742, 1743, 1744, 1745, 1811, 1813, 1814, 1815, 1816, - 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1829, 1830, 1893, - 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, - 1972, 1989, 2029, 2046, 2051, 2059, 2076, 2081, 2089, 2106, - 2122, 2153, 2171, 2191, 2211, 2217, 2227, 2234, 2252, 2268, - 2289, 2289, 2311, 2311, 2333, 2335, 2339, 2343, 2347, 2351, - 2365, 2365, 2386, 2388, 2400, 2413, 2413, 2434, 2436, 2453, - 2466, 2466, 2487, 2489, 2504, 2518, 2523, 2536, 2541, 2554, - 2575, 2596, 2620, 2626, 2637, 2649, 2655, 2665, 2670, 2683, - 2688, 2692, 2704, 2709, 2724, 2729, 2742, 2744, 2758, 2765, - 2771, 2787, 2796, 2802 + 0, 215, 217, 218, 219, 229, 231, 246, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 273, 296, 310, 310, 338, 340, + 622, 632, 632, 659, 661, 755, 763, 782, 782, 822, + 824, 834, 834, 846, 846, 891, 896, 900, 904, 908, + 908, 923, 924, 925, 933, 951, 956, 964, 981, 986, + 994, 1011, 1016, 1024, 1041, 1041, 1061, 1061, 1082, 1082, + 1103, 1105, 1175, 1187, 1192, 1199, 1205, 1218, 1225, 1238, + 1244, 1250, 1256, 1261, 1267, 1268, 1269, 1270, 1283, 1313, + 1315, 1336, 1336, 1352, 1354, 1355, 1356, 1357, 1358, 1359, + 1360, 1363, 1369, 1375, 1381, 1387, 1393, 1397, 1403, 1407, + 1409, 1430, 1430, 1449, 1451, 1452, 1453, 1454, 1457, 1463, + 1469, 1475, 1478, 1480, 1498, 1531, 1536, 1560, 1572, 1578, + 1594, 1594, 1613, 1613, 1632, 1632, 1651, 1651, 1670, 1670, + 1689, 1689, 1708, 1708, 1728, 1730, 1731, 1741, 1743, 1743, + 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1843, 1845, + 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, + 1861, 1862, 1925, 1927, 1928, 1929, 1930, 1931, 1932, 1933, + 1934, 1935, 1936, 2004, 2021, 2061, 2078, 2083, 2091, 2108, + 2113, 2121, 2138, 2154, 2185, 2203, 2223, 2243, 2249, 2259, + 2266, 2284, 2300, 2321, 2321, 2343, 2343, 2365, 2367, 2371, + 2375, 2379, 2383, 2397, 2397, 2418, 2420, 2432, 2445, 2445, + 2466, 2468, 2485, 2498, 2498, 2519, 2521, 2536, 2550, 2555, + 2568, 2573, 2586, 2607, 2628, 2654, 2660, 2671, 2683, 2689, + 2699, 2704, 2717, 2722, 2726, 2738, 2743, 2758, 2763, 2776, + 2778, 2792, 2799, 2805, 2821, 2830, 2836 }; #endif @@ -497,18 +499,18 @@ static const char *const yytname[] = "transform_2d_body", "translate_2d", "rotate_2d", "scale_2d", "matrix3_2d", "matrix3_2d_body", "group_vertex_ref", "group_vertex_membership", "switchcondition", "switchcondition_body", - "polygon", "@12", "trianglestrip", "@13", "point_light", "@14", "line", - "@15", "nurbs_surface", "@16", "nurbs_curve", "@17", - "primitive_component_body", "primitive_body", "@18", - "nurbs_surface_body", "nurbs_curve_body", "primitive_tref_body", + "polygon", "@12", "trianglefan", "@13", "trianglestrip", "@14", + "point_light", "@15", "line", "@16", "nurbs_surface", "@17", + "nurbs_curve", "@18", "primitive_component_body", "primitive_body", + "@19", "nurbs_surface_body", "nurbs_curve_body", "primitive_tref_body", "primitive_texture_body", "primitive_material_body", "primitive_normal_body", "primitive_color_body", "primitive_bface_body", "primitive_vertex_ref", "nurbs_surface_order_body", "nurbs_surface_uknots_body", "nurbs_surface_vknots_body", "nurbs_surface_trim_body", "nurbs_surface_trim_loop_body", - "nurbs_curve_order_body", "nurbs_curve_knots_body", "table", "@19", - "bundle", "@20", "table_body", "sanim", "@21", "sanim_body", "xfmanim", - "@22", "xfmanim_body", "xfm_s_anim", "@23", "xfm_s_anim_body", + "nurbs_curve_order_body", "nurbs_curve_knots_body", "table", "@20", + "bundle", "@21", "table_body", "sanim", "@22", "sanim_body", "xfmanim", + "@23", "xfmanim_body", "xfm_s_anim", "@24", "xfm_s_anim_body", "integer_list", "real_list", "texture_name", "material_name", "vertex_pool_name", "required_name", "optional_name", "required_string", "optional_string", "string", "repeated_string", "repeated_string_body", @@ -521,30 +523,30 @@ static const short yyr1[] = { 0, 91, 91, 91, 91, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 94, 95, 97, 96, 98, 98, 98, - 100, 99, 101, 101, 102, 102, 104, 103, 105, 105, - 107, 106, 108, 106, 109, 109, 109, 109, 110, 109, - 109, 109, 109, 109, 111, 111, 111, 112, 112, 112, - 113, 113, 113, 115, 114, 117, 116, 119, 118, 120, + 93, 93, 93, 93, 94, 95, 97, 96, 98, 98, + 98, 100, 99, 101, 101, 102, 102, 104, 103, 105, + 105, 107, 106, 108, 106, 109, 109, 109, 109, 110, + 109, 109, 109, 109, 109, 111, 111, 111, 112, 112, + 112, 113, 113, 113, 115, 114, 117, 116, 119, 118, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 121, 122, 122, - 124, 123, 125, 125, 125, 125, 125, 125, 125, 125, - 126, 127, 128, 129, 130, 131, 131, 132, 133, 133, - 135, 134, 136, 136, 136, 136, 136, 137, 138, 139, - 140, 141, 141, 142, 143, 143, 144, 145, 145, 147, - 146, 149, 148, 151, 150, 153, 152, 155, 154, 157, - 156, 158, 158, 158, 159, 160, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 163, 164, 165, 166, 166, 166, 167, 167, 167, 168, - 169, 170, 171, 172, 173, 173, 174, 174, 175, 176, - 178, 177, 180, 179, 181, 181, 181, 181, 181, 181, - 183, 182, 184, 184, 184, 186, 185, 187, 187, 187, - 189, 188, 190, 190, 190, 191, 191, 192, 192, 193, - 194, 195, 196, 196, 197, 198, 198, 199, 199, 200, - 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, - 204, 205, 205, 206 + 120, 120, 120, 120, 120, 120, 120, 120, 121, 122, + 122, 124, 123, 125, 125, 125, 125, 125, 125, 125, + 125, 126, 127, 128, 129, 130, 131, 131, 132, 133, + 133, 135, 134, 136, 136, 136, 136, 136, 137, 138, + 139, 140, 141, 141, 142, 143, 143, 144, 145, 145, + 147, 146, 149, 148, 151, 150, 153, 152, 155, 154, + 157, 156, 159, 158, 160, 160, 160, 161, 162, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 165, 166, 167, 168, 168, 168, 169, + 169, 169, 170, 171, 172, 173, 174, 175, 175, 176, + 176, 177, 178, 180, 179, 182, 181, 183, 183, 183, + 183, 183, 183, 185, 184, 186, 186, 186, 188, 187, + 189, 189, 189, 191, 190, 192, 192, 192, 193, 193, + 194, 194, 195, 196, 197, 198, 198, 199, 200, 200, + 201, 201, 202, 202, 202, 203, 203, 204, 204, 205, + 205, 206, 206, 206, 207, 207, 208 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -552,30 +554,30 @@ static const short yyr2[] = { 0, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 4, 5, 0, 7, 1, 6, 2, - 0, 6, 1, 6, 5, 6, 0, 6, 1, 2, - 0, 5, 0, 6, 1, 2, 3, 4, 0, 7, - 5, 5, 8, 8, 2, 7, 7, 3, 8, 8, - 4, 9, 9, 0, 6, 0, 6, 0, 6, 1, - 6, 5, 7, 7, 5, 5, 5, 5, 5, 5, - 5, 6, 5, 2, 2, 2, 2, 1, 1, 2, - 0, 5, 1, 2, 2, 2, 2, 2, 2, 2, - 6, 4, 4, 4, 7, 6, 4, 4, 1, 16, - 0, 5, 1, 2, 2, 2, 2, 5, 4, 5, - 4, 1, 9, 9, 1, 6, 4, 11, 12, 0, - 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, - 6, 1, 5, 5, 1, 0, 7, 5, 5, 5, - 2, 5, 5, 5, 6, 1, 5, 5, 5, 2, - 5, 5, 5, 5, 5, 5, 2, 5, 6, 1, - 5, 5, 5, 2, 5, 5, 5, 5, 5, 6, - 1, 1, 1, 3, 8, 8, 4, 9, 9, 1, - 8, 2, 1, 1, 1, 5, 1, 2, 1, 1, - 0, 6, 0, 6, 1, 2, 2, 2, 2, 2, - 0, 6, 1, 6, 5, 0, 6, 1, 6, 5, - 0, 6, 1, 6, 2, 1, 2, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 0 + 1, 1, 1, 1, 4, 5, 0, 7, 1, 6, + 2, 0, 6, 1, 6, 5, 6, 0, 6, 1, + 2, 0, 5, 0, 6, 1, 2, 3, 4, 0, + 7, 5, 5, 8, 8, 2, 7, 7, 3, 8, + 8, 4, 9, 9, 0, 6, 0, 6, 0, 6, + 1, 6, 5, 7, 7, 5, 5, 5, 5, 5, + 5, 5, 6, 5, 2, 2, 2, 2, 1, 1, + 2, 0, 5, 1, 2, 2, 2, 2, 2, 2, + 2, 6, 4, 4, 4, 7, 6, 4, 4, 1, + 16, 0, 5, 1, 2, 2, 2, 2, 5, 4, + 5, 4, 1, 9, 9, 1, 6, 4, 11, 12, + 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, + 0, 6, 0, 6, 1, 5, 5, 1, 0, 7, + 5, 5, 5, 2, 5, 5, 5, 6, 1, 5, + 5, 5, 2, 5, 5, 5, 5, 5, 5, 2, + 5, 6, 1, 5, 5, 5, 2, 5, 5, 5, + 5, 5, 6, 1, 1, 1, 3, 8, 8, 4, + 9, 9, 1, 8, 2, 1, 1, 1, 5, 1, + 2, 1, 1, 0, 6, 0, 6, 1, 2, 2, + 2, 2, 2, 0, 6, 1, 6, 5, 0, 6, + 1, 6, 5, 0, 6, 1, 6, 2, 1, 2, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 0 }; /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE @@ -583,466 +585,462 @@ static const short yyr2[] = error. */ static const short yydefact[] = { - 0, 253, 253, 253, 253, 1, 5, 2, 69, 3, - 27, 4, 144, 239, 240, 241, 253, 0, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, - 0, 0, 253, 0, 0, 0, 0, 253, 0, 0, - 253, 0, 90, 0, 86, 83, 84, 85, 253, 110, - 29, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 150, 0, 234, 238, 237, 253, 0, 63, 65, 67, - 135, 0, 233, 232, 139, 137, 133, 129, 200, 0, - 131, 36, 253, 0, 0, 0, 0, 0, 0, 253, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, - 251, 252, 0, 253, 0, 0, 0, 253, 253, 253, - 253, 0, 236, 235, 253, 0, 0, 0, 0, 30, - 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, - 246, 247, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 0, 253, 253, 225, 0, - 253, 0, 189, 145, 0, 182, 230, 0, 0, 0, - 0, 0, 0, 181, 0, 180, 229, 0, 244, 0, - 243, 242, 23, 0, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 25, 253, 253, 253, 71, 0, - 253, 87, 77, 76, 75, 74, 80, 79, 248, 249, - 250, 0, 78, 0, 126, 0, 82, 0, 92, 0, - 226, 124, 0, 0, 112, 153, 253, 149, 0, 151, - 0, 0, 152, 0, 0, 148, 147, 0, 24, 245, - 34, 0, 0, 0, 0, 0, 32, 0, 169, 0, - 155, 0, 0, 0, 204, 253, 0, 0, 38, 0, - 0, 0, 88, 70, 0, 81, 0, 0, 0, 0, - 0, 0, 0, 91, 93, 94, 95, 96, 97, 98, - 99, 0, 253, 28, 0, 0, 0, 0, 111, 114, - 115, 116, 113, 0, 141, 0, 0, 183, 0, 0, - 0, 154, 253, 64, 66, 68, 136, 253, 31, 0, - 0, 0, 0, 0, 0, 253, 0, 0, 140, 173, - 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, - 0, 138, 166, 159, 134, 130, 253, 253, 253, 253, - 201, 205, 206, 207, 208, 209, 0, 132, 40, 37, - 39, 35, 72, 73, 89, 0, 253, 0, 0, 0, - 0, 0, 0, 253, 0, 253, 0, 0, 0, 0, - 0, 146, 0, 0, 0, 0, 186, 0, 231, 0, - 0, 253, 253, 0, 0, 0, 0, 253, 253, 0, - 253, 0, 0, 0, 0, 253, 253, 253, 253, 253, - 202, 210, 215, 220, 26, 0, 42, 0, 0, 0, - 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 199, 227, 0, 0, - 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 194, 0, 192, 0, - 193, 0, 0, 0, 0, 0, 0, 0, 0, 107, - 0, 0, 101, 102, 103, 106, 0, 0, 0, 0, - 120, 0, 118, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 0, 176, 178, 228, 172, 174, 177, 175, - 0, 171, 170, 162, 158, 160, 163, 191, 161, 0, - 157, 156, 0, 167, 164, 165, 253, 253, 253, 253, - 0, 44, 0, 0, 0, 0, 0, 0, 0, 123, - 125, 0, 119, 117, 142, 143, 0, 0, 0, 0, - 33, 179, 168, 253, 0, 0, 212, 0, 217, 0, - 222, 0, 0, 0, 253, 41, 45, 0, 0, 0, - 0, 0, 105, 100, 0, 185, 184, 0, 0, 0, - 196, 203, 253, 0, 211, 253, 0, 216, 253, 221, - 224, 0, 0, 0, 0, 0, 46, 43, 0, 0, - 0, 104, 0, 188, 187, 195, 197, 0, 253, 0, - 253, 0, 0, 0, 0, 0, 0, 0, 48, 47, + 0, 256, 256, 256, 256, 1, 5, 2, 70, 3, + 28, 4, 147, 242, 243, 244, 256, 0, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 0, 0, 0, 256, 0, 0, 0, 0, 256, + 0, 0, 256, 0, 91, 0, 87, 84, 85, 86, + 256, 111, 30, 0, 0, 0, 0, 0, 256, 0, + 0, 0, 153, 0, 237, 241, 240, 256, 0, 64, + 66, 68, 138, 0, 236, 235, 142, 140, 136, 130, + 203, 0, 132, 134, 37, 256, 0, 0, 0, 0, + 0, 0, 256, 0, 0, 0, 0, 0, 0, 256, + 0, 0, 0, 254, 255, 0, 256, 0, 0, 0, + 256, 256, 256, 256, 0, 239, 238, 256, 0, 0, + 0, 0, 31, 0, 0, 0, 0, 0, 256, 0, + 0, 0, 0, 0, 249, 250, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, + 256, 256, 228, 0, 256, 0, 192, 148, 0, 185, + 233, 0, 0, 0, 0, 0, 0, 184, 0, 183, + 232, 0, 247, 0, 246, 245, 24, 0, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 26, 256, + 256, 256, 256, 72, 0, 256, 88, 78, 77, 76, + 75, 81, 80, 251, 252, 253, 0, 79, 0, 127, + 0, 83, 0, 93, 0, 229, 125, 0, 0, 113, + 156, 256, 152, 0, 154, 0, 0, 155, 0, 0, + 151, 150, 0, 25, 248, 35, 0, 0, 0, 0, + 0, 33, 0, 172, 0, 158, 0, 0, 0, 207, + 256, 0, 0, 0, 39, 0, 0, 0, 89, 71, + 0, 82, 0, 0, 0, 0, 0, 0, 0, 92, + 94, 95, 96, 97, 98, 99, 100, 0, 256, 29, + 0, 0, 0, 0, 112, 115, 116, 117, 114, 0, + 144, 0, 0, 186, 0, 0, 0, 157, 256, 65, + 67, 69, 139, 256, 32, 0, 0, 0, 0, 0, + 0, 256, 0, 0, 143, 176, 0, 0, 0, 0, + 0, 256, 0, 0, 0, 0, 0, 141, 169, 162, + 137, 131, 256, 256, 256, 256, 204, 208, 209, 210, + 211, 212, 0, 133, 135, 41, 38, 40, 36, 73, + 74, 90, 0, 256, 0, 0, 0, 0, 0, 0, + 256, 0, 256, 0, 0, 0, 0, 0, 149, 0, + 0, 0, 0, 189, 0, 234, 0, 0, 256, 256, + 0, 0, 0, 0, 256, 256, 0, 256, 0, 0, + 0, 0, 256, 256, 256, 256, 256, 205, 213, 218, + 223, 27, 0, 43, 0, 0, 0, 0, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 51, 0, 0, 127, 0, - 0, 0, 0, 214, 0, 219, 0, 0, 0, 0, - 0, 57, 0, 0, 0, 0, 0, 128, 0, 0, - 213, 218, 223, 0, 0, 0, 0, 0, 0, 60, - 0, 49, 54, 0, 122, 53, 52, 0, 0, 0, + 0, 0, 0, 202, 230, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 59, 58, - 0, 0, 0, 0, 0, 62, 61, 56, 55, 0, - 0, 109, 0, 0, 0 + 0, 0, 0, 197, 0, 195, 0, 196, 0, 0, + 0, 0, 0, 0, 0, 0, 108, 0, 0, 102, + 103, 104, 107, 0, 0, 0, 0, 121, 0, 119, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 179, 181, 231, 175, 177, 180, 178, 0, 174, 173, + 165, 161, 163, 166, 194, 164, 0, 160, 159, 0, + 170, 167, 168, 256, 256, 256, 256, 0, 45, 0, + 0, 0, 0, 0, 0, 0, 124, 126, 0, 120, + 118, 145, 146, 0, 0, 0, 0, 34, 182, 171, + 256, 0, 0, 215, 0, 220, 0, 225, 0, 0, + 0, 256, 42, 46, 0, 0, 0, 0, 0, 106, + 101, 0, 188, 187, 0, 0, 0, 199, 206, 256, + 0, 214, 256, 0, 219, 256, 224, 227, 0, 0, + 0, 0, 0, 47, 44, 0, 0, 0, 105, 0, + 191, 190, 198, 200, 0, 256, 0, 256, 0, 0, + 0, 0, 0, 0, 0, 49, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, + 0, 0, 52, 0, 0, 128, 0, 0, 0, 0, + 217, 0, 222, 0, 0, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 129, 0, 0, 216, 221, 226, + 0, 0, 0, 0, 0, 0, 61, 0, 50, 55, + 0, 123, 54, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 60, 59, 0, 0, 0, + 0, 0, 63, 62, 57, 56, 0, 0, 110, 0, + 0, 0 }; static const short yydefgoto[] = { - 712, 5, 64, 33, 34, 35, 265, 9, 36, 198, - 255, 37, 38, 147, 267, 360, 415, 476, 530, 637, - 655, 614, 616, 39, 135, 40, 136, 41, 137, 7, - 210, 271, 65, 115, 227, 284, 285, 286, 287, 288, - 289, 290, 419, 70, 118, 233, 299, 300, 301, 302, - 430, 66, 229, 67, 163, 42, 143, 43, 146, 44, - 142, 45, 138, 46, 141, 47, 140, 303, 11, 236, - 259, 257, 184, 182, 174, 177, 179, 171, 80, 459, - 467, 469, 465, 579, 450, 445, 48, 144, 352, 471, - 263, 353, 472, 555, 354, 473, 557, 355, 474, 559, - 167, 446, 185, 175, 387, 176, 81, 131, 82, 92, - 189, 190, 505, 221, 172, 93 + 719, 5, 66, 34, 35, 36, 270, 9, 37, 202, + 260, 38, 39, 151, 273, 367, 422, 483, 537, 644, + 662, 621, 623, 40, 138, 41, 139, 42, 140, 7, + 215, 277, 67, 118, 232, 290, 291, 292, 293, 294, + 295, 296, 426, 72, 121, 238, 305, 306, 307, 308, + 437, 68, 234, 69, 167, 43, 146, 44, 149, 45, + 150, 46, 145, 47, 141, 48, 144, 49, 143, 309, + 11, 241, 264, 262, 188, 186, 178, 181, 183, 175, + 82, 466, 474, 476, 472, 586, 457, 452, 50, 147, + 358, 478, 268, 359, 479, 562, 360, 480, 564, 361, + 481, 566, 171, 453, 189, 179, 394, 180, 83, 134, + 84, 94, 193, 194, 512, 226, 176, 95 }; static const short yypact[] = { - 222,-32768,-32768,-32768,-32768, 517,-32768, 1251,-32768, -51, - -32768, 522,-32768,-32768,-32768,-32768, 313, 39, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 107, - 60, 76, 313, 79, 82, 85, 88, 313, 142, 153, - 313, 156,-32768, 160,-32768,-32768,-32768,-32768, 313,-32768, - -32768, 166, 298, 173, 181, 188, 313, 210, 225, 233, - -32768, 238,-32768,-32768,-32768, 313, 246,-32768,-32768,-32768, - -32768, 248,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 250, - -32768,-32768, 313, 313, 321, 251, 326, 329, 298, 313, - 261, 298, 129, 262, 298, 267,-32768, 273, 279, 298, - -32768,-32768, 281, 313, 321, 321, 282, 313, 313,-32768, - 313, 102,-32768,-32768, 313, 283, 284, 285, 286,-32768, - 288, 289, 291, 292, 295, 313, 296, 302, 303, 121, - -32768,-32768, 321, 313, 124, 214, 221, 297, 305, 306, - 343, 307, 304, 308, 313, 309,-32768, 298,-32768, 343, - -32768, 314,-32768,-32768, 315,-32768,-32768, 6, 321, 9, - 321, 343, 317,-32768, 320,-32768,-32768, 131,-32768, 322, - 313,-32768,-32768, 324,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768, 313,-32768, 321, + 228,-32768,-32768,-32768,-32768, 541,-32768, 1225,-32768, 188, + -32768, 550,-32768,-32768,-32768,-32768, 331, -81, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 328,-32768, 321,-32768, 330,-32768, 447,-32768, 163, - -32768,-32768, 331, 186,-32768,-32768,-32768,-32768, 69,-32768, - 321, 72,-32768, 321, 332,-32768,-32768, 334,-32768,-32768, - -32768, 1038, 1109, 1180, 168, -22,-32768, 109,-32768, 312, - -32768, 375, 399, 100,-32768,-32768, 441, -49,-32768, 337, - 338, 5,-32768,-32768, 321,-32768, 336, 340, 341, 342, - 348, 349, 354,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768, 355, 313,-32768, 356, 358, 360, 362,-32768,-32768, - -32768,-32768,-32768, 122,-32768, 313, 363,-32768, 313, 365, - 321,-32768, 313,-32768,-32768,-32768,-32768, 313,-32768, 369, - 372, 374, 378, 379, 380, 313, 382, 383,-32768,-32768, - 384, 385, 386, 387, 388, 313, 390, 391, 395, 396, - 401,-32768,-32768,-32768,-32768,-32768, 313, 313, 313, 313, - -32768,-32768,-32768,-32768,-32768,-32768, 206,-32768, 298,-32768, - -32768,-32768,-32768,-32768,-32768, 115, 321, 321, 321, 321, - 321, 321, 321, 313, 402, 321, 321, 321, 321, 404, - 408,-32768, 321, 321, 321, 321,-32768, 398,-32768, 414, - 298,-32768, 313, 321, 298, 321, 415, 313, 313, 298, - 313, 321, 298, 321, 417, 313, 313,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768, 421,-32768, 425, 345, 426, - 321,-32768, 321, 428, 429, 434, 46, 321, 435, 343, - 436, 321,-32768, 437, 321, 321, 321, 321, 321, 321, - 321, 321, 438, 343, 443, 444, 321,-32768, 445, 33, - 448,-32768, 34, 343, 449, 450, 451, 452, 103, 456, - 298, 48, 343, 457, 459, 133,-32768, 460, 321, 463, - 321, 466, 468, 473, 478, 321, 479, 321, 480,-32768, - 321, 321,-32768,-32768,-32768,-32768, 321, 321, 481, 482, - -32768, 321,-32768, 484, 486, 108, 118, 321, 321, 321, - 321,-32768, 487,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 491,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 493, - -32768,-32768, 498,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 111, 321, 321, 321, 321, 321, 321, 502, 504,-32768, - -32768, 321,-32768,-32768,-32768,-32768, 505, 506, 321, 321, - -32768,-32768,-32768,-32768, 144, 215,-32768, 216,-32768, 184, - -32768, 78, 508, 510, 313,-32768, 321, 201, 321, 321, - 321, 511,-32768,-32768, 321,-32768,-32768, 512, 513, 136, - -32768,-32768, 313, 516,-32768, 313, 518,-32768, 313,-32768, - -32768, 313, 519, 321, 321, 521, 321,-32768, 527, 321, - 321,-32768, 321,-32768,-32768,-32768,-32768, 523,-32768, 529, - -32768, 530, 321, 321, 128, 321, 125, 321,-32768,-32768, - 531, 532, 321, 321, 343, 53, 343, 55, 343, 321, - 321, 81,-32768, 321, 89,-32768, 321, 321,-32768, 533, - 321, 321, 534,-32768, 535,-32768, 537, 321, 321, 313, - 539,-32768, 313, 541, 321, 67, 321,-32768, 321, 321, - -32768,-32768,-32768, 542, 543, 321, 321, 321, 321,-32768, - 97,-32768,-32768, 321,-32768,-32768,-32768, 321, 321, 321, - 321, 313, 545, 321, 321, 321, 321, 321, 321, 321, - 321, 546, 547, 321, 321, 321, 321, 321,-32768,-32768, - 548, 549, 551, 552, 321,-32768,-32768,-32768,-32768, 321, - 321,-32768, 403, 411,-32768 + -32768, 21, -29, -28, 331, 68, 87, 91, 107, 331, + 145, 154, 331, 165,-32768, 169,-32768,-32768,-32768,-32768, + 331,-32768,-32768, 170, 28, 186, 189, 190, 331, 194, + 199, 200,-32768, 219,-32768,-32768,-32768, 331, 229,-32768, + -32768,-32768,-32768, 231,-32768,-32768,-32768,-32768,-32768,-32768, + -32768, 232,-32768,-32768,-32768, 331, 331, 137, 236, 336, + 361, 28, 331, 239, 28, 158, 253, 28, 254,-32768, + 257, 265, 28,-32768,-32768, 282, 331, 137, 137, 283, + 331, 331,-32768, 331, 142,-32768,-32768, 331, 285, 287, + 290, 293,-32768, 294, 298, 304, 312, 313, 331, 314, + 315, 316, 317, 177,-32768,-32768, 137, 331, 180, 196, + 320, 321, 324, 325, 365, 330, 332, 334, 331, 335, + -32768, 28,-32768, 365,-32768, 341,-32768,-32768, 342,-32768, + -32768, -9, 137, -13, 137, 365, 344,-32768, 345,-32768, + -32768, 152,-32768, 346, 331,-32768,-32768, 349,-32768,-32768, + -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + -32768,-32768, 331,-32768, 137,-32768,-32768,-32768,-32768,-32768, + -32768,-32768,-32768,-32768,-32768,-32768, 350,-32768, 137,-32768, + 351,-32768, 305,-32768, 223,-32768,-32768, 353, 120,-32768, + -32768,-32768,-32768, 47,-32768, 137, 75,-32768, 137, 359, + -32768,-32768, 362,-32768,-32768,-32768, 1012, 1083, 1154, 179, + 110,-32768, 141,-32768, 310,-32768, 366, 371, 143,-32768, + -32768, 452, 469, 80,-32768, 360, 364, 31,-32768,-32768, + 137,-32768, 368, 373, 374, 375, 378, 379, 380,-32768, + -32768,-32768,-32768,-32768,-32768,-32768,-32768, 381, 331,-32768, + 382, 383, 384, 386,-32768,-32768,-32768,-32768,-32768, 124, + -32768, 331, 388,-32768, 331, 389, 137,-32768, 331,-32768, + -32768,-32768,-32768, 331,-32768, 390, 391, 392, 393, 396, + 398, 331, 399, 400,-32768,-32768, 402, 403, 406, 407, + 408, 331, 409, 410, 412, 416, 423,-32768,-32768,-32768, + -32768,-32768, 331, 331, 331, 331,-32768,-32768,-32768,-32768, + -32768,-32768, 178,-32768,-32768, 28,-32768,-32768,-32768,-32768, + -32768,-32768, 134, 137, 137, 137, 137, 137, 137, 137, + 331, 424, 137, 137, 137, 137, 425, 426,-32768, 137, + 137, 137, 137,-32768, 427,-32768, 432, 28,-32768, 331, + 137, 28, 137, 433, 331, 331, 28, 331, 137, 28, + 137, 435, 331, 331,-32768,-32768,-32768,-32768,-32768,-32768, + -32768,-32768, 436,-32768, 438, 202, 439, 137,-32768, 137, + 441, 442, 443, 25, 137, 445, 365, 447, 137,-32768, + 448, 137, 137, 137, 137, 137, 137, 137, 137, 449, + 365, 451, 453, 137,-32768, 458, 9, 459,-32768, -7, + 365, 462, 463, 465, 468, 37, 470, 28, 19, 365, + 471, 472, 61,-32768, 475, 137, 478, 137, 481, 482, + 484, 485, 137, 488, 137, 490,-32768, 137, 137,-32768, + -32768,-32768,-32768, 137, 137, 491, 493,-32768, 137,-32768, + 496, 497, 40, 34, 137, 137, 137, 137,-32768, 498, + -32768,-32768,-32768,-32768,-32768,-32768,-32768, 504,-32768,-32768, + -32768,-32768,-32768,-32768,-32768,-32768, 505,-32768,-32768, 507, + -32768,-32768,-32768,-32768,-32768,-32768,-32768, 197, 137, 137, + 137, 137, 137, 137, 508, 509,-32768,-32768, 137,-32768, + -32768,-32768,-32768, 510, 512, 137, 137,-32768,-32768,-32768, + -32768, 181, 192,-32768, 220,-32768, 138,-32768, 82, 516, + 521, 331,-32768, 137, 234, 137, 137, 137, 522,-32768, + -32768, 137,-32768,-32768, 526, 529, 126,-32768,-32768, 331, + 531,-32768, 331, 534,-32768, 331,-32768,-32768, 331, 535, + 137, 137, 540, 137,-32768, 544, 137, 137,-32768, 137, + -32768,-32768,-32768,-32768, 542,-32768, 546,-32768, 548, 137, + 137, 49, 137, 57, 137,-32768,-32768, 549, 551, 137, + 137, 365, 36, 365, 41, 365, 137, 137, 85,-32768, + 137, 99,-32768, 137, 137,-32768, 552, 137, 137, 553, + -32768, 554,-32768, 555, 137, 137, 331, 557,-32768, 331, + 558, 137, 39, 137,-32768, 137, 137,-32768,-32768,-32768, + 559, 560, 137, 137, 137, 137,-32768, 130,-32768,-32768, + 137,-32768,-32768,-32768, 137, 137, 137, 137, 331, 564, + 137, 137, 137, 137, 137, 137, 137, 137, 565, 566, + 137, 137, 137, 137, 137,-32768,-32768, 567, 568, 569, + 570, 137,-32768,-32768,-32768,-32768, 137, 137,-32768, 455, + 528,-32768 }; static const short yypgoto[] = { - -32768,-32768, 565,-32768,-32768,-32768,-32768, 154,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -68,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 165, + -32768,-32768, 575,-32768,-32768,-32768,-32768, 327,-32768,-32768, + -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 72,-32768, + -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 191, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768, -258,-32768,-32768, 63,-32768, - -32768,-32768, -201, -138, -131, -206, -166, -387, -226,-32768, - -32768,-32768,-32768,-32768,-32768,-32768, -256,-32768,-32768,-32768, - 74, 47,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 514, -404,-32768,-32768, 247, 3, 18, -80,-32768, -5, - 467,-32768, 335, -117, -45, 87 + -32768,-32768,-32768,-32768,-32768,-32768,-32768, -263,-32768,-32768, + 121,-32768,-32768,-32768, -395, -227, -198, -352, -260, -373, + -47,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -261,-32768, + -32768,-32768, 97, 74,-32768,-32768,-32768,-32768,-32768,-32768, + -32768,-32768, 506, -412,-32768,-32768, 268, 14, 44, -107, + -32768, -5, 494,-32768, 302, -131, 51, 92 }; -#define YYLAST 1333 +#define YYLAST 1307 static const short yytable[] = { - 49, 342, 49, 444, 468, 470, 68, 351, 13, 14, - 15, 83, 456, 83, 83, 83, 83, 83, 69, 83, - 83, 83, 83, 83, 238, 83, 91, 122, 241, 159, - 358, 329, 99, 343, 101, 317, 86, 87, 88, 89, - 90, 359, 94, 95, 96, 97, 98, 83, 100, 150, - 151, 238, 232, 241, 193, 83, 150, 151, 150, 151, - 110, 155, 157, 158, 244, 204, 161, 241, 318, 165, - 105, 117, 13, 14, 15, 13, 14, 15, 113, 126, - 132, 13, 14, 15, 13, 14, 15, 670, 6, 8, - 10, 12, 13, 14, 15, 363, 239, 83, 149, 242, - 13, 14, 15, 84, 132, 84, 84, 84, 84, 84, - 346, 84, 84, 84, 84, 84, 319, 84, 150, 151, - 148, 238, 230, 507, 509, 188, 238, 269, 85, 132, - 183, 186, 561, 102, 120, 121, 485, 241, 518, 84, - 132, 320, 230, 643, 634, 645, 631, 84, 211, 103, - 321, 322, 162, 562, 346, 323, 347, 671, 305, 188, - 324, 308, 563, 28, 379, 104, 325, 591, 106, 522, - 649, 107, 133, 380, 108, 71, 326, 109, 652, 24, - 327, 247, 72, 348, 349, 249, 681, 449, 564, 84, - 350, 79, 192, 515, 417, 458, 133, 455, 544, 328, - 347, 565, 132, 168, 625, 464, 627, 28, 545, 73, - 74, 208, 381, 291, 212, 635, 168, 191, 632, 75, - 292, 133, 561, 523, 294, 76, 605, 348, 349, 452, - 495, 111, 133, 306, 581, 77, 309, 461, 295, 78, - 347, 588, 112, 562, 296, 114, 49, 49, 49, 116, - 79, 191, 563, 228, 231, 119, 297, 234, 316, 454, - 254, 448, 123, 68, 261, 262, 364, 463, 266, 457, - 124, 496, 582, 585, 589, 69, 298, 125, 564, 583, - 586, 8, 8, 8, 12, 256, 258, 260, 12, 12, - 264, 597, 12, 268, 133, 374, 414, 272, 351, 127, - 382, 120, 121, 384, 213, 584, 587, 1, 2, 3, - 4, 214, 489, 416, 128, 388, 13, 14, 15, 330, - 389, 606, 129, 304, 150, 151, 502, 130, 396, 120, - 121, 154, 120, 121, 156, 134, 510, 139, 404, 145, - 153, 83, 83, 83, 83, 519, 218, 219, 220, 451, - 160, 164, 10, 331, 332, 24, 166, 460, 333, 251, - 252, 253, 169, 334, 410, 411, 412, 413, 170, 335, - 173, 181, 194, 195, 196, 197, 388, 199, 200, 336, - 201, 202, 71, 337, 203, 205, 338, 215, 339, 72, - 340, 206, 207, 223, 79, 216, 217, 222, 224, 226, - 183, 186, 341, 713, 235, 237, 71, 245, 183, 186, - 246, 714, 248, 72, 250, 517, 73, 74, 273, 356, - 275, 293, 311, 312, 478, 366, 75, 361, 362, 367, - 368, 369, 76, 84, 84, 84, 84, 370, 371, 152, - 73, 74, 77, 372, 373, 375, 78, 376, 71, 377, - 75, 378, 383, 421, 385, 72, 76, 79, 390, 178, - 180, 391, 432, 392, 567, 344, 77, 393, 394, 395, - 78, 397, 398, 399, 400, 401, 402, 403, 447, 405, - 406, 79, 73, 74, 407, 408, 276, 209, 442, 345, - 409, 429, 75, 436, 466, 447, 447, 437, 76, 277, - 278, 279, 280, 443, 453, 281, 462, 642, 77, 644, - 475, 646, 78, 240, 477, 243, 479, 282, 482, 483, - 13, 14, 15, 79, 484, 488, 490, 492, 501, 71, - 16, 357, 17, 503, 504, 506, 72, 283, 508, 511, - 512, 513, 514, 18, 270, 19, 516, 520, 20, 521, - 524, 21, 22, 525, 23, 526, 592, 527, 274, 83, - 24, 25, 528, 73, 74, 26, 27, 529, 532, 534, - 32, 539, 540, 75, 542, 307, 543, 550, 310, 76, - 28, 551, 595, 552, 29, 607, 612, 553, 609, 77, - 30, 611, 572, 78, 573, 575, 576, 593, 31, 594, - 554, 601, 603, 604, 79, 608, 590, 610, 613, 365, - 618, 0, 624, 264, 556, 558, 560, 620, 626, 628, - 428, 638, 639, 657, 660, 661, 650, 662, 666, 653, - 668, 225, 675, 676, 689, 0, 698, 699, 705, 706, - 580, 707, 708, 187, 665, 386, 0, 667, 0, 0, - 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 682, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 688, 0, 0, 0, + 51, 348, 51, 475, 477, 163, 246, 357, 87, 243, + 462, 85, 246, 85, 85, 85, 85, 85, 471, 85, + 85, 85, 85, 85, 451, 85, 85, 243, 154, 155, + 197, 123, 124, 463, 13, 14, 15, 93, 246, 154, + 155, 208, 237, 101, 154, 155, 104, 105, 456, 85, + 13, 14, 15, 246, 249, 243, 465, 85, 243, 677, + 106, 107, 88, 89, 90, 91, 92, 638, 96, 97, + 98, 99, 100, 113, 102, 103, 641, 247, 13, 14, + 15, 244, 135, 516, 120, 13, 14, 15, 13, 14, + 15, 502, 129, 6, 8, 10, 12, 529, 108, 514, + 85, 153, 13, 14, 15, 275, 116, 135, 86, 525, + 86, 86, 86, 86, 86, 492, 86, 86, 86, 86, + 86, 370, 86, 86, 552, 125, 650, 522, 192, 678, + 551, 652, 135, 13, 14, 15, 311, 154, 155, 639, + 154, 155, 459, 135, 187, 190, 86, 642, 325, 152, + 468, 530, 216, 352, 86, 123, 124, 109, 300, 365, + 159, 161, 162, 192, 314, 165, 386, 323, 169, 24, + 366, 598, 301, 326, 656, 387, 110, 461, 302, 136, + 111, 166, 327, 328, 503, 470, 73, 329, 659, 254, + 303, 352, 330, 74, 353, 595, 112, 86, 331, 353, + 324, 455, 252, 632, 136, 634, 28, 135, 332, 464, + 304, 172, 333, 424, 388, 335, 612, 349, 568, 688, + 75, 76, 235, 81, 172, 195, 354, 355, 596, 136, + 77, 334, 196, 356, 114, 70, 78, 353, 312, 569, + 136, 315, 235, 115, 28, 70, 79, 71, 570, 589, + 80, 51, 51, 51, 117, 568, 590, 71, 119, 122, + 195, 81, 233, 236, 354, 355, 239, 213, 421, 322, + 217, 588, 371, 297, 571, 126, 569, 592, 127, 128, + 298, 485, 591, 130, 593, 570, 218, 572, 131, 132, + 8, 8, 8, 12, 261, 263, 265, 12, 12, 269, + 357, 12, 12, 274, 136, 496, 389, 278, 133, 391, + 594, 571, 381, 1, 2, 3, 4, 336, 137, 509, + 142, 148, 259, 613, 604, 157, 266, 267, 164, 517, + 271, 272, 395, 310, 13, 14, 15, 396, 526, 123, + 124, 158, 168, 170, 282, 403, 173, 85, 85, 85, + 85, 337, 338, 24, 174, 411, 339, 283, 284, 285, + 286, 340, 10, 287, 123, 124, 160, 341, 223, 224, + 225, 177, 185, 73, 198, 288, 199, 342, 73, 200, + 74, 343, 201, 203, 344, 74, 345, 204, 346, 256, + 257, 258, 81, 205, 395, 289, 417, 418, 419, 420, + 347, 206, 207, 209, 210, 211, 212, 75, 76, 156, + 219, 220, 75, 76, 221, 222, 423, 77, 187, 190, + 227, 228, 77, 78, 229, 231, 187, 190, 78, 182, + 184, 240, 242, 79, 250, 251, 253, 80, 79, 255, + 279, 281, 80, 299, 86, 86, 86, 86, 81, 317, + 368, 318, 458, 81, 369, 720, 350, 373, 214, 73, + 467, 351, 374, 375, 376, 428, 74, 377, 378, 379, + 380, 382, 383, 384, 439, 385, 73, 390, 392, 397, + 398, 399, 400, 74, 245, 401, 248, 402, 404, 405, + 454, 406, 407, 75, 76, 408, 409, 410, 412, 413, + 649, 414, 651, 77, 653, 415, 473, 454, 454, 78, + 75, 76, 416, 436, 443, 444, 276, 449, 524, 79, + 77, 450, 460, 80, 469, 482, 78, 484, 721, 486, + 280, 489, 490, 491, 81, 495, 79, 497, 499, 508, + 80, 510, 363, 511, 13, 14, 15, 313, 513, 515, + 316, 81, 518, 519, 16, 520, 17, 73, 521, 364, + 523, 527, 528, 599, 74, 531, 85, 18, 532, 19, + 533, 534, 20, 535, 536, 21, 22, 539, 23, 541, + 33, 546, 372, 547, 24, 25, 549, 550, 557, 26, + 27, 75, 76, 619, 558, 559, 560, 362, 579, 580, + 582, 77, 583, 614, 28, 600, 616, 78, 29, 618, + 601, 574, 608, 30, 31, 602, 610, 79, 393, 611, + 615, 80, 32, 617, 620, 269, 563, 565, 567, 625, + 561, 631, 81, 657, 627, 633, 660, 635, 191, 645, + 597, 646, 664, 667, 668, 669, 673, 675, 435, 682, + 683, 672, 587, 696, 674, 705, 706, 712, 713, 714, + 715, 0, 230, 86, 0, 0, 0, 0, 0, 0, + 0, 0, 689, 0, 425, 427, 429, 430, 431, 432, + 433, 434, 0, 695, 438, 440, 441, 442, 0, 0, + 0, 445, 446, 447, 448, 0, 0, 0, 0, 0, + 0, 0, 182, 0, 184, 0, 0, 454, 0, 454, + 182, 0, 184, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, + 0, 488, 0, 0, 0, 493, 494, 0, 0, 0, + 498, 0, 0, 500, 501, 182, 184, 504, 505, 506, + 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 447, 0, 447, 0, 0, - 418, 420, 422, 423, 424, 425, 426, 427, 0, 0, - 431, 433, 434, 435, 0, 0, 0, 438, 439, 440, - 441, 0, 0, 0, 0, 0, 0, 0, 178, 0, - 180, 0, 0, 0, 0, 0, 178, 0, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 480, 0, 481, 0, 0, - 0, 486, 487, 0, 0, 0, 491, 0, 0, 493, - 494, 178, 180, 497, 498, 499, 500, 0, 0, 0, + 0, 0, 0, 0, 538, 0, 540, 0, 0, 542, + 543, 0, 0, 0, 0, 544, 545, 0, 0, 0, + 548, 0, 0, 0, 0, 0, 553, 554, 555, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 531, 0, 533, 0, 0, 535, 536, 0, 0, 0, - 0, 537, 538, 0, 0, 0, 541, 0, 0, 0, - 0, 0, 546, 547, 548, 549, 0, 0, 0, 0, + 573, 538, 575, 576, 577, 578, 0, 0, 0, 0, + 581, 0, 0, 0, 0, 0, 0, 584, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 603, 0, 605, 606, 607, + 0, 0, 0, 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 566, 531, 568, 569, - 570, 571, 0, 0, 0, 0, 574, 0, 0, 0, - 0, 0, 0, 577, 578, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 596, 0, 598, 599, 600, 0, 0, 0, 602, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 615, 617, - 0, 619, 0, 0, 621, 622, 0, 623, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 629, 630, 0, - 633, 0, 636, 0, 0, 0, 0, 640, 641, 0, - 0, 0, 0, 0, 647, 648, 0, 0, 651, 0, - 0, 654, 656, 0, 0, 658, 659, 0, 0, 0, - 0, 0, 663, 664, 0, 0, 0, 0, 0, 669, - 0, 672, 0, 673, 674, 0, 0, 0, 0, 0, - 677, 678, 679, 680, 0, 0, 0, 0, 683, 0, - 0, 0, 684, 685, 686, 687, 0, 0, 690, 691, - 692, 693, 694, 695, 696, 697, 0, 0, 700, 701, - 702, 703, 704, 0, 0, 0, 0, 0, 0, 709, - 0, 13, 14, 15, 710, 711, 50, 51, 0, 0, - 52, 16, 0, 17, 0, 53, 0, 0, 0, 0, - 54, 0, 0, 0, 18, 0, 19, 0, 0, 20, - 0, 0, 21, 22, 0, 23, 0, 0, 55, 0, - 0, 24, 25, 56, 0, 0, 26, 27, 0, 0, - 0, 0, 0, 0, 0, 57, 0, 0, 0, 58, - 59, 28, 0, 60, 61, 29, 0, 62, 0, 0, - 0, 30, 13, 14, 15, 0, 0, 50, 51, 31, - 63, 52, 16, 0, 17, 0, 53, 0, 313, 0, - 0, 54, 0, 0, 0, 18, 0, 19, 0, 0, - 20, 0, 0, 21, 22, 0, 23, 0, 0, 55, - 0, 0, 24, 25, 56, 0, 0, 26, 27, 0, - 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, - 58, 59, 28, 0, 60, 61, 29, 0, 62, 0, - 0, 0, 30, 13, 14, 15, 0, 0, 50, 51, - 31, 63, 52, 16, 0, 17, 0, 53, 0, 314, - 0, 0, 54, 0, 0, 0, 18, 0, 19, 0, - 0, 20, 0, 0, 21, 22, 0, 23, 0, 0, - 55, 0, 0, 24, 25, 56, 0, 0, 26, 27, - 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, - 0, 58, 59, 28, 0, 60, 61, 29, 0, 62, - 0, 0, 0, 30, 13, 14, 15, 0, 0, 50, - 51, 31, 63, 52, 16, 0, 17, 0, 53, 0, - 315, 0, 0, 54, 0, 0, 0, 18, 0, 19, - 0, 0, 20, 0, 0, 21, 22, 0, 23, 0, - 0, 55, 0, 0, 24, 25, 56, 0, 0, 26, - 27, 0, 0, 0, 0, 0, 0, 0, 57, 0, - 0, 0, 58, 59, 28, 0, 60, 61, 29, 0, - 62, 0, 0, 0, 30, 0, 0, 0, 0, 0, - 0, 0, 31, 63 + 0, 0, 622, 624, 0, 626, 0, 0, 628, 629, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 636, 637, 0, 640, 0, 643, 0, 0, 0, + 0, 647, 648, 0, 0, 0, 0, 0, 654, 655, + 0, 0, 658, 0, 0, 661, 663, 0, 0, 665, + 666, 0, 0, 0, 0, 0, 670, 671, 0, 0, + 0, 0, 0, 676, 0, 679, 0, 680, 681, 0, + 0, 0, 0, 0, 684, 685, 686, 687, 0, 0, + 0, 0, 690, 0, 0, 0, 691, 692, 693, 694, + 0, 0, 697, 698, 699, 700, 701, 702, 703, 704, + 0, 0, 707, 708, 709, 710, 711, 0, 0, 0, + 0, 0, 0, 716, 0, 13, 14, 15, 717, 718, + 52, 53, 0, 0, 54, 16, 0, 17, 0, 55, + 0, 0, 0, 0, 56, 0, 0, 0, 18, 0, + 19, 0, 0, 20, 0, 0, 21, 22, 0, 23, + 0, 0, 57, 0, 0, 24, 25, 58, 0, 0, + 26, 27, 0, 0, 0, 0, 0, 0, 0, 59, + 0, 0, 0, 60, 61, 28, 0, 62, 63, 29, + 0, 64, 0, 0, 30, 31, 13, 14, 15, 0, + 0, 52, 53, 32, 65, 54, 16, 0, 17, 0, + 55, 0, 319, 0, 0, 56, 0, 0, 0, 18, + 0, 19, 0, 0, 20, 0, 0, 21, 22, 0, + 23, 0, 0, 57, 0, 0, 24, 25, 58, 0, + 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, + 59, 0, 0, 0, 60, 61, 28, 0, 62, 63, + 29, 0, 64, 0, 0, 30, 31, 13, 14, 15, + 0, 0, 52, 53, 32, 65, 54, 16, 0, 17, + 0, 55, 0, 320, 0, 0, 56, 0, 0, 0, + 18, 0, 19, 0, 0, 20, 0, 0, 21, 22, + 0, 23, 0, 0, 57, 0, 0, 24, 25, 58, + 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, + 0, 59, 0, 0, 0, 60, 61, 28, 0, 62, + 63, 29, 0, 64, 0, 0, 30, 31, 13, 14, + 15, 0, 0, 52, 53, 32, 65, 54, 16, 0, + 17, 0, 55, 0, 321, 0, 0, 56, 0, 0, + 0, 18, 0, 19, 0, 0, 20, 0, 0, 21, + 22, 0, 23, 0, 0, 57, 0, 0, 24, 25, + 58, 0, 0, 26, 27, 0, 0, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 60, 61, 28, 0, + 62, 63, 29, 0, 64, 0, 0, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 32, 65 }; static const short yycheck[] = { - 5, 259, 7, 390, 408, 409, 57, 263, 3, 4, - 5, 16, 399, 18, 19, 20, 21, 22, 69, 24, - 25, 26, 27, 28, 18, 30, 23, 72, 19, 109, - 79, 257, 29, 259, 31, 57, 18, 19, 20, 21, - 22, 90, 24, 25, 26, 27, 28, 52, 30, 3, - 4, 18, 169, 19, 134, 60, 3, 4, 3, 4, - 57, 106, 107, 108, 181, 145, 111, 19, 90, 114, - 52, 68, 3, 4, 5, 3, 4, 5, 60, 76, - 85, 3, 4, 5, 3, 4, 5, 20, 1, 2, - 3, 4, 3, 4, 5, 90, 90, 102, 103, 90, - 3, 4, 5, 16, 109, 18, 19, 20, 21, 22, - 10, 24, 25, 26, 27, 28, 7, 30, 3, 4, - 102, 18, 167, 90, 90, 130, 18, 207, 89, 134, - 127, 128, 21, 26, 3, 4, 90, 19, 90, 52, - 145, 32, 187, 90, 19, 90, 18, 60, 153, 89, - 41, 42, 23, 42, 10, 46, 56, 90, 89, 164, - 51, 89, 51, 63, 42, 89, 57, 89, 89, 36, - 89, 89, 85, 51, 89, 7, 67, 89, 89, 43, - 71, 50, 14, 83, 84, 190, 89, 393, 77, 102, - 90, 82, 90, 90, 79, 401, 109, 398, 90, 90, - 56, 90, 207, 116, 608, 406, 610, 63, 90, 41, - 42, 90, 90, 50, 90, 90, 129, 130, 90, 51, - 57, 134, 21, 90, 38, 57, 90, 83, 84, 395, - 436, 89, 145, 238, 90, 67, 241, 403, 52, 71, - 56, 57, 89, 42, 58, 89, 251, 252, 253, 89, - 82, 164, 51, 166, 167, 89, 70, 170, 90, 397, - 197, 392, 89, 57, 201, 202, 271, 405, 205, 400, - 89, 437, 57, 57, 90, 69, 90, 89, 77, 64, - 64, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 90, 205, 206, 207, 292, 90, 210, 554, 89, - 305, 3, 4, 308, 90, 90, 90, 85, 86, 87, - 88, 90, 429, 358, 89, 312, 3, 4, 5, 7, - 317, 579, 89, 236, 3, 4, 443, 89, 325, 3, - 4, 5, 3, 4, 5, 89, 453, 89, 335, 89, - 89, 346, 347, 348, 349, 462, 3, 4, 5, 394, - 89, 89, 265, 41, 42, 43, 89, 402, 46, 194, - 195, 196, 89, 51, 346, 347, 348, 349, 89, 57, - 89, 89, 89, 89, 89, 89, 373, 89, 89, 67, - 89, 89, 7, 71, 89, 89, 74, 90, 76, 14, - 78, 89, 89, 89, 82, 90, 90, 90, 90, 90, - 397, 398, 90, 0, 90, 90, 7, 90, 405, 406, - 90, 0, 90, 14, 90, 460, 41, 42, 90, 265, - 90, 90, 90, 89, 79, 89, 51, 90, 90, 89, - 89, 89, 57, 346, 347, 348, 349, 89, 89, 104, - 41, 42, 67, 89, 89, 89, 71, 89, 7, 89, - 51, 89, 89, 366, 89, 14, 57, 82, 89, 124, - 125, 89, 375, 89, 532, 90, 67, 89, 89, 89, - 71, 89, 89, 89, 89, 89, 89, 89, 391, 89, - 89, 82, 41, 42, 89, 89, 39, 152, 90, 90, - 89, 89, 51, 89, 407, 408, 409, 89, 57, 52, - 53, 54, 55, 89, 89, 58, 89, 624, 67, 626, - 89, 628, 71, 178, 89, 180, 90, 70, 90, 90, - 3, 4, 5, 82, 90, 90, 90, 90, 90, 7, - 13, 90, 15, 90, 90, 90, 14, 90, 90, 90, - 90, 90, 90, 26, 209, 28, 90, 90, 31, 90, - 90, 34, 35, 90, 37, 89, 561, 89, 223, 564, - 43, 44, 89, 41, 42, 48, 49, 89, 89, 89, - 5, 90, 90, 51, 90, 240, 90, 90, 243, 57, - 63, 90, 564, 90, 67, 582, 591, 89, 585, 67, - 73, 588, 90, 71, 90, 90, 90, 89, 81, 89, - 526, 90, 90, 90, 82, 89, 559, 89, 89, 274, - 89, -1, 89, 526, 527, 528, 529, 90, 89, 89, - 373, 90, 90, 90, 90, 90, 631, 90, 89, 634, - 89, 164, 90, 90, 89, -1, 90, 90, 90, 90, - 553, 90, 90, 129, 649, 310, -1, 652, -1, -1, - -1, 564, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 670, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 681, -1, -1, -1, + 5, 264, 7, 415, 416, 112, 19, 268, 89, 18, + 405, 16, 19, 18, 19, 20, 21, 22, 413, 24, + 25, 26, 27, 28, 397, 30, 31, 18, 3, 4, + 137, 3, 4, 406, 3, 4, 5, 23, 19, 3, + 4, 148, 173, 29, 3, 4, 32, 26, 400, 54, + 3, 4, 5, 19, 185, 18, 408, 62, 18, 20, + 89, 89, 18, 19, 20, 21, 22, 18, 24, 25, + 26, 27, 28, 59, 30, 31, 19, 90, 3, 4, + 5, 90, 87, 90, 70, 3, 4, 5, 3, 4, + 5, 443, 78, 1, 2, 3, 4, 36, 54, 90, + 105, 106, 3, 4, 5, 212, 62, 112, 16, 90, + 18, 19, 20, 21, 22, 90, 24, 25, 26, 27, + 28, 90, 30, 31, 90, 74, 90, 90, 133, 90, + 90, 90, 137, 3, 4, 5, 89, 3, 4, 90, + 3, 4, 402, 148, 130, 131, 54, 90, 7, 105, + 410, 90, 157, 10, 62, 3, 4, 89, 38, 79, + 109, 110, 111, 168, 89, 114, 42, 57, 117, 43, + 90, 89, 52, 32, 89, 51, 89, 404, 58, 87, + 89, 23, 41, 42, 444, 412, 7, 46, 89, 194, + 70, 10, 51, 14, 56, 57, 89, 105, 57, 56, + 90, 399, 50, 615, 112, 617, 63, 212, 67, 407, + 90, 119, 71, 79, 90, 262, 90, 264, 21, 89, + 41, 42, 171, 82, 132, 133, 83, 84, 90, 137, + 51, 90, 90, 90, 89, 57, 57, 56, 243, 42, + 148, 246, 191, 89, 63, 57, 67, 69, 51, 57, + 71, 256, 257, 258, 89, 21, 64, 69, 89, 89, + 168, 82, 170, 171, 83, 84, 174, 90, 90, 90, + 90, 90, 277, 50, 77, 89, 42, 57, 89, 89, + 57, 79, 90, 89, 64, 51, 90, 90, 89, 89, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 561, 209, 210, 211, 212, 436, 311, 215, 89, 314, + 90, 77, 298, 85, 86, 87, 88, 7, 89, 450, + 89, 89, 201, 586, 90, 89, 205, 206, 89, 460, + 209, 210, 318, 241, 3, 4, 5, 323, 469, 3, + 4, 5, 89, 89, 39, 331, 89, 352, 353, 354, + 355, 41, 42, 43, 89, 341, 46, 52, 53, 54, + 55, 51, 270, 58, 3, 4, 5, 57, 3, 4, + 5, 89, 89, 7, 89, 70, 89, 67, 7, 89, + 14, 71, 89, 89, 74, 14, 76, 89, 78, 198, + 199, 200, 82, 89, 380, 90, 352, 353, 354, 355, + 90, 89, 89, 89, 89, 89, 89, 41, 42, 107, + 90, 90, 41, 42, 90, 90, 365, 51, 404, 405, + 90, 89, 51, 57, 90, 90, 412, 413, 57, 127, + 128, 90, 90, 67, 90, 90, 90, 71, 67, 90, + 90, 90, 71, 90, 352, 353, 354, 355, 82, 90, + 90, 89, 401, 82, 90, 0, 90, 89, 156, 7, + 409, 90, 89, 89, 89, 373, 14, 89, 89, 89, + 89, 89, 89, 89, 382, 89, 7, 89, 89, 89, + 89, 89, 89, 14, 182, 89, 184, 89, 89, 89, + 398, 89, 89, 41, 42, 89, 89, 89, 89, 89, + 631, 89, 633, 51, 635, 89, 414, 415, 416, 57, + 41, 42, 89, 89, 89, 89, 214, 90, 467, 67, + 51, 89, 89, 71, 89, 89, 57, 89, 0, 90, + 228, 90, 90, 90, 82, 90, 67, 90, 90, 90, + 71, 90, 90, 90, 3, 4, 5, 245, 90, 90, + 248, 82, 90, 90, 13, 90, 15, 7, 90, 90, + 90, 90, 90, 568, 14, 90, 571, 26, 90, 28, + 89, 89, 31, 89, 89, 34, 35, 89, 37, 89, + 5, 90, 280, 90, 43, 44, 90, 90, 90, 48, + 49, 41, 42, 598, 90, 90, 89, 270, 90, 90, + 90, 51, 90, 589, 63, 89, 592, 57, 67, 595, + 89, 539, 90, 72, 73, 571, 90, 67, 316, 90, + 89, 71, 81, 89, 89, 533, 534, 535, 536, 89, + 533, 89, 82, 638, 90, 89, 641, 89, 132, 90, + 566, 90, 90, 90, 90, 90, 89, 89, 380, 90, + 90, 656, 560, 89, 659, 90, 90, 90, 90, 90, + 90, -1, 168, 571, -1, -1, -1, -1, -1, -1, + -1, -1, 677, -1, 372, 373, 374, 375, 376, 377, + 378, 379, -1, 688, 382, 383, 384, 385, -1, -1, + -1, 389, 390, 391, 392, -1, -1, -1, -1, -1, + -1, -1, 400, -1, 402, -1, -1, 615, -1, 617, + 408, -1, 410, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 427, + -1, 429, -1, -1, -1, 433, 434, -1, -1, -1, + 438, -1, -1, 441, 442, 443, 444, 445, 446, 447, + 448, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 608, -1, 610, -1, -1, - 365, 366, 367, 368, 369, 370, 371, 372, -1, -1, - 375, 376, 377, 378, -1, -1, -1, 382, 383, 384, - 385, -1, -1, -1, -1, -1, -1, -1, 393, -1, - 395, -1, -1, -1, -1, -1, 401, -1, 403, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 420, -1, 422, -1, -1, - -1, 426, 427, -1, -1, -1, 431, -1, -1, 434, - 435, 436, 437, 438, 439, 440, 441, -1, -1, -1, + -1, -1, -1, -1, 482, -1, 484, -1, -1, 487, + 488, -1, -1, -1, -1, 493, 494, -1, -1, -1, + 498, -1, -1, -1, -1, -1, 504, 505, 506, 507, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 475, -1, 477, -1, -1, 480, 481, -1, -1, -1, - -1, 486, 487, -1, -1, -1, 491, -1, -1, -1, - -1, -1, 497, 498, 499, 500, -1, -1, -1, -1, + 538, 539, 540, 541, 542, 543, -1, -1, -1, -1, + 548, -1, -1, -1, -1, -1, -1, 555, 556, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 573, -1, 575, 576, 577, + -1, -1, -1, 581, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 531, 532, 533, 534, - 535, 536, -1, -1, -1, -1, 541, -1, -1, -1, - -1, -1, -1, 548, 549, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 566, -1, 568, 569, 570, -1, -1, -1, 574, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 593, 594, - -1, 596, -1, -1, 599, 600, -1, 602, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 612, 613, -1, - 615, -1, 617, -1, -1, -1, -1, 622, 623, -1, - -1, -1, -1, -1, 629, 630, -1, -1, 633, -1, - -1, 636, 637, -1, -1, 640, 641, -1, -1, -1, - -1, -1, 647, 648, -1, -1, -1, -1, -1, 654, - -1, 656, -1, 658, 659, -1, -1, -1, -1, -1, - 665, 666, 667, 668, -1, -1, -1, -1, 673, -1, - -1, -1, 677, 678, 679, 680, -1, -1, 683, 684, - 685, 686, 687, 688, 689, 690, -1, -1, 693, 694, - 695, 696, 697, -1, -1, -1, -1, -1, -1, 704, - -1, 3, 4, 5, 709, 710, 8, 9, -1, -1, - 12, 13, -1, 15, -1, 17, -1, -1, -1, -1, - 22, -1, -1, -1, 26, -1, 28, -1, -1, 31, - -1, -1, 34, 35, -1, 37, -1, -1, 40, -1, - -1, 43, 44, 45, -1, -1, 48, 49, -1, -1, - -1, -1, -1, -1, -1, 57, -1, -1, -1, 61, - 62, 63, -1, 65, 66, 67, -1, 69, -1, -1, - -1, 73, 3, 4, 5, -1, -1, 8, 9, 81, - 82, 12, 13, -1, 15, -1, 17, -1, 90, -1, - -1, 22, -1, -1, -1, 26, -1, 28, -1, -1, - 31, -1, -1, 34, 35, -1, 37, -1, -1, 40, - -1, -1, 43, 44, 45, -1, -1, 48, 49, -1, - -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, - 61, 62, 63, -1, 65, 66, 67, -1, 69, -1, - -1, -1, 73, 3, 4, 5, -1, -1, 8, 9, - 81, 82, 12, 13, -1, 15, -1, 17, -1, 90, - -1, -1, 22, -1, -1, -1, 26, -1, 28, -1, - -1, 31, -1, -1, 34, 35, -1, 37, -1, -1, - 40, -1, -1, 43, 44, 45, -1, -1, 48, 49, - -1, -1, -1, -1, -1, -1, -1, 57, -1, -1, - -1, 61, 62, 63, -1, 65, 66, 67, -1, 69, - -1, -1, -1, 73, 3, 4, 5, -1, -1, 8, - 9, 81, 82, 12, 13, -1, 15, -1, 17, -1, - 90, -1, -1, 22, -1, -1, -1, 26, -1, 28, - -1, -1, 31, -1, -1, 34, 35, -1, 37, -1, - -1, 40, -1, -1, 43, 44, 45, -1, -1, 48, - 49, -1, -1, -1, -1, -1, -1, -1, 57, -1, - -1, -1, 61, 62, 63, -1, 65, 66, 67, -1, - 69, -1, -1, -1, 73, -1, -1, -1, -1, -1, - -1, -1, 81, 82 + -1, -1, 600, 601, -1, 603, -1, -1, 606, 607, + -1, 609, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 619, 620, -1, 622, -1, 624, -1, -1, -1, + -1, 629, 630, -1, -1, -1, -1, -1, 636, 637, + -1, -1, 640, -1, -1, 643, 644, -1, -1, 647, + 648, -1, -1, -1, -1, -1, 654, 655, -1, -1, + -1, -1, -1, 661, -1, 663, -1, 665, 666, -1, + -1, -1, -1, -1, 672, 673, 674, 675, -1, -1, + -1, -1, 680, -1, -1, -1, 684, 685, 686, 687, + -1, -1, 690, 691, 692, 693, 694, 695, 696, 697, + -1, -1, 700, 701, 702, 703, 704, -1, -1, -1, + -1, -1, -1, 711, -1, 3, 4, 5, 716, 717, + 8, 9, -1, -1, 12, 13, -1, 15, -1, 17, + -1, -1, -1, -1, 22, -1, -1, -1, 26, -1, + 28, -1, -1, 31, -1, -1, 34, 35, -1, 37, + -1, -1, 40, -1, -1, 43, 44, 45, -1, -1, + 48, 49, -1, -1, -1, -1, -1, -1, -1, 57, + -1, -1, -1, 61, 62, 63, -1, 65, 66, 67, + -1, 69, -1, -1, 72, 73, 3, 4, 5, -1, + -1, 8, 9, 81, 82, 12, 13, -1, 15, -1, + 17, -1, 90, -1, -1, 22, -1, -1, -1, 26, + -1, 28, -1, -1, 31, -1, -1, 34, 35, -1, + 37, -1, -1, 40, -1, -1, 43, 44, 45, -1, + -1, 48, 49, -1, -1, -1, -1, -1, -1, -1, + 57, -1, -1, -1, 61, 62, 63, -1, 65, 66, + 67, -1, 69, -1, -1, 72, 73, 3, 4, 5, + -1, -1, 8, 9, 81, 82, 12, 13, -1, 15, + -1, 17, -1, 90, -1, -1, 22, -1, -1, -1, + 26, -1, 28, -1, -1, 31, -1, -1, 34, 35, + -1, 37, -1, -1, 40, -1, -1, 43, 44, 45, + -1, -1, 48, 49, -1, -1, -1, -1, -1, -1, + -1, 57, -1, -1, -1, 61, 62, 63, -1, 65, + 66, 67, -1, 69, -1, -1, 72, 73, 3, 4, + 5, -1, -1, 8, 9, 81, 82, 12, 13, -1, + 15, -1, 17, -1, 90, -1, -1, 22, -1, -1, + -1, 26, -1, 28, -1, -1, 31, -1, -1, 34, + 35, -1, 37, -1, -1, 40, -1, -1, 43, 44, + 45, -1, -1, 48, 49, -1, -1, -1, -1, -1, + -1, -1, 57, -1, -1, -1, 61, 62, 63, -1, + 65, 66, 67, -1, 69, -1, -1, 72, 73, -1, + -1, -1, -1, -1, -1, -1, 81, 82 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison/bison.simple" @@ -1752,14 +1750,14 @@ yyreduce: switch (yyn) { case 6: -#line 230 "parser.yxx" +#line 232 "parser.yxx" { assert(!egg_stack.empty()); DCAST(EggData, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 23: -#line 272 "parser.yxx" +case 24: +#line 275 "parser.yxx" { string strval = yyvsp[-1]._string; EggCoordinateSystem *cs = new EggCoordinateSystem; @@ -1773,14 +1771,14 @@ case 23: yyval._egg = cs; } break; -case 24: -#line 295 "parser.yxx" +case 25: +#line 298 "parser.yxx" { yyval._egg = new EggComment(yyvsp[-3]._string, yyvsp[-1]._string); } break; -case 25: -#line 309 "parser.yxx" +case 26: +#line 312 "parser.yxx" { string tref_name = yyvsp[-2]._string; Filename filename = yyvsp[0]._string; @@ -1794,15 +1792,15 @@ case 25: egg_stack.push_back(texture); } break; -case 26: -#line 322 "parser.yxx" +case 27: +#line 325 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 28: -#line 338 "parser.yxx" +case 29: +#line 341 "parser.yxx" { EggTexture *texture = DCAST(EggTexture, egg_stack.back()); string name = yyvsp[-3]._string; @@ -2085,8 +2083,8 @@ case 28: } } break; -case 30: -#line 631 "parser.yxx" +case 31: +#line 634 "parser.yxx" { string mref_name = yyvsp[-1]._string; EggMaterial *material = new EggMaterial(mref_name); @@ -2099,15 +2097,15 @@ case 30: egg_stack.push_back(material); } break; -case 31: -#line 643 "parser.yxx" +case 32: +#line 646 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 33: -#line 659 "parser.yxx" +case 34: +#line 662 "parser.yxx" { EggMaterial *material = DCAST(EggMaterial, egg_stack.back()); string name = yyvsp[-3]._string; @@ -2192,8 +2190,8 @@ case 33: } } break; -case 34: -#line 754 "parser.yxx" +case 35: +#line 757 "parser.yxx" { string node_name = yyvsp[-3]._string; Filename filename = yyvsp[-1]._string; @@ -2201,8 +2199,8 @@ case 34: yyval._egg = ref; } break; -case 35: -#line 761 "parser.yxx" +case 36: +#line 764 "parser.yxx" { if (cmp_nocase_uh(yyvsp[-5]._string, "group") != 0) { eggyyerror("keyword 'group' expected"); @@ -2213,8 +2211,8 @@ case 35: yyval._egg = ref; } break; -case 36: -#line 781 "parser.yxx" +case 37: +#line 784 "parser.yxx" { string name = yyvsp[0]._string; EggVertexPool *pool = NULL; @@ -2225,31 +2223,35 @@ case 36: if (pool->has_defined_vertices()) { eggyywarning("Duplicate vertex pool name " + name); pool = new EggVertexPool(name); + // The egg syntax starts counting at 1 by convention. + pool->set_highest_index(0); vertex_pools[name] = pool; } } else { pool = new EggVertexPool(name); + // The egg syntax starts counting at 1 by convention. + pool->set_highest_index(0); vertex_pools[name] = pool; } egg_stack.push_back(pool); } break; -case 37: -#line 801 "parser.yxx" +case 38: +#line 808 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 40: -#line 829 "parser.yxx" +case 41: +#line 836 "parser.yxx" { egg_stack.push_back(new EggVertex); } break; -case 41: -#line 833 "parser.yxx" +case 42: +#line 840 "parser.yxx" { PT(EggVertex) vtx = DCAST(EggVertex, egg_stack.back()); egg_stack.pop_back(); @@ -2257,8 +2259,8 @@ case 41: DCAST(EggVertexPool, egg_stack.back())->add_vertex(vtx); } break; -case 42: -#line 840 "parser.yxx" +case 43: +#line 847 "parser.yxx" { vertex_index = (int)yyvsp[0]._number; EggVertexPool *pool = DCAST(EggVertexPool, egg_stack.back()); @@ -2284,8 +2286,8 @@ case 42: egg_stack.push_back(new EggVertex); } break; -case 43: -#line 865 "parser.yxx" +case 44: +#line 872 "parser.yxx" { PT(EggVertex) vtx = DCAST(EggVertex, egg_stack.back()); egg_stack.pop_back(); @@ -2296,32 +2298,32 @@ case 43: } } break; -case 44: -#line 886 "parser.yxx" +case 45: +#line 893 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_pos(yyvsp[0]._number); } break; -case 45: -#line 890 "parser.yxx" +case 46: +#line 897 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint2d(yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 46: -#line 894 "parser.yxx" +case 47: +#line 901 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint3d(yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 47: -#line 898 "parser.yxx" +case 48: +#line 905 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint4d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 48: -#line 902 "parser.yxx" +case 49: +#line 909 "parser.yxx" { EggVertex *vertex = DCAST(EggVertex, egg_stack.back()); EggVertexUV *uv = new EggVertexUV(yyvsp[-1]._string, TexCoordd::zero()); @@ -2333,14 +2335,14 @@ case 48: } } break; -case 49: -#line 913 "parser.yxx" +case 50: +#line 920 "parser.yxx" { egg_stack.pop_back(); } break; -case 52: -#line 919 "parser.yxx" +case 53: +#line 926 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_dxyzs. insert(EggMorphVertex(yyvsp[-5]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -2349,8 +2351,8 @@ case 52: } } break; -case 53: -#line 927 "parser.yxx" +case 54: +#line 934 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_dxyzs. insert(EggMorphVertex(yyvsp[-4]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -2359,14 +2361,14 @@ case 53: } } break; -case 54: -#line 946 "parser.yxx" +case 55: +#line 953 "parser.yxx" { DCAST(EggVertexUV, egg_stack.back())->set_uv(TexCoordd(yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 55: -#line 950 "parser.yxx" +case 56: +#line 957 "parser.yxx" { bool inserted = DCAST(EggVertexUV, egg_stack.back())->_duvs. insert(EggMorphTexCoord(yyvsp[-4]._string, LVector2d(yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -2375,8 +2377,8 @@ case 55: } } break; -case 56: -#line 958 "parser.yxx" +case 57: +#line 965 "parser.yxx" { bool inserted = DCAST(EggVertexUV, egg_stack.back())->_duvs. insert(EggMorphTexCoord(yyvsp[-3]._string, LVector2d(yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -2385,14 +2387,14 @@ case 56: } } break; -case 57: -#line 976 "parser.yxx" +case 58: +#line 983 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_normal(Normald(yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 58: -#line 980 "parser.yxx" +case 59: +#line 987 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_dnormals. insert(EggMorphNormal(yyvsp[-5]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -2401,8 +2403,8 @@ case 58: } } break; -case 59: -#line 988 "parser.yxx" +case 60: +#line 995 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_dnormals. insert(EggMorphNormal(yyvsp[-4]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -2411,14 +2413,14 @@ case 59: } } break; -case 60: -#line 1006 "parser.yxx" +case 61: +#line 1013 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_color(Colorf(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 61: -#line 1010 "parser.yxx" +case 62: +#line 1017 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_drgbas. insert(EggMorphColor(yyvsp[-6]._string, LVector4f(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -2427,8 +2429,8 @@ case 61: } } break; -case 62: -#line 1018 "parser.yxx" +case 63: +#line 1025 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_drgbas. insert(EggMorphColor(yyvsp[-5]._string, LVector4f(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -2437,52 +2439,52 @@ case 62: } } break; -case 63: -#line 1036 "parser.yxx" +case 64: +#line 1043 "parser.yxx" { EggGroup *group = new EggGroup(yyvsp[0]._string); egg_stack.push_back(group); } break; -case 64: -#line 1041 "parser.yxx" +case 65: +#line 1048 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 65: -#line 1056 "parser.yxx" +case 66: +#line 1063 "parser.yxx" { EggGroup *group = new EggGroup(yyvsp[0]._string); group->set_group_type(EggGroup::GT_joint); egg_stack.push_back(group); } break; -case 66: -#line 1062 "parser.yxx" +case 67: +#line 1069 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 67: -#line 1077 "parser.yxx" +case 68: +#line 1084 "parser.yxx" { EggGroup *group = new EggGroup(yyvsp[0]._string); group->set_group_type(EggGroup::GT_instance); egg_stack.push_back(group); } break; -case 68: -#line 1083 "parser.yxx" +case 69: +#line 1090 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 70: -#line 1099 "parser.yxx" +case 71: +#line 1106 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string name = yyvsp[-3]._string; @@ -2553,8 +2555,8 @@ case 70: } } break; -case 71: -#line 1169 "parser.yxx" +case 72: +#line 1176 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = yyvsp[-1]._string; @@ -2567,15 +2569,15 @@ case 71: } } break; -case 72: -#line 1181 "parser.yxx" +case 73: +#line 1188 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_billboard_center(LPoint3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number)); } break; -case 73: -#line 1186 "parser.yxx" +case 74: +#line 1193 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string name = yyvsp[-4]._string; @@ -2583,16 +2585,16 @@ case 73: group->set_collision_name(name); } break; -case 74: -#line 1193 "parser.yxx" +case 75: +#line 1200 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_dcs_type(value!=0 ? EggGroup::DC_default : EggGroup::DC_none); } break; -case 75: -#line 1199 "parser.yxx" +case 76: +#line 1206 "parser.yxx" { // The special flavor of DCS, with { sync } or { nosync }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); @@ -2606,8 +2608,8 @@ case 75: } } break; -case 76: -#line 1212 "parser.yxx" +case 77: +#line 1219 "parser.yxx" { // The traditional flavor of DART, with { 0 } or { 1 }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); @@ -2615,8 +2617,8 @@ case 76: group->set_dart_type(value!=0 ? EggGroup::DT_default : EggGroup::DT_none); } break; -case 77: -#line 1219 "parser.yxx" +case 78: +#line 1226 "parser.yxx" { // The special flavor of DART, with { sync } or { nosync }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); @@ -2630,53 +2632,53 @@ case 77: } } break; -case 78: -#line 1232 "parser.yxx" +case 79: +#line 1239 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_switch_flag(value!=0); } break; -case 79: -#line 1238 "parser.yxx" +case 80: +#line 1245 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string type = yyvsp[-1]._string; group->add_object_type(type); } break; -case 80: -#line 1244 "parser.yxx" +case 81: +#line 1251 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_model_flag(value!=0); } break; -case 81: -#line 1250 "parser.yxx" +case 82: +#line 1257 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_tag(yyvsp[-3]._string, yyvsp[-1]._string); } break; -case 82: -#line 1255 "parser.yxx" +case 83: +#line 1262 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_texlist_flag(value!=0); } break; -case 86: -#line 1264 "parser.yxx" +case 87: +#line 1271 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 87: -#line 1278 "parser.yxx" +case 88: +#line 1285 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = yyvsp[0]._string; @@ -2697,8 +2699,8 @@ case 87: } } break; -case 89: -#line 1309 "parser.yxx" +case 90: +#line 1316 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = yyvsp[0]._string; @@ -2711,56 +2713,56 @@ case 89: } } break; -case 90: -#line 1331 "parser.yxx" +case 91: +#line 1338 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->clear_transform(); } break; -case 100: -#line 1357 "parser.yxx" +case 101: +#line 1364 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_translate(LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number)); } break; -case 101: -#line 1363 "parser.yxx" +case 102: +#line 1370 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_rotx(yyvsp[-1]._number); } break; -case 102: -#line 1369 "parser.yxx" +case 103: +#line 1376 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_roty(yyvsp[-1]._number); } break; -case 103: -#line 1375 "parser.yxx" +case 104: +#line 1382 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_rotz(yyvsp[-1]._number); } break; -case 104: -#line 1381 "parser.yxx" +case 105: +#line 1388 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_rotate(yyvsp[-4]._number, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number)); } break; -case 105: -#line 1387 "parser.yxx" +case 106: +#line 1394 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_scale(LVecBase3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number)); } break; -case 106: -#line 1391 "parser.yxx" +case 107: +#line 1398 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_uniform_scale(yyvsp[-1]._number); } break; -case 109: -#line 1406 "parser.yxx" +case 110: +#line 1413 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_matrix (LMatrix4d(yyvsp[-15]._number, yyvsp[-14]._number, yyvsp[-13]._number, yyvsp[-12]._number, @@ -2769,46 +2771,46 @@ case 109: yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 110: -#line 1425 "parser.yxx" +case 111: +#line 1432 "parser.yxx" { matrix_2d = LMatrix3d::ident_mat(); } break; -case 111: -#line 1429 "parser.yxx" +case 112: +#line 1436 "parser.yxx" { DCAST(EggTexture, egg_stack.back())->set_transform(matrix_2d); } break; -case 117: -#line 1451 "parser.yxx" +case 118: +#line 1458 "parser.yxx" { matrix_2d *= LMatrix3d::translate_mat(yyvsp[-2]._number, yyvsp[-1]._number); } break; -case 118: -#line 1457 "parser.yxx" +case 119: +#line 1464 "parser.yxx" { matrix_2d *= LMatrix3d::rotate_mat(yyvsp[-1]._number); } break; -case 119: -#line 1463 "parser.yxx" +case 120: +#line 1470 "parser.yxx" { matrix_2d *= LMatrix3d::scale_mat(yyvsp[-2]._number, yyvsp[-1]._number); } break; -case 122: -#line 1476 "parser.yxx" +case 123: +#line 1483 "parser.yxx" { matrix_2d *= LMatrix3d(yyvsp[-8]._number, yyvsp[-7]._number, yyvsp[-6]._number, yyvsp[-5]._number, yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number); } break; -case 123: -#line 1493 "parser.yxx" +case 124: +#line 1500 "parser.yxx" { if (yyvsp[-2]._egg != (EggVertexPool *)NULL) { EggVertexPool *pool = DCAST(EggVertexPool, yyvsp[-2]._egg); @@ -2831,14 +2833,14 @@ case 123: } } break; -case 124: -#line 1526 "parser.yxx" +case 125: +#line 1533 "parser.yxx" { yyval._number = 1.0; } break; -case 125: -#line 1530 "parser.yxx" +case 126: +#line 1537 "parser.yxx" { string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -2853,100 +2855,113 @@ case 125: yyval._number = result; } break; -case 127: -#line 1567 "parser.yxx" +case 128: +#line 1574 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_lod(EggSwitchConditionDistance(yyvsp[-8]._number, yyvsp[-7]._number, LPoint3d(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number))); } break; -case 128: -#line 1572 "parser.yxx" +case 129: +#line 1579 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_lod(EggSwitchConditionDistance(yyvsp[-9]._number, yyvsp[-8]._number, LPoint3d(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number), yyvsp[-7]._number)); } break; -case 129: -#line 1589 "parser.yxx" +case 130: +#line 1596 "parser.yxx" { egg_stack.push_back(new EggPolygon(yyvsp[0]._string)); } break; -case 130: -#line 1593 "parser.yxx" +case 131: +#line 1600 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 131: -#line 1608 "parser.yxx" +case 132: +#line 1615 "parser.yxx" +{ + egg_stack.push_back(new EggTriangleFan(yyvsp[0]._string)); +} + break; +case 133: +#line 1619 "parser.yxx" +{ + yyval._egg = egg_stack.back(); + egg_stack.pop_back(); +} + break; +case 134: +#line 1634 "parser.yxx" { egg_stack.push_back(new EggTriangleStrip(yyvsp[0]._string)); } break; -case 132: -#line 1612 "parser.yxx" +case 135: +#line 1638 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 133: -#line 1627 "parser.yxx" +case 136: +#line 1653 "parser.yxx" { egg_stack.push_back(new EggPoint(yyvsp[0]._string)); } break; -case 134: -#line 1631 "parser.yxx" +case 137: +#line 1657 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 135: -#line 1646 "parser.yxx" +case 138: +#line 1672 "parser.yxx" { egg_stack.push_back(new EggLine(yyvsp[0]._string)); } break; -case 136: -#line 1650 "parser.yxx" +case 139: +#line 1676 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 137: -#line 1665 "parser.yxx" +case 140: +#line 1691 "parser.yxx" { egg_stack.push_back(new EggNurbsSurface(yyvsp[0]._string)); } break; -case 138: -#line 1669 "parser.yxx" +case 141: +#line 1695 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 139: -#line 1684 "parser.yxx" +case 142: +#line 1710 "parser.yxx" { egg_stack.push_back(new EggNurbsCurve(yyvsp[0]._string)); } break; -case 140: -#line 1688 "parser.yxx" +case 143: +#line 1714 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 145: -#line 1718 "parser.yxx" +case 148: +#line 1744 "parser.yxx" { if (!egg_stack.back()->is_of_type(EggCompositePrimitive::get_class_type())) { eggyyerror("Not a composite primitive; components are not allowed here."); @@ -2961,8 +2976,8 @@ case 145: egg_stack.push_back(new EggPolygon); } break; -case 146: -#line 1732 "parser.yxx" +case 149: +#line 1758 "parser.yxx" { PT(EggPrimitive) prim = DCAST(EggPrimitive, egg_stack.back()); egg_stack.pop_back(); @@ -2970,8 +2985,8 @@ case 146: comp->set_component((int)yyvsp[-4]._number, prim); } break; -case 154: -#line 1746 "parser.yxx" +case 157: +#line 1772 "parser.yxx" { EggPrimitive *primitive = DCAST(EggPrimitive, egg_stack.back()); string name = yyvsp[-3]._string; @@ -3024,21 +3039,27 @@ case 154: } else { eggyywarning("scalar thick is only meaningful for points and lines."); } + } else if (cmp_nocase_uh(name, "perspective") == 0) { + if (primitive->is_of_type(EggPoint::get_class_type())) { + DCAST(EggPoint, primitive)->set_perspective(value != 0); + } else { + eggyywarning("scalar perspective is only meaningful for points."); + } } else { eggyywarning("Unknown scalar " + name); } } break; -case 166: -#line 1824 "parser.yxx" +case 169: +#line 1856 "parser.yxx" { EggNurbsCurve *curve = DCAST(EggNurbsCurve, yyvsp[0]._egg); EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nurbs->_curves_on_surface.push_back(curve); } break; -case 168: -#line 1831 "parser.yxx" +case 171: +#line 1863 "parser.yxx" { EggNurbsSurface *primitive = DCAST(EggNurbsSurface, egg_stack.back()); string name = yyvsp[-3]._string; @@ -3092,8 +3113,8 @@ case 168: } } break; -case 179: -#line 1905 "parser.yxx" +case 182: +#line 1937 "parser.yxx" { EggNurbsCurve *primitive = DCAST(EggNurbsCurve, egg_stack.back()); string name = yyvsp[-3]._string; @@ -3153,8 +3174,8 @@ case 179: } } break; -case 180: -#line 1974 "parser.yxx" +case 183: +#line 2006 "parser.yxx" { if (yyvsp[0]._egg != (EggTexture *)NULL) { EggTexture *texture = DCAST(EggTexture, yyvsp[0]._egg); @@ -3162,8 +3183,8 @@ case 180: } } break; -case 181: -#line 1991 "parser.yxx" +case 184: +#line 2023 "parser.yxx" { EggTexture *texture = NULL; @@ -3194,8 +3215,8 @@ case 181: DCAST(EggPrimitive, egg_stack.back())->add_texture(texture); } break; -case 182: -#line 2031 "parser.yxx" +case 185: +#line 2063 "parser.yxx" { if (yyvsp[0]._egg != (EggMaterial *)NULL) { EggMaterial *material = DCAST(EggMaterial, yyvsp[0]._egg); @@ -3203,14 +3224,14 @@ case 182: } } break; -case 183: -#line 2048 "parser.yxx" +case 186: +#line 2080 "parser.yxx" { DCAST(EggPrimitive, egg_stack.back())->set_normal(Normald(yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 184: -#line 2052 "parser.yxx" +case 187: +#line 2084 "parser.yxx" { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_dnormals. insert(EggMorphNormal(yyvsp[-5]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -3219,8 +3240,8 @@ case 184: } } break; -case 185: -#line 2060 "parser.yxx" +case 188: +#line 2092 "parser.yxx" { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_dnormals. insert(EggMorphNormal(yyvsp[-4]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -3229,14 +3250,14 @@ case 185: } } break; -case 186: -#line 2078 "parser.yxx" +case 189: +#line 2110 "parser.yxx" { DCAST(EggPrimitive, egg_stack.back())->set_color(Colorf(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 187: -#line 2082 "parser.yxx" +case 190: +#line 2114 "parser.yxx" { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_drgbas. insert(EggMorphColor(yyvsp[-6]._string, LVector4f(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -3245,8 +3266,8 @@ case 187: } } break; -case 188: -#line 2090 "parser.yxx" +case 191: +#line 2122 "parser.yxx" { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_drgbas. insert(EggMorphColor(yyvsp[-5]._string, LVector4f(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; @@ -3255,16 +3276,16 @@ case 188: } } break; -case 189: -#line 2108 "parser.yxx" +case 192: +#line 2140 "parser.yxx" { EggPrimitive *primitive = DCAST(EggPrimitive, egg_stack.back()); int value = (int)yyvsp[0]._number; primitive->set_bface_flag(value!=0); } break; -case 190: -#line 2124 "parser.yxx" +case 193: +#line 2156 "parser.yxx" { if (yyvsp[-2]._egg != (EggVertexPool *)NULL) { EggVertexPool *pool = DCAST(EggVertexPool, yyvsp[-2]._egg); @@ -3286,8 +3307,8 @@ case 190: } } break; -case 191: -#line 2155 "parser.yxx" +case 194: +#line 2187 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); int u_order = (int)yyvsp[-1]._number; @@ -3296,8 +3317,8 @@ case 191: nurbs->set_v_order(v_order); } break; -case 192: -#line 2173 "parser.yxx" +case 195: +#line 2205 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); PTA_double nums = yyvsp[0]._number_list; @@ -3308,8 +3329,8 @@ case 192: } } break; -case 193: -#line 2193 "parser.yxx" +case 196: +#line 2225 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); PTA_double nums = yyvsp[0]._number_list; @@ -3320,23 +3341,23 @@ case 193: } } break; -case 194: -#line 2213 "parser.yxx" +case 197: +#line 2245 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nurbs->_trims.push_back(EggNurbsSurface::Trim()); } break; -case 196: -#line 2229 "parser.yxx" +case 199: +#line 2261 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nassertr(!nurbs->_trims.empty(), 0); nurbs->_trims.back().push_back(EggNurbsSurface::Loop()); } break; -case 197: -#line 2235 "parser.yxx" +case 200: +#line 2267 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nassertr(!nurbs->_trims.empty(), 0); @@ -3345,16 +3366,16 @@ case 197: nurbs->_trims.back().back().push_back(curve); } break; -case 198: -#line 2254 "parser.yxx" +case 201: +#line 2286 "parser.yxx" { EggNurbsCurve *nurbs = DCAST(EggNurbsCurve, egg_stack.back()); int order = (int)yyvsp[0]._number; nurbs->set_order(order); } break; -case 199: -#line 2270 "parser.yxx" +case 202: +#line 2302 "parser.yxx" { EggNurbsCurve *nurbs = DCAST(EggNurbsCurve, egg_stack.back()); PTA_double nums = yyvsp[0]._number_list; @@ -3365,82 +3386,82 @@ case 199: } } break; -case 200: -#line 2291 "parser.yxx" +case 203: +#line 2323 "parser.yxx" { EggTable *table = new EggTable(yyvsp[0]._string); table->set_table_type(EggTable::TT_table); egg_stack.push_back(table); } break; -case 201: -#line 2297 "parser.yxx" -{ - yyval._egg = egg_stack.back(); - egg_stack.pop_back(); -} - break; -case 202: -#line 2313 "parser.yxx" -{ - EggTable *table = new EggTable(yyvsp[0]._string); - table->set_table_type(EggTable::TT_bundle); - egg_stack.push_back(table); -} - break; -case 203: -#line 2319 "parser.yxx" +case 204: +#line 2329 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; case 205: -#line 2336 "parser.yxx" +#line 2345 "parser.yxx" { - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); + EggTable *table = new EggTable(yyvsp[0]._string); + table->set_table_type(EggTable::TT_bundle); + egg_stack.push_back(table); } break; case 206: -#line 2340 "parser.yxx" -{ - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); -} - break; -case 207: -#line 2344 "parser.yxx" -{ - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); -} - break; -case 208: -#line 2348 "parser.yxx" -{ - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); -} - break; -case 209: -#line 2352 "parser.yxx" -{ - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); -} - break; -case 210: -#line 2367 "parser.yxx" -{ - EggSAnimData *anim_data = new EggSAnimData(yyvsp[0]._string); - egg_stack.push_back(anim_data); -} - break; -case 211: -#line 2372 "parser.yxx" +#line 2351 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; +case 208: +#line 2368 "parser.yxx" +{ + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); +} + break; +case 209: +#line 2372 "parser.yxx" +{ + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); +} + break; +case 210: +#line 2376 "parser.yxx" +{ + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); +} + break; +case 211: +#line 2380 "parser.yxx" +{ + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); +} + break; +case 212: +#line 2384 "parser.yxx" +{ + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); +} + break; case 213: -#line 2389 "parser.yxx" +#line 2399 "parser.yxx" +{ + EggSAnimData *anim_data = new EggSAnimData(yyvsp[0]._string); + egg_stack.push_back(anim_data); +} + break; +case 214: +#line 2404 "parser.yxx" +{ + yyval._egg = egg_stack.back(); + egg_stack.pop_back(); +} + break; +case 216: +#line 2421 "parser.yxx" { EggSAnimData *anim_data = DCAST(EggSAnimData, egg_stack.back()); string name = yyvsp[-3]._string; @@ -3453,28 +3474,28 @@ case 213: } } break; -case 214: -#line 2401 "parser.yxx" +case 217: +#line 2433 "parser.yxx" { DCAST(EggSAnimData, egg_stack.back())->set_data(yyvsp[-1]._number_list); } break; -case 215: -#line 2415 "parser.yxx" +case 218: +#line 2447 "parser.yxx" { EggXfmAnimData *anim_data = new EggXfmAnimData(yyvsp[0]._string); egg_stack.push_back(anim_data); } break; -case 216: -#line 2420 "parser.yxx" +case 219: +#line 2452 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 218: -#line 2437 "parser.yxx" +case 221: +#line 2469 "parser.yxx" { EggXfmAnimData *anim_data = DCAST(EggXfmAnimData, egg_stack.back()); string name = yyvsp[-3]._string; @@ -3492,28 +3513,28 @@ case 218: } } break; -case 219: -#line 2454 "parser.yxx" +case 222: +#line 2486 "parser.yxx" { DCAST(EggXfmAnimData, egg_stack.back())->set_data(yyvsp[-1]._number_list); } break; -case 220: -#line 2468 "parser.yxx" +case 223: +#line 2500 "parser.yxx" { EggXfmSAnim *anim_group = new EggXfmSAnim(yyvsp[0]._string); egg_stack.push_back(anim_group); } break; -case 221: -#line 2473 "parser.yxx" +case 224: +#line 2505 "parser.yxx" { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 223: -#line 2490 "parser.yxx" +case 226: +#line 2522 "parser.yxx" { EggXfmSAnim *anim_group = DCAST(EggXfmSAnim, egg_stack.back()); string name = yyvsp[-3]._string; @@ -3529,38 +3550,38 @@ case 223: } } break; -case 224: -#line 2505 "parser.yxx" +case 227: +#line 2537 "parser.yxx" { DCAST(EggXfmSAnim, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 225: -#line 2520 "parser.yxx" -{ - yyval._number_list = PTA_double::empty_array(0); -} - break; -case 226: -#line 2524 "parser.yxx" -{ - yyval._number_list.push_back((double)yyvsp[0]._number); -} - break; -case 227: -#line 2538 "parser.yxx" -{ - yyval._number_list = PTA_double::empty_array(0); -} - break; case 228: -#line 2542 "parser.yxx" +#line 2552 "parser.yxx" { - yyval._number_list.push_back(yyvsp[0]._number); + yyval._number_list = PTA_double::empty_array(0); } break; case 229: #line 2556 "parser.yxx" +{ + yyval._number_list.push_back((double)yyvsp[0]._number); +} + break; +case 230: +#line 2570 "parser.yxx" +{ + yyval._number_list = PTA_double::empty_array(0); +} + break; +case 231: +#line 2574 "parser.yxx" +{ + yyval._number_list.push_back(yyvsp[0]._number); +} + break; +case 232: +#line 2588 "parser.yxx" { string name = yyvsp[0]._string; Textures::iterator vpi = textures.find(name); @@ -3572,8 +3593,8 @@ case 229: } } break; -case 230: -#line 2577 "parser.yxx" +case 233: +#line 2609 "parser.yxx" { string name = yyvsp[0]._string; Materials::iterator vpi = materials.find(name); @@ -3585,14 +3606,16 @@ case 230: } } break; -case 231: -#line 2598 "parser.yxx" +case 234: +#line 2630 "parser.yxx" { string name = yyvsp[0]._string; VertexPools::iterator vpi = vertex_pools.find(name); if (vpi == vertex_pools.end()) { // This will become a forward reference. EggVertexPool *pool = new EggVertexPool(name); + // The egg syntax starts counting at 1 by convention. + pool->set_highest_index(0); vertex_pools[name] = pool; yyval._egg = pool; } else { @@ -3600,94 +3623,94 @@ case 231: } } break; -case 232: -#line 2622 "parser.yxx" +case 235: +#line 2656 "parser.yxx" { eggyyerror("Name required."); yyval._string = ""; } break; -case 235: -#line 2651 "parser.yxx" +case 238: +#line 2685 "parser.yxx" { eggyyerror("String required."); yyval._string = ""; } break; -case 237: -#line 2667 "parser.yxx" +case 240: +#line 2701 "parser.yxx" { yyval._string = ""; } break; -case 239: -#line 2685 "parser.yxx" -{ - yyval._string = yyvsp[0]._string; -} - break; -case 240: -#line 2689 "parser.yxx" -{ - yyval._string = yyvsp[0]._string; -} - break; case 242: -#line 2706 "parser.yxx" -{ - yyval._string = ""; -} - break; -case 243: -#line 2710 "parser.yxx" +#line 2719 "parser.yxx" { yyval._string = yyvsp[0]._string; } break; -case 244: -#line 2726 "parser.yxx" +case 243: +#line 2723 "parser.yxx" { yyval._string = yyvsp[0]._string; } break; case 245: -#line 2730 "parser.yxx" +#line 2740 "parser.yxx" +{ + yyval._string = ""; +} + break; +case 246: +#line 2744 "parser.yxx" +{ + yyval._string = yyvsp[0]._string; +} + break; +case 247: +#line 2760 "parser.yxx" +{ + yyval._string = yyvsp[0]._string; +} + break; +case 248: +#line 2764 "parser.yxx" { yyval._string = yyvsp[-1]._string + "\n" + yyvsp[0]._string; } break; -case 247: -#line 2745 "parser.yxx" +case 250: +#line 2779 "parser.yxx" { yyval._number = yyvsp[0]._ulong; } break; -case 248: -#line 2760 "parser.yxx" +case 251: +#line 2794 "parser.yxx" { yyval._number = yyvsp[0]._number; yyval._ulong = (unsigned long)yyvsp[0]._number; yyval._string = yyvsp[0]._string; } break; -case 249: -#line 2766 "parser.yxx" +case 252: +#line 2800 "parser.yxx" { yyval._number = yyvsp[0]._ulong; yyval._ulong = yyvsp[0]._ulong; yyval._string = yyvsp[0]._string; } break; -case 250: -#line 2772 "parser.yxx" +case 253: +#line 2806 "parser.yxx" { yyval._number = 0.0; yyval._ulong = 0; yyval._string = yyvsp[0]._string; } break; -case 251: -#line 2789 "parser.yxx" +case 254: +#line 2823 "parser.yxx" { int i = (int)yyvsp[0]._number; if ((double)i != yyvsp[0]._number) { @@ -3696,8 +3719,8 @@ case 251: } } break; -case 252: -#line 2797 "parser.yxx" +case 255: +#line 2831 "parser.yxx" { yyval._number = yyvsp[0]._ulong; } @@ -3935,4 +3958,4 @@ yyreturn: #endif return yyresult; } -#line 2804 "parser.yxx" +#line 2838 "parser.yxx"