/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 88
/* YYNRULES -- Number of rules. */
-#define YYNRULES 311
+#define YYNRULES 312
/* YYNRULES -- Number of states. */
#define YYNSTATES 547
197, 199, 201, 203, 205, 207, 212, 214, 216, 221,
223, 228, 233, 235, 237, 242, 247, 252, 257, 262,
264, 269, 271, 276, 278, 284, 286, 288, 293, 298,
- 300, 302, 304, 306, 308, 310, 312, 314, 316, 321,
- 323, 325, 327, 329, 336, 338, 340, 342, 344, 349,
- 351, 353, 355, 360, 365, 370, 375, 377, 379, 384,
- 389, 391, 393, 395, 397, 399, 401, 403, 404, 407,
- 412, 416, 417, 420, 422, 424, 428, 432, 434, 440,
- 442, 446, 447, 449, 451, 453, 455, 457, 459, 461,
- 463, 465, 467, 473, 477, 481, 485, 489, 493, 497,
- 501, 505, 509, 513, 517, 521, 525, 529, 533, 537,
- 541, 545, 548, 551, 554, 557, 560, 563, 567, 571,
- 576, 581, 586, 590, 592, 596, 598, 600, 601, 604,
- 609, 613, 616, 619, 620, 623, 626, 628, 632, 636,
- 640, 643, 644, 646, 647, 649, 651, 653, 655, 657,
- 659, 661, 664, 667, 669, 671, 673, 675, 677, 679,
- 680, 682, 684, 687, 689, 692, 695, 697, 699, 702,
- 705, 708, 714, 715, 718, 721, 724, 727, 730, 733,
- 737, 740, 744, 750, 756, 757, 760, 763, 766, 769,
- 776, 785, 788, 791, 794, 797, 800, 803, 809, 811,
- 813, 815, 817, 819, 820, 823, 826, 830, 831, 833,
- 836, 839, 842, 846, 849, 851, 853, 857, 860, 865,
- 867, 871, 873, 877, 879, 881, 883, 889, 891, 893,
- 895, 897, 900, 902, 905, 907, 910, 915, 920, 926,
- 937, 939
+ 300, 302, 304, 306, 308, 310, 312, 314, 316, 318,
+ 323, 325, 327, 329, 331, 338, 340, 342, 344, 346,
+ 351, 353, 355, 357, 362, 367, 372, 377, 379, 381,
+ 386, 391, 393, 395, 397, 399, 401, 403, 405, 406,
+ 409, 414, 418, 419, 422, 424, 426, 430, 434, 436,
+ 442, 444, 448, 449, 451, 453, 455, 457, 459, 461,
+ 463, 465, 467, 469, 475, 479, 483, 487, 491, 495,
+ 499, 503, 507, 511, 515, 519, 523, 527, 531, 535,
+ 539, 543, 547, 550, 553, 556, 559, 562, 565, 569,
+ 573, 578, 583, 588, 592, 594, 598, 600, 602, 603,
+ 606, 611, 615, 618, 621, 622, 625, 628, 630, 634,
+ 638, 642, 645, 646, 648, 649, 651, 653, 655, 657,
+ 659, 661, 663, 666, 669, 671, 673, 675, 677, 679,
+ 681, 682, 684, 686, 689, 691, 694, 697, 699, 701,
+ 704, 707, 710, 716, 717, 720, 723, 726, 729, 732,
+ 735, 739, 742, 746, 752, 758, 759, 762, 765, 768,
+ 771, 778, 787, 790, 793, 796, 799, 802, 805, 811,
+ 813, 815, 817, 819, 821, 822, 825, 828, 832, 833,
+ 835, 838, 841, 844, 848, 851, 853, 855, 859, 862,
+ 867, 869, 873, 875, 879, 881, 883, 885, 891, 893,
+ 895, 897, 899, 902, 904, 907, 909, 912, 917, 922,
+ 928, 939, 941
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
171, -1, 71, -1, 73, 170, 212, 171, -1, 74,
-1, 75, 170, 210, 171, -1, 76, -1, 77, 170,
65, 3, 171, -1, 80, -1, 83, -1, 88, 170,
- 208, 171, -1, 87, 170, 212, 171, -1, 90, -1,
- 94, -1, 95, -1, 96, -1, 98, -1, 99, -1,
- 100, -1, 101, -1, 102, -1, 104, 170, 257, 171,
- -1, 106, -1, 107, -1, 108, -1, 110, -1, 111,
- 170, 212, 146, 212, 171, -1, 112, -1, 115, -1,
- 116, -1, 117, -1, 121, 170, 208, 171, -1, 124,
- -1, 127, -1, 128, -1, 131, 170, 210, 171, -1,
- 132, 170, 259, 171, -1, 133, 170, 259, 171, -1,
- 139, 170, 200, 171, -1, 140, -1, 141, -1, 142,
- 170, 262, 171, -1, 145, 170, 259, 171, -1, 257,
- -1, 10, -1, 8, -1, 35, -1, 62, -1, 103,
- -1, 126, -1, -1, 202, 203, -1, 34, 212, 148,
- 218, -1, 46, 148, 218, -1, -1, 205, 146, -1,
- 205, -1, 206, -1, 205, 146, 206, -1, 224, 174,
- 212, -1, 224, -1, 57, 223, 172, 204, 173, -1,
- 209, -1, 208, 146, 209, -1, -1, 210, -1, 5,
- -1, 6, -1, 7, -1, 61, -1, 97, -1, 134,
- -1, 8, -1, 9, -1, 3, -1, 210, 147, 210,
- 148, 210, -1, 210, 19, 210, -1, 210, 20, 210,
- -1, 210, 149, 210, -1, 210, 150, 210, -1, 210,
- 151, 210, -1, 210, 15, 210, -1, 210, 16, 210,
- -1, 210, 153, 210, -1, 210, 152, 210, -1, 210,
- 17, 210, -1, 210, 18, 210, -1, 210, 12, 210,
- -1, 210, 13, 210, -1, 210, 155, 210, -1, 210,
- 154, 210, -1, 210, 158, 210, -1, 210, 156, 210,
- -1, 210, 157, 210, -1, 159, 210, -1, 160, 210,
- -1, 155, 210, -1, 154, 210, -1, 151, 210, -1,
- 156, 210, -1, 210, 14, 3, -1, 210, 166, 3,
- -1, 170, 259, 171, 210, -1, 122, 170, 259, 171,
- -1, 210, 167, 210, 168, -1, 170, 210, 171, -1,
- 212, -1, 211, 146, 212, -1, 210, -1, 210, -1,
- -1, 214, 215, -1, 195, 250, 255, 169, -1, 195,
- 261, 169, -1, 219, 169, -1, 196, 169, -1, -1,
- 217, 216, -1, 219, 169, -1, 169, -1, 195, 250,
- 253, -1, 195, 250, 253, -1, 196, 250, 256, -1,
- 250, 256, -1, -1, 224, -1, -1, 3, -1, 4,
- -1, 3, -1, 4, -1, 30, -1, 144, -1, 227,
- -1, 120, 227, -1, 138, 227, -1, 138, -1, 63,
- -1, 53, -1, 28, -1, 58, -1, 65, -1, -1,
- 84, -1, 84, -1, 119, 226, -1, 123, -1, 91,
- 226, -1, 72, 226, -1, 85, -1, 36, -1, 37,
- 3, -1, 37, 4, -1, 196, 228, -1, 229, 172,
- 231, 173, 180, -1, -1, 231, 232, -1, 195, 242,
- -1, 51, 3, -1, 51, 4, -1, 196, 233, -1,
- 105, 148, -1, 235, 219, 169, -1, 92, 148, -1,
- 236, 220, 169, -1, 234, 172, 235, 236, 173, -1,
- 234, 172, 239, 169, 173, -1, -1, 148, 4, -1,
- 86, 3, -1, 86, 4, -1, 196, 239, -1, 240,
- 238, 172, 179, 173, 180, -1, 240, 148, 3, 172,
- 185, 179, 173, 180, -1, 237, 180, -1, 239, 169,
- -1, 233, 169, -1, 93, 3, -1, 93, 4, -1,
- 196, 243, -1, 244, 172, 179, 173, 180, -1, 60,
- -1, 125, -1, 114, -1, 82, -1, 40, -1, -1,
- 249, 248, -1, 259, 251, -1, 252, 259, 251, -1,
- -1, 252, -1, 248, 251, -1, 247, 251, -1, 246,
- 251, -1, 156, 249, 253, -1, 201, 253, -1, 254,
- -1, 224, -1, 170, 253, 171, -1, 254, 194, -1,
- 254, 170, 190, 171, -1, 253, -1, 255, 146, 253,
- -1, 253, -1, 253, 174, 213, -1, 113, -1, 137,
- -1, 109, -1, 129, 223, 172, 214, 173, -1, 143,
- -1, 4, -1, 225, -1, 207, -1, 57, 3, -1,
- 258, -1, 129, 3, -1, 261, -1, 136, 3, -1,
- 118, 170, 259, 171, -1, 135, 195, 250, 255, -1,
- 136, 223, 172, 217, 173, -1, 136, 223, 130, 170,
- 219, 171, 222, 172, 202, 173, -1, 5, -1, 5,
- 166, 5, -1
+ 208, 171, -1, 87, 170, 212, 171, -1, 87, -1,
+ 90, -1, 94, -1, 95, -1, 96, -1, 98, -1,
+ 99, -1, 100, -1, 101, -1, 102, -1, 104, 170,
+ 257, 171, -1, 106, -1, 107, -1, 108, -1, 110,
+ -1, 111, 170, 212, 146, 212, 171, -1, 112, -1,
+ 115, -1, 116, -1, 117, -1, 121, 170, 208, 171,
+ -1, 124, -1, 127, -1, 128, -1, 131, 170, 210,
+ 171, -1, 132, 170, 259, 171, -1, 133, 170, 259,
+ 171, -1, 139, 170, 200, 171, -1, 140, -1, 141,
+ -1, 142, 170, 262, 171, -1, 145, 170, 259, 171,
+ -1, 257, -1, 10, -1, 8, -1, 35, -1, 62,
+ -1, 103, -1, 126, -1, -1, 202, 203, -1, 34,
+ 212, 148, 218, -1, 46, 148, 218, -1, -1, 205,
+ 146, -1, 205, -1, 206, -1, 205, 146, 206, -1,
+ 224, 174, 212, -1, 224, -1, 57, 223, 172, 204,
+ 173, -1, 209, -1, 208, 146, 209, -1, -1, 210,
+ -1, 5, -1, 6, -1, 7, -1, 61, -1, 97,
+ -1, 134, -1, 8, -1, 9, -1, 3, -1, 210,
+ 147, 210, 148, 210, -1, 210, 19, 210, -1, 210,
+ 20, 210, -1, 210, 149, 210, -1, 210, 150, 210,
+ -1, 210, 151, 210, -1, 210, 15, 210, -1, 210,
+ 16, 210, -1, 210, 153, 210, -1, 210, 152, 210,
+ -1, 210, 17, 210, -1, 210, 18, 210, -1, 210,
+ 12, 210, -1, 210, 13, 210, -1, 210, 155, 210,
+ -1, 210, 154, 210, -1, 210, 158, 210, -1, 210,
+ 156, 210, -1, 210, 157, 210, -1, 159, 210, -1,
+ 160, 210, -1, 155, 210, -1, 154, 210, -1, 151,
+ 210, -1, 156, 210, -1, 210, 14, 3, -1, 210,
+ 166, 3, -1, 170, 259, 171, 210, -1, 122, 170,
+ 259, 171, -1, 210, 167, 210, 168, -1, 170, 210,
+ 171, -1, 212, -1, 211, 146, 212, -1, 210, -1,
+ 210, -1, -1, 214, 215, -1, 195, 250, 255, 169,
+ -1, 195, 261, 169, -1, 219, 169, -1, 196, 169,
+ -1, -1, 217, 216, -1, 219, 169, -1, 169, -1,
+ 195, 250, 253, -1, 195, 250, 253, -1, 196, 250,
+ 256, -1, 250, 256, -1, -1, 224, -1, -1, 3,
+ -1, 4, -1, 3, -1, 4, -1, 30, -1, 144,
+ -1, 227, -1, 120, 227, -1, 138, 227, -1, 138,
+ -1, 63, -1, 53, -1, 28, -1, 58, -1, 65,
+ -1, -1, 84, -1, 84, -1, 119, 226, -1, 123,
+ -1, 91, 226, -1, 72, 226, -1, 85, -1, 36,
+ -1, 37, 3, -1, 37, 4, -1, 196, 228, -1,
+ 229, 172, 231, 173, 180, -1, -1, 231, 232, -1,
+ 195, 242, -1, 51, 3, -1, 51, 4, -1, 196,
+ 233, -1, 105, 148, -1, 235, 219, 169, -1, 92,
+ 148, -1, 236, 220, 169, -1, 234, 172, 235, 236,
+ 173, -1, 234, 172, 239, 169, 173, -1, -1, 148,
+ 4, -1, 86, 3, -1, 86, 4, -1, 196, 239,
+ -1, 240, 238, 172, 179, 173, 180, -1, 240, 148,
+ 3, 172, 185, 179, 173, 180, -1, 237, 180, -1,
+ 239, 169, -1, 233, 169, -1, 93, 3, -1, 93,
+ 4, -1, 196, 243, -1, 244, 172, 179, 173, 180,
+ -1, 60, -1, 125, -1, 114, -1, 82, -1, 40,
+ -1, -1, 249, 248, -1, 259, 251, -1, 252, 259,
+ 251, -1, -1, 252, -1, 248, 251, -1, 247, 251,
+ -1, 246, 251, -1, 156, 249, 253, -1, 201, 253,
+ -1, 254, -1, 224, -1, 170, 253, 171, -1, 254,
+ 194, -1, 254, 170, 190, 171, -1, 253, -1, 255,
+ 146, 253, -1, 253, -1, 253, 174, 213, -1, 113,
+ -1, 137, -1, 109, -1, 129, 223, 172, 214, 173,
+ -1, 143, -1, 4, -1, 225, -1, 207, -1, 57,
+ 3, -1, 258, -1, 129, 3, -1, 261, -1, 136,
+ 3, -1, 118, 170, 259, 171, -1, 135, 195, 250,
+ 255, -1, 136, 223, 172, 217, 173, -1, 136, 223,
+ 130, 170, 219, 171, 222, 172, 202, 173, -1, 5,
+ -1, 5, 166, 5, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
513, 514, 515, 516, 517, 518, 519, 520, 521, 522,
- 523, 524, 525, 526, 530, 531, 532, 533, 534, 535,
+ 523, 524, 525, 526, 527, 531, 532, 533, 534, 535,
536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
- 546, 550, 551, 556, 557, 558, 559, 562, 563, 566,
- 570, 576, 577, 578, 581, 585, 594, 598, 603, 606,
- 607, 620, 621, 624, 625, 626, 627, 628, 629, 630,
+ 546, 547, 551, 552, 557, 558, 559, 560, 563, 564,
+ 567, 571, 577, 578, 579, 582, 586, 595, 599, 604,
+ 607, 608, 621, 622, 625, 626, 627, 628, 629, 630,
631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
651, 652, 653, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 666, 667, 670, 676, 682, 683, 686,
- 691, 698, 699, 702, 703, 707, 708, 711, 719, 728,
- 734, 740, 741, 744, 745, 746, 749, 751, 754, 755,
- 756, 757, 758, 759, 760, 761, 762, 763, 764, 767,
- 768, 771, 772, 773, 774, 775, 776, 777, 780, 781,
- 789, 795, 799, 800, 804, 807, 808, 811, 821, 822,
- 825, 826, 829, 835, 841, 842, 845, 846, 849, 860,
- 867, 873, 877, 878, 881, 882, 885, 890, 897, 898,
- 899, 903, 907, 910, 911, 914, 915, 919, 920, 924,
- 925, 926, 930, 932, 933, 937, 938, 939, 940, 947,
- 948, 952, 953, 957, 958, 959, 962, 965, 966, 967,
- 968, 969, 970, 971, 972, 973, 974, 977, 983, 985,
- 991, 992
+ 661, 662, 663, 664, 667, 668, 671, 677, 683, 684,
+ 687, 692, 699, 700, 703, 704, 708, 709, 712, 720,
+ 729, 735, 741, 742, 745, 746, 747, 750, 752, 755,
+ 756, 757, 758, 759, 760, 761, 762, 763, 764, 765,
+ 768, 769, 772, 773, 774, 775, 776, 777, 778, 781,
+ 782, 790, 796, 800, 801, 805, 808, 809, 812, 822,
+ 823, 826, 827, 830, 836, 842, 843, 846, 847, 850,
+ 861, 868, 874, 878, 879, 882, 883, 886, 891, 898,
+ 899, 900, 904, 908, 911, 912, 915, 916, 920, 921,
+ 925, 926, 927, 931, 933, 934, 938, 939, 940, 941,
+ 948, 949, 953, 954, 958, 959, 960, 963, 966, 967,
+ 968, 969, 970, 971, 972, 973, 974, 975, 978, 984,
+ 986, 992, 993
};
#endif
199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 200, 200, 201, 201, 201, 201, 202, 202, 203,
- 203, 204, 204, 204, 205, 205, 206, 206, 207, 208,
- 208, 209, 209, 210, 210, 210, 210, 210, 210, 210,
+ 199, 199, 200, 200, 201, 201, 201, 201, 202, 202,
+ 203, 203, 204, 204, 204, 205, 205, 206, 206, 207,
+ 208, 208, 209, 209, 210, 210, 210, 210, 210, 210,
210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
- 210, 210, 210, 211, 211, 212, 213, 214, 214, 215,
- 215, 216, 216, 217, 217, 218, 218, 219, 220, 221,
- 221, 222, 222, 223, 223, 223, 224, 224, 225, 225,
- 225, 225, 225, 225, 225, 225, 225, 225, 225, 226,
- 226, 227, 227, 227, 227, 227, 227, 227, 228, 228,
- 229, 230, 231, 231, 232, 233, 233, 234, 235, 235,
- 236, 236, 237, 237, 238, 238, 239, 239, 240, 241,
- 241, 241, 242, 242, 243, 243, 244, 245, 246, 246,
- 246, 247, 248, 249, 249, 250, 250, 251, 251, 252,
- 252, 252, 253, 253, 253, 254, 254, 254, 254, 255,
- 255, 256, 256, 257, 257, 257, 258, 259, 259, 259,
- 259, 259, 259, 259, 259, 259, 259, 260, 261, 261,
- 262, 262
+ 210, 210, 210, 210, 211, 211, 212, 213, 214, 214,
+ 215, 215, 216, 216, 217, 217, 218, 218, 219, 220,
+ 221, 221, 222, 222, 223, 223, 223, 224, 224, 225,
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
+ 226, 226, 227, 227, 227, 227, 227, 227, 227, 228,
+ 228, 229, 230, 231, 231, 232, 233, 233, 234, 235,
+ 235, 236, 236, 237, 237, 238, 238, 239, 239, 240,
+ 241, 241, 241, 242, 242, 243, 243, 244, 245, 246,
+ 246, 246, 247, 248, 249, 249, 250, 250, 251, 251,
+ 252, 252, 252, 253, 253, 253, 254, 254, 254, 254,
+ 255, 255, 256, 256, 257, 257, 257, 258, 259, 259,
+ 259, 259, 259, 259, 259, 259, 259, 259, 260, 261,
+ 261, 262, 262
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1, 1, 1, 1, 1, 4, 1, 1, 4, 1,
4, 4, 1, 1, 4, 4, 4, 4, 4, 1,
4, 1, 4, 1, 5, 1, 1, 4, 4, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
- 1, 1, 1, 6, 1, 1, 1, 1, 4, 1,
- 1, 1, 4, 4, 4, 4, 1, 1, 4, 4,
- 1, 1, 1, 1, 1, 1, 1, 0, 2, 4,
- 3, 0, 2, 1, 1, 3, 3, 1, 5, 1,
- 3, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 5, 3, 3, 3, 3, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
+ 1, 1, 1, 1, 6, 1, 1, 1, 1, 4,
+ 1, 1, 1, 4, 4, 4, 4, 1, 1, 4,
+ 4, 1, 1, 1, 1, 1, 1, 1, 0, 2,
+ 4, 3, 0, 2, 1, 1, 3, 3, 1, 5,
+ 1, 3, 0, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 5, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 2, 2, 2, 2, 2, 2, 3, 3, 4,
- 4, 4, 3, 1, 3, 1, 1, 0, 2, 4,
- 3, 2, 2, 0, 2, 2, 1, 3, 3, 3,
- 2, 0, 1, 0, 1, 1, 1, 1, 1, 1,
- 1, 2, 2, 1, 1, 1, 1, 1, 1, 0,
- 1, 1, 2, 1, 2, 2, 1, 1, 2, 2,
- 2, 5, 0, 2, 2, 2, 2, 2, 2, 3,
- 2, 3, 5, 5, 0, 2, 2, 2, 2, 6,
- 8, 2, 2, 2, 2, 2, 2, 5, 1, 1,
- 1, 1, 1, 0, 2, 2, 3, 0, 1, 2,
- 2, 2, 3, 2, 1, 1, 3, 2, 4, 1,
- 3, 1, 3, 1, 1, 1, 5, 1, 1, 1,
- 1, 2, 1, 2, 1, 2, 4, 4, 5, 10,
- 1, 3
+ 3, 3, 2, 2, 2, 2, 2, 2, 3, 3,
+ 4, 4, 4, 3, 1, 3, 1, 1, 0, 2,
+ 4, 3, 2, 2, 0, 2, 2, 1, 3, 3,
+ 3, 2, 0, 1, 0, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 2, 1, 2, 2, 1, 1, 2,
+ 2, 2, 5, 0, 2, 2, 2, 2, 2, 2,
+ 3, 2, 3, 5, 5, 0, 2, 2, 2, 2,
+ 6, 8, 2, 2, 2, 2, 2, 2, 5, 1,
+ 1, 1, 1, 1, 0, 2, 2, 3, 0, 1,
+ 2, 2, 2, 3, 2, 1, 1, 3, 2, 4,
+ 1, 3, 1, 3, 1, 1, 1, 5, 1, 1,
+ 1, 1, 2, 1, 2, 1, 2, 4, 4, 5,
+ 10, 1, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 3, 0, 2, 1, 298, 226, 218, 237, 0, 272,
- 0, 0, 225, 213, 227, 268, 224, 228, 229, 0,
- 271, 231, 236, 0, 229, 270, 0, 229, 0, 233,
- 269, 213, 52, 213, 223, 297, 219, 60, 10, 0,
- 24, 11, 27, 11, 9, 0, 300, 0, 299, 220,
- 0, 0, 7, 0, 0, 22, 0, 254, 5, 4,
- 0, 8, 277, 277, 277, 0, 0, 302, 277, 0,
- 304, 238, 239, 0, 245, 246, 301, 215, 0, 230,
- 235, 0, 256, 257, 234, 0, 232, 221, 303, 0,
- 0, 53, 305, 0, 222, 61, 62, 63, 64, 65,
+ 3, 0, 2, 1, 299, 227, 219, 238, 0, 273,
+ 0, 0, 226, 214, 228, 269, 225, 229, 230, 0,
+ 272, 232, 237, 0, 230, 271, 0, 230, 0, 234,
+ 270, 214, 52, 214, 224, 298, 220, 60, 10, 0,
+ 24, 11, 27, 11, 9, 0, 301, 0, 300, 221,
+ 0, 0, 7, 0, 0, 22, 0, 255, 5, 4,
+ 0, 8, 278, 278, 278, 0, 0, 303, 278, 0,
+ 305, 239, 240, 0, 246, 247, 302, 216, 0, 231,
+ 236, 0, 257, 258, 235, 0, 233, 222, 304, 0,
+ 0, 53, 306, 0, 223, 61, 62, 63, 64, 65,
66, 0, 0, 69, 70, 71, 72, 73, 74, 0,
76, 77, 0, 79, 0, 0, 82, 83, 0, 0,
0, 0, 0, 89, 0, 91, 0, 93, 0, 95,
- 96, 0, 0, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 0, 109, 110, 111, 295, 112, 0, 114,
- 293, 115, 116, 117, 0, 119, 120, 121, 0, 0,
- 0, 294, 0, 126, 127, 0, 0, 0, 55, 130,
- 25, 0, 0, 0, 0, 0, 300, 240, 247, 258,
- 266, 0, 302, 304, 26, 6, 242, 263, 0, 23,
- 261, 262, 0, 0, 20, 281, 278, 280, 279, 216,
- 217, 133, 134, 135, 136, 273, 0, 0, 285, 291,
- 284, 210, 300, 302, 277, 304, 275, 28, 0, 141,
- 36, 0, 197, 0, 0, 203, 0, 0, 0, 0,
+ 96, 99, 0, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 0, 110, 111, 112, 296, 113, 0, 115,
+ 294, 116, 117, 118, 0, 120, 121, 122, 0, 0,
+ 0, 295, 0, 127, 128, 0, 0, 0, 55, 131,
+ 25, 0, 0, 0, 0, 0, 301, 241, 248, 259,
+ 267, 0, 303, 305, 26, 6, 243, 264, 0, 23,
+ 262, 263, 0, 0, 20, 282, 279, 281, 280, 217,
+ 218, 134, 135, 136, 137, 274, 0, 0, 286, 292,
+ 285, 211, 301, 303, 278, 305, 276, 28, 0, 142,
+ 36, 0, 198, 0, 0, 204, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 151, 0, 0, 151, 0, 0, 0, 0, 0,
+ 0, 152, 0, 0, 152, 0, 0, 0, 0, 0,
0, 60, 54, 37, 0, 17, 18, 19, 0, 15,
- 13, 12, 16, 22, 39, 264, 265, 40, 209, 52,
- 0, 52, 0, 0, 255, 20, 0, 0, 0, 283,
- 0, 151, 42, 287, 276, 35, 0, 143, 144, 147,
- 306, 52, 289, 307, 52, 52, 0, 161, 153, 154,
- 155, 159, 160, 156, 157, 0, 158, 0, 0, 0,
- 0, 0, 0, 0, 195, 0, 193, 196, 0, 0,
+ 13, 12, 16, 22, 39, 265, 266, 40, 210, 52,
+ 0, 52, 0, 0, 256, 20, 0, 0, 0, 284,
+ 0, 152, 42, 288, 277, 35, 0, 144, 145, 148,
+ 307, 52, 290, 308, 52, 52, 0, 162, 154, 155,
+ 156, 160, 161, 157, 158, 0, 159, 0, 0, 0,
+ 0, 0, 0, 0, 196, 0, 194, 197, 0, 0,
58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 149, 152, 0, 0, 0, 0, 0,
- 0, 132, 131, 0, 310, 0, 0, 56, 60, 0,
- 14, 41, 22, 0, 243, 248, 0, 0, 0, 52,
- 0, 0, 0, 22, 21, 0, 274, 282, 286, 292,
- 0, 0, 297, 0, 47, 43, 45, 0, 0, 148,
- 142, 0, 296, 0, 198, 0, 0, 308, 53, 204,
- 0, 67, 0, 185, 184, 183, 186, 181, 182, 0,
+ 0, 0, 0, 150, 153, 0, 0, 0, 0, 0,
+ 0, 133, 132, 0, 311, 0, 0, 56, 60, 0,
+ 14, 41, 22, 0, 244, 249, 0, 0, 0, 52,
+ 0, 0, 0, 22, 21, 0, 275, 283, 287, 293,
+ 0, 0, 298, 0, 47, 43, 45, 0, 0, 149,
+ 143, 0, 297, 0, 199, 0, 0, 309, 53, 205,
+ 0, 67, 0, 186, 185, 184, 187, 182, 183, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 68, 75, 78, 0, 80, 81,
- 84, 85, 86, 87, 88, 90, 92, 0, 98, 151,
- 97, 108, 0, 118, 122, 123, 124, 125, 0, 128,
- 129, 57, 0, 241, 244, 250, 0, 249, 252, 0,
- 0, 253, 20, 22, 267, 51, 50, 288, 0, 0,
- 49, 145, 146, 0, 304, 290, 211, 202, 201, 0,
- 192, 0, 174, 175, 187, 168, 169, 172, 173, 163,
- 164, 0, 165, 166, 167, 171, 170, 177, 176, 179,
- 180, 178, 188, 0, 194, 59, 94, 150, 0, 311,
- 22, 207, 0, 251, 0, 259, 46, 48, 0, 200,
- 0, 212, 190, 189, 0, 191, 113, 38, 208, 22,
- 199, 137, 162, 260, 0, 0, 0, 309, 138, 0,
- 52, 52, 206, 140, 0, 139, 205
+ 84, 85, 86, 87, 88, 90, 92, 0, 98, 152,
+ 97, 109, 0, 119, 123, 124, 125, 126, 0, 129,
+ 130, 57, 0, 242, 245, 251, 0, 250, 253, 0,
+ 0, 254, 20, 22, 268, 51, 50, 289, 0, 0,
+ 49, 146, 147, 0, 305, 291, 212, 203, 202, 0,
+ 193, 0, 175, 176, 188, 169, 170, 173, 174, 164,
+ 165, 0, 166, 167, 168, 172, 171, 178, 177, 180,
+ 181, 179, 189, 0, 195, 59, 94, 151, 0, 312,
+ 22, 208, 0, 252, 0, 260, 46, 48, 0, 201,
+ 0, 213, 191, 190, 0, 192, 114, 38, 209, 22,
+ 200, 138, 163, 261, 0, 0, 0, 310, 139, 0,
+ 52, 52, 207, 141, 0, 140, 206
};
/* YYDEFGOTO[NTERM-NUM]. */
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -215
+#define YYTABLE_NINF -216
static const yytype_int16 yytable[] =
{
45, 181, 70, 59, 46, 90, 351, 362, 67, 214,
38, 323, 278, 279, 326, 179, 328, 371, 535, 331,
289, 347, 336, 356, 322, 50, 358, 296, 221, 292,
- 536, 196, 196, 196, -214, 9, 224, 196, 281, 11,
+ 536, 196, 196, 196, -215, 9, 224, 196, 281, 11,
423, 282, 3, 403, 427, 183, 223, 176, 403, 386,
390, 182, 73, 251, 146, 15, 439, 297, 150, 298,
299, 300, 301, 302, 439, 424, 197, 198, 177, 428,
- 79, 216, -44, 369, 23, 252, -214, 20, 225, 385,
+ 79, 216, -44, 369, 23, 252, -215, 20, 225, 385,
23, 440, 161, 367, 84, 71, 72, 86, 297, 443,
298, 299, 300, 301, 302, 453, 81, -44, 37, 270,
85, 37, 530, 37, 199, 200, 464, 352, 403, 25,
472, 191, -30, 202, 264, 401, 402, 403, 194, 45,
45, 70, 70, 46, 46, 507, 305, 67, 67, 255,
255, 289, 304, 196, 470, 418, 419, 420, 306, 339,
- 340, 475, -214, 346, 514, 421, 422, 217, 219, -31,
+ 340, 475, -215, 346, 514, 421, 422, 217, 219, -31,
421, 422, 504, 222, 203, 307, 515, 305, 308, 309,
310, 226, 220, 311, 312, 317, 227, 284, 317, 306,
228, 508, 465, 229, 313, 329, 230, 204, 334, 231,
/* Line 1455 of yacc.c */
#line 512 "parser.y"
- { (yyval.attr) = make_attr(ATTR_LOCAL); ;}
+ { (yyval.attr) = make_attr(ATTR_PARAMLCID); ;}
break;
case 100:
/* Line 1455 of yacc.c */
#line 513 "parser.y"
- { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); ;}
+ { (yyval.attr) = make_attr(ATTR_LOCAL); ;}
break;
case 101:
/* Line 1455 of yacc.c */
#line 514 "parser.y"
- { (yyval.attr) = make_attr(ATTR_NONCREATABLE); ;}
+ { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); ;}
break;
case 102:
/* Line 1455 of yacc.c */
#line 515 "parser.y"
- { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); ;}
+ { (yyval.attr) = make_attr(ATTR_NONCREATABLE); ;}
break;
case 103:
/* Line 1455 of yacc.c */
#line 516 "parser.y"
- { (yyval.attr) = make_attr(ATTR_OBJECT); ;}
+ { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); ;}
break;
case 104:
/* Line 1455 of yacc.c */
#line 517 "parser.y"
- { (yyval.attr) = make_attr(ATTR_ODL); ;}
+ { (yyval.attr) = make_attr(ATTR_OBJECT); ;}
break;
case 105:
/* Line 1455 of yacc.c */
#line 518 "parser.y"
- { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); ;}
+ { (yyval.attr) = make_attr(ATTR_ODL); ;}
break;
case 106:
/* Line 1455 of yacc.c */
#line 519 "parser.y"
- { (yyval.attr) = make_attr(ATTR_OPTIONAL); ;}
+ { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); ;}
break;
case 107:
/* Line 1455 of yacc.c */
#line 520 "parser.y"
- { (yyval.attr) = make_attr(ATTR_OUT); ;}
+ { (yyval.attr) = make_attr(ATTR_OPTIONAL); ;}
break;
case 108:
/* Line 1455 of yacc.c */
#line 521 "parser.y"
- { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[(3) - (4)].num)); ;}
+ { (yyval.attr) = make_attr(ATTR_OUT); ;}
break;
case 109:
/* Line 1455 of yacc.c */
#line 522 "parser.y"
- { (yyval.attr) = make_attr(ATTR_PROPGET); ;}
+ { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[(3) - (4)].num)); ;}
break;
case 110:
/* Line 1455 of yacc.c */
#line 523 "parser.y"
- { (yyval.attr) = make_attr(ATTR_PROPPUT); ;}
+ { (yyval.attr) = make_attr(ATTR_PROPGET); ;}
break;
case 111:
/* Line 1455 of yacc.c */
#line 524 "parser.y"
- { (yyval.attr) = make_attr(ATTR_PROPPUTREF); ;}
+ { (yyval.attr) = make_attr(ATTR_PROPPUT); ;}
break;
case 112:
/* Line 1455 of yacc.c */
#line 525 "parser.y"
- { (yyval.attr) = make_attr(ATTR_PUBLIC); ;}
+ { (yyval.attr) = make_attr(ATTR_PROPPUTREF); ;}
break;
case 113:
/* Line 1455 of yacc.c */
-#line 527 "parser.y"
- { expr_list_t *list = append_expr( NULL, (yyvsp[(3) - (6)].expr) );
- list = append_expr( list, (yyvsp[(5) - (6)].expr) );
- (yyval.attr) = make_attrp(ATTR_RANGE, list); ;}
+#line 526 "parser.y"
+ { (yyval.attr) = make_attr(ATTR_PUBLIC); ;}
break;
case 114:
/* Line 1455 of yacc.c */
-#line 530 "parser.y"
- { (yyval.attr) = make_attr(ATTR_READONLY); ;}
+#line 528 "parser.y"
+ { expr_list_t *list = append_expr( NULL, (yyvsp[(3) - (6)].expr) );
+ list = append_expr( list, (yyvsp[(5) - (6)].expr) );
+ (yyval.attr) = make_attrp(ATTR_RANGE, list); ;}
break;
case 115:
/* Line 1455 of yacc.c */
#line 531 "parser.y"
- { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); ;}
+ { (yyval.attr) = make_attr(ATTR_READONLY); ;}
break;
case 116:
/* Line 1455 of yacc.c */
#line 532 "parser.y"
- { (yyval.attr) = make_attr(ATTR_RESTRICTED); ;}
+ { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); ;}
break;
case 117:
/* Line 1455 of yacc.c */
#line 533 "parser.y"
- { (yyval.attr) = make_attr(ATTR_RETVAL); ;}
+ { (yyval.attr) = make_attr(ATTR_RESTRICTED); ;}
break;
case 118:
/* Line 1455 of yacc.c */
#line 534 "parser.y"
- { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[(3) - (4)].expr_list)); ;}
+ { (yyval.attr) = make_attr(ATTR_RETVAL); ;}
break;
case 119:
/* Line 1455 of yacc.c */
#line 535 "parser.y"
- { (yyval.attr) = make_attr(ATTR_SOURCE); ;}
+ { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[(3) - (4)].expr_list)); ;}
break;
case 120:
/* Line 1455 of yacc.c */
#line 536 "parser.y"
- { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); ;}
+ { (yyval.attr) = make_attr(ATTR_SOURCE); ;}
break;
case 121:
/* Line 1455 of yacc.c */
#line 537 "parser.y"
- { (yyval.attr) = make_attr(ATTR_STRING); ;}
+ { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); ;}
break;
case 122:
/* Line 1455 of yacc.c */
#line 538 "parser.y"
- { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[(3) - (4)].expr)); ;}
+ { (yyval.attr) = make_attr(ATTR_STRING); ;}
break;
case 123:
/* Line 1455 of yacc.c */
#line 539 "parser.y"
- { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[(3) - (4)].type)); ;}
+ { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[(3) - (4)].expr)); ;}
break;
case 124:
/* Line 1455 of yacc.c */
#line 540 "parser.y"
- { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[(3) - (4)].type)); ;}
+ { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[(3) - (4)].type)); ;}
break;
case 125:
/* Line 1455 of yacc.c */
#line 541 "parser.y"
- { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[(3) - (4)].uuid)); ;}
+ { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[(3) - (4)].type)); ;}
break;
case 126:
/* Line 1455 of yacc.c */
#line 542 "parser.y"
- { (yyval.attr) = make_attr(ATTR_V1ENUM); ;}
+ { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[(3) - (4)].uuid)); ;}
break;
case 127:
/* Line 1455 of yacc.c */
#line 543 "parser.y"
- { (yyval.attr) = make_attr(ATTR_VARARG); ;}
+ { (yyval.attr) = make_attr(ATTR_V1ENUM); ;}
break;
case 128:
/* Line 1455 of yacc.c */
#line 544 "parser.y"
- { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[(3) - (4)].num)); ;}
+ { (yyval.attr) = make_attr(ATTR_VARARG); ;}
break;
case 129:
/* Line 1455 of yacc.c */
#line 545 "parser.y"
- { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[(3) - (4)].type)); ;}
+ { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[(3) - (4)].num)); ;}
break;
case 130:
/* Line 1455 of yacc.c */
#line 546 "parser.y"
- { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[(1) - (1)].num)); ;}
+ { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[(3) - (4)].type)); ;}
break;
- case 132:
+ case 131:
/* Line 1455 of yacc.c */
-#line 551 "parser.y"
- { if (!is_valid_uuid((yyvsp[(1) - (1)].str)))
- error_loc("invalid UUID: %s\n", (yyvsp[(1) - (1)].str));
- (yyval.uuid) = parse_uuid((yyvsp[(1) - (1)].str)); ;}
+#line 547 "parser.y"
+ { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[(1) - (1)].num)); ;}
break;
case 133:
/* Line 1455 of yacc.c */
-#line 556 "parser.y"
- { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
+#line 552 "parser.y"
+ { if (!is_valid_uuid((yyvsp[(1) - (1)].str)))
+ error_loc("invalid UUID: %s\n", (yyvsp[(1) - (1)].str));
+ (yyval.uuid) = parse_uuid((yyvsp[(1) - (1)].str)); ;}
break;
case 134:
case 137:
/* Line 1455 of yacc.c */
-#line 562 "parser.y"
- { (yyval.var_list) = NULL; ;}
+#line 560 "parser.y"
+ { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
break;
case 138:
/* Line 1455 of yacc.c */
#line 563 "parser.y"
- { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); ;}
+ { (yyval.var_list) = NULL; ;}
break;
case 139:
/* Line 1455 of yacc.c */
-#line 566 "parser.y"
+#line 564 "parser.y"
+ { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); ;}
+ break;
+
+ case 140:
+
+/* Line 1455 of yacc.c */
+#line 567 "parser.y"
{ attr_t *a = make_attrp(ATTR_CASE, append_expr( NULL, (yyvsp[(2) - (4)].expr) ));
(yyval.var) = (yyvsp[(4) - (4)].var); if (!(yyval.var)) (yyval.var) = make_var(NULL);
(yyval.var)->attrs = append_attr( (yyval.var)->attrs, a );
;}
break;
- case 140:
+ case 141:
/* Line 1455 of yacc.c */
-#line 570 "parser.y"
+#line 571 "parser.y"
{ attr_t *a = make_attr(ATTR_DEFAULT);
(yyval.var) = (yyvsp[(3) - (3)].var); if (!(yyval.var)) (yyval.var) = make_var(NULL);
(yyval.var)->attrs = append_attr( (yyval.var)->attrs, a );
;}
break;
- case 141:
+ case 142:
/* Line 1455 of yacc.c */
-#line 576 "parser.y"
+#line 577 "parser.y"
{ (yyval.var_list) = NULL; ;}
break;
- case 142:
+ case 143:
/* Line 1455 of yacc.c */
-#line 577 "parser.y"
+#line 578 "parser.y"
{ (yyval.var_list) = (yyvsp[(1) - (2)].var_list); ;}
break;
- case 144:
+ case 145:
/* Line 1455 of yacc.c */
-#line 581 "parser.y"
+#line 582 "parser.y"
{ if (!(yyvsp[(1) - (1)].var)->eval)
(yyvsp[(1) - (1)].var)->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */);
(yyval.var_list) = append_var( NULL, (yyvsp[(1) - (1)].var) );
;}
break;
- case 145:
+ case 146:
/* Line 1455 of yacc.c */
-#line 585 "parser.y"
+#line 586 "parser.y"
{ if (!(yyvsp[(3) - (3)].var)->eval)
{
var_t *last = LIST_ENTRY( list_tail((yyval.var_list)), var_t, entry );
;}
break;
- case 146:
+ case 147:
/* Line 1455 of yacc.c */
-#line 594 "parser.y"
+#line 595 "parser.y"
{ (yyval.var) = reg_const((yyvsp[(1) - (3)].var));
(yyval.var)->eval = (yyvsp[(3) - (3)].expr);
(yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0);
;}
break;
- case 147:
+ case 148:
/* Line 1455 of yacc.c */
-#line 598 "parser.y"
+#line 599 "parser.y"
{ (yyval.var) = reg_const((yyvsp[(1) - (1)].var));
(yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0);
;}
break;
- case 148:
-
-/* Line 1455 of yacc.c */
-#line 603 "parser.y"
- { (yyval.type) = type_new_enum((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;}
- break;
-
case 149:
/* Line 1455 of yacc.c */
-#line 606 "parser.y"
- { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); ;}
+#line 604 "parser.y"
+ { (yyval.type) = type_new_enum((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;}
break;
case 150:
/* Line 1455 of yacc.c */
#line 607 "parser.y"
- { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); ;}
+ { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); ;}
break;
case 151:
/* Line 1455 of yacc.c */
-#line 620 "parser.y"
- { (yyval.expr) = make_expr(EXPR_VOID); ;}
+#line 608 "parser.y"
+ { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); ;}
break;
- case 153:
+ case 152:
/* Line 1455 of yacc.c */
-#line 624 "parser.y"
- { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[(1) - (1)].num)); ;}
+#line 621 "parser.y"
+ { (yyval.expr) = make_expr(EXPR_VOID); ;}
break;
case 154:
/* Line 1455 of yacc.c */
#line 625 "parser.y"
- { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[(1) - (1)].num)); ;}
+ { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[(1) - (1)].num)); ;}
break;
case 155:
/* Line 1455 of yacc.c */
#line 626 "parser.y"
- { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[(1) - (1)].dbl)); ;}
+ { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[(1) - (1)].num)); ;}
break;
case 156:
/* Line 1455 of yacc.c */
#line 627 "parser.y"
- { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); ;}
+ { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[(1) - (1)].dbl)); ;}
break;
case 157:
/* Line 1455 of yacc.c */
#line 628 "parser.y"
- { (yyval.expr) = make_exprl(EXPR_NUM, 0); ;}
+ { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); ;}
break;
case 158:
/* Line 1455 of yacc.c */
#line 629 "parser.y"
- { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); ;}
+ { (yyval.expr) = make_exprl(EXPR_NUM, 0); ;}
break;
case 159:
/* Line 1455 of yacc.c */
#line 630 "parser.y"
- { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[(1) - (1)].str)); ;}
+ { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); ;}
break;
case 160:
/* Line 1455 of yacc.c */
#line 631 "parser.y"
- { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[(1) - (1)].str)); ;}
+ { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[(1) - (1)].str)); ;}
break;
case 161:
/* Line 1455 of yacc.c */
#line 632 "parser.y"
- { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[(1) - (1)].str)); ;}
+ { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[(1) - (1)].str)); ;}
break;
case 162:
/* Line 1455 of yacc.c */
#line 633 "parser.y"
- { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); ;}
+ { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[(1) - (1)].str)); ;}
break;
case 163:
/* Line 1455 of yacc.c */
#line 634 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); ;}
break;
case 164:
/* Line 1455 of yacc.c */
#line 635 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 165:
/* Line 1455 of yacc.c */
#line 636 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 166:
/* Line 1455 of yacc.c */
#line 637 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 167:
/* Line 1455 of yacc.c */
#line 638 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 168:
/* Line 1455 of yacc.c */
#line 639 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 169:
/* Line 1455 of yacc.c */
#line 640 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 170:
/* Line 1455 of yacc.c */
#line 641 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 171:
/* Line 1455 of yacc.c */
#line 642 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 172:
/* Line 1455 of yacc.c */
#line 643 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 173:
/* Line 1455 of yacc.c */
#line 644 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 174:
/* Line 1455 of yacc.c */
#line 645 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 175:
/* Line 1455 of yacc.c */
#line 646 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 176:
/* Line 1455 of yacc.c */
#line 647 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 177:
/* Line 1455 of yacc.c */
#line 648 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 178:
/* Line 1455 of yacc.c */
#line 649 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 179:
/* Line 1455 of yacc.c */
#line 650 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 180:
/* Line 1455 of yacc.c */
#line 651 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 181:
/* Line 1455 of yacc.c */
#line 652 "parser.y"
- { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[(2) - (2)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 182:
/* Line 1455 of yacc.c */
#line 653 "parser.y"
- { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[(2) - (2)].expr)); ;}
+ { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[(2) - (2)].expr)); ;}
break;
case 183:
/* Line 1455 of yacc.c */
#line 654 "parser.y"
- { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[(2) - (2)].expr)); ;}
+ { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[(2) - (2)].expr)); ;}
break;
case 184:
/* Line 1455 of yacc.c */
#line 655 "parser.y"
- { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[(2) - (2)].expr)); ;}
+ { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[(2) - (2)].expr)); ;}
break;
case 185:
/* Line 1455 of yacc.c */
#line 656 "parser.y"
- { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[(2) - (2)].expr)); ;}
+ { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[(2) - (2)].expr)); ;}
break;
case 186:
/* Line 1455 of yacc.c */
#line 657 "parser.y"
- { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[(2) - (2)].expr)); ;}
+ { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[(2) - (2)].expr)); ;}
break;
case 187:
/* Line 1455 of yacc.c */
#line 658 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[(1) - (3)].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;}
+ { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[(2) - (2)].expr)); ;}
break;
case 188:
/* Line 1455 of yacc.c */
#line 659 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[(1) - (3)].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;}
+ { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[(1) - (3)].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;}
break;
case 189:
/* Line 1455 of yacc.c */
#line 660 "parser.y"
- { (yyval.expr) = make_exprt(EXPR_CAST, (yyvsp[(2) - (4)].type), (yyvsp[(4) - (4)].expr)); ;}
+ { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[(1) - (3)].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;}
break;
case 190:
/* Line 1455 of yacc.c */
#line 661 "parser.y"
- { (yyval.expr) = make_exprt(EXPR_SIZEOF, (yyvsp[(3) - (4)].type), NULL); ;}
+ { (yyval.expr) = make_exprt(EXPR_CAST, (yyvsp[(2) - (4)].type), (yyvsp[(4) - (4)].expr)); ;}
break;
case 191:
/* Line 1455 of yacc.c */
#line 662 "parser.y"
- { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); ;}
+ { (yyval.expr) = make_exprt(EXPR_SIZEOF, (yyvsp[(3) - (4)].type), NULL); ;}
break;
case 192:
/* Line 1455 of yacc.c */
#line 663 "parser.y"
- { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
+ { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); ;}
break;
case 193:
/* Line 1455 of yacc.c */
-#line 666 "parser.y"
- { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); ;}
+#line 664 "parser.y"
+ { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
break;
case 194:
/* Line 1455 of yacc.c */
#line 667 "parser.y"
- { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); ;}
+ { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); ;}
break;
case 195:
/* Line 1455 of yacc.c */
-#line 670 "parser.y"
+#line 668 "parser.y"
+ { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); ;}
+ break;
+
+ case 196:
+
+/* Line 1455 of yacc.c */
+#line 671 "parser.y"
{ (yyval.expr) = (yyvsp[(1) - (1)].expr);
if (!(yyval.expr)->is_const)
error_loc("expression is not an integer constant\n");
;}
break;
- case 196:
+ case 197:
/* Line 1455 of yacc.c */
-#line 676 "parser.y"
+#line 677 "parser.y"
{ (yyval.expr) = (yyvsp[(1) - (1)].expr);
if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT)
error_loc("expression is not constant\n");
;}
break;
- case 197:
+ case 198:
/* Line 1455 of yacc.c */
-#line 682 "parser.y"
+#line 683 "parser.y"
{ (yyval.var_list) = NULL; ;}
break;
- case 198:
+ case 199:
/* Line 1455 of yacc.c */
-#line 683 "parser.y"
+#line 684 "parser.y"
{ (yyval.var_list) = append_var_list((yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var_list)); ;}
break;
- case 199:
+ case 200:
/* Line 1455 of yacc.c */
-#line 687 "parser.y"
+#line 688 "parser.y"
{ const char *first = LIST_ENTRY(list_head((yyvsp[(3) - (4)].declarator_list)), declarator_t, entry)->var->name;
check_field_attrs(first, (yyvsp[(1) - (4)].attr_list));
(yyval.var_list) = set_var_types((yyvsp[(1) - (4)].attr_list), (yyvsp[(2) - (4)].declspec), (yyvsp[(3) - (4)].declarator_list));
;}
break;
- case 200:
+ case 201:
/* Line 1455 of yacc.c */
-#line 691 "parser.y"
+#line 692 "parser.y"
{ var_t *v = make_var(NULL);
v->type = (yyvsp[(2) - (3)].type); v->attrs = (yyvsp[(1) - (3)].attr_list);
(yyval.var_list) = append_var(NULL, v);
;}
break;
- case 201:
+ case 202:
/* Line 1455 of yacc.c */
-#line 698 "parser.y"
+#line 699 "parser.y"
{ (yyval.var) = (yyvsp[(1) - (2)].var); ;}
break;
- case 202:
+ case 203:
/* Line 1455 of yacc.c */
-#line 699 "parser.y"
+#line 700 "parser.y"
{ (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[(1) - (2)].attr_list); ;}
break;
- case 203:
+ case 204:
/* Line 1455 of yacc.c */
-#line 702 "parser.y"
+#line 703 "parser.y"
{ (yyval.var_list) = NULL; ;}
break;
- case 204:
+ case 205:
/* Line 1455 of yacc.c */
-#line 703 "parser.y"
+#line 704 "parser.y"
{ (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); ;}
break;
- case 205:
+ case 206:
/* Line 1455 of yacc.c */
-#line 707 "parser.y"
+#line 708 "parser.y"
{ (yyval.var) = (yyvsp[(1) - (2)].var); ;}
break;
- case 206:
+ case 207:
/* Line 1455 of yacc.c */
-#line 708 "parser.y"
+#line 709 "parser.y"
{ (yyval.var) = NULL; ;}
break;
- case 207:
+ case 208:
/* Line 1455 of yacc.c */
-#line 711 "parser.y"
+#line 712 "parser.y"
{ (yyval.var) = (yyvsp[(3) - (3)].declarator)->var;
(yyval.var)->attrs = check_field_attrs((yyval.var)->name, (yyvsp[(1) - (3)].attr_list));
set_type((yyval.var), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE);
;}
break;
- case 208:
+ case 209:
/* Line 1455 of yacc.c */
-#line 719 "parser.y"
+#line 720 "parser.y"
{ var_t *v = (yyvsp[(3) - (3)].declarator)->var;
v->attrs = check_function_attrs(v->name, (yyvsp[(1) - (3)].attr_list));
set_type(v, (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE);
;}
break;
- case 209:
+ case 210:
/* Line 1455 of yacc.c */
-#line 729 "parser.y"
+#line 730 "parser.y"
{ (yyval.var) = (yyvsp[(3) - (3)].declarator)->var;
(yyval.var)->attrs = (yyvsp[(1) - (3)].attr_list);
set_type((yyval.var), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE);
;}
break;
- case 210:
+ case 211:
/* Line 1455 of yacc.c */
-#line 734 "parser.y"
+#line 735 "parser.y"
{ (yyval.var) = (yyvsp[(2) - (2)].declarator)->var;
set_type((yyval.var), (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), FALSE);
free((yyvsp[(2) - (2)].declarator));
;}
break;
- case 211:
+ case 212:
/* Line 1455 of yacc.c */
-#line 740 "parser.y"
+#line 741 "parser.y"
{ (yyval.var) = NULL; ;}
break;
- case 213:
-
-/* Line 1455 of yacc.c */
-#line 744 "parser.y"
- { (yyval.str) = NULL; ;}
- break;
-
case 214:
/* Line 1455 of yacc.c */
#line 745 "parser.y"
- { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
+ { (yyval.str) = NULL; ;}
break;
case 215:
case 216:
/* Line 1455 of yacc.c */
-#line 749 "parser.y"
- { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); ;}
+#line 747 "parser.y"
+ { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
break;
case 217:
/* Line 1455 of yacc.c */
-#line 751 "parser.y"
+#line 750 "parser.y"
{ (yyval.var) = make_var((yyvsp[(1) - (1)].str)); ;}
break;
case 218:
/* Line 1455 of yacc.c */
-#line 754 "parser.y"
- { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;}
+#line 752 "parser.y"
+ { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); ;}
break;
case 219:
{ (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;}
break;
- case 221:
+ case 220:
/* Line 1455 of yacc.c */
-#line 757 "parser.y"
- { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); ;}
+#line 756 "parser.y"
+ { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;}
break;
case 222:
/* Line 1455 of yacc.c */
#line 758 "parser.y"
- { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); ;}
+ { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); ;}
break;
case 223:
/* Line 1455 of yacc.c */
#line 759 "parser.y"
- { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); ;}
+ { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); ;}
break;
case 224:
/* Line 1455 of yacc.c */
#line 760 "parser.y"
- { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;}
+ { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); ;}
break;
case 225:
{ (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;}
break;
- case 231:
+ case 229:
/* Line 1455 of yacc.c */
-#line 771 "parser.y"
- { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); ;}
+#line 765 "parser.y"
+ { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;}
break;
case 232:
/* Line 1455 of yacc.c */
#line 772 "parser.y"
- { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); ;}
+ { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); ;}
break;
case 233:
/* Line 1455 of yacc.c */
#line 773 "parser.y"
- { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); ;}
+ { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); ;}
break;
case 234:
/* Line 1455 of yacc.c */
#line 774 "parser.y"
- { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); ;}
+ { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); ;}
break;
case 235:
/* Line 1455 of yacc.c */
#line 775 "parser.y"
- { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); ;}
+ { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); ;}
break;
case 236:
/* Line 1455 of yacc.c */
#line 776 "parser.y"
- { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); ;}
+ { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); ;}
break;
case 237:
/* Line 1455 of yacc.c */
#line 777 "parser.y"
- { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); ;}
+ { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); ;}
break;
case 238:
/* Line 1455 of yacc.c */
-#line 780 "parser.y"
- { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); ;}
+#line 778 "parser.y"
+ { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); ;}
break;
case 239:
/* Line 1455 of yacc.c */
#line 781 "parser.y"
+ { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); ;}
+ break;
+
+ case 240:
+
+/* Line 1455 of yacc.c */
+#line 782 "parser.y"
{ (yyval.type) = find_type((yyvsp[(2) - (2)].str), 0);
if (type_get_type_detect_alias((yyval.type)) != TYPE_COCLASS)
error_loc("%s was not declared a coclass at %s:%d\n",
;}
break;
- case 240:
+ case 241:
/* Line 1455 of yacc.c */
-#line 789 "parser.y"
+#line 790 "parser.y"
{ (yyval.type) = (yyvsp[(2) - (2)].type);
check_def((yyval.type));
(yyval.type)->attrs = check_coclass_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list));
;}
break;
- case 241:
+ case 242:
/* Line 1455 of yacc.c */
-#line 796 "parser.y"
+#line 797 "parser.y"
{ (yyval.type) = type_coclass_define((yyvsp[(1) - (5)].type), (yyvsp[(3) - (5)].ifref_list)); ;}
break;
- case 242:
+ case 243:
/* Line 1455 of yacc.c */
-#line 799 "parser.y"
+#line 800 "parser.y"
{ (yyval.ifref_list) = NULL; ;}
break;
- case 243:
+ case 244:
/* Line 1455 of yacc.c */
-#line 800 "parser.y"
+#line 801 "parser.y"
{ (yyval.ifref_list) = append_ifref( (yyvsp[(1) - (2)].ifref_list), (yyvsp[(2) - (2)].ifref) ); ;}
break;
- case 244:
+ case 245:
/* Line 1455 of yacc.c */
-#line 804 "parser.y"
+#line 805 "parser.y"
{ (yyval.ifref) = make_ifref((yyvsp[(2) - (2)].type)); (yyval.ifref)->attrs = (yyvsp[(1) - (2)].attr_list); ;}
break;
- case 245:
+ case 246:
/* Line 1455 of yacc.c */
-#line 807 "parser.y"
+#line 808 "parser.y"
{ (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;}
break;
- case 246:
+ case 247:
/* Line 1455 of yacc.c */
-#line 808 "parser.y"
+#line 809 "parser.y"
{ (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;}
break;
- case 247:
+ case 248:
/* Line 1455 of yacc.c */
-#line 811 "parser.y"
+#line 812 "parser.y"
{ attr_t *attrs;
is_object_interface = TRUE;
(yyval.type) = (yyvsp[(2) - (2)].type);
;}
break;
- case 248:
+ case 249:
/* Line 1455 of yacc.c */
-#line 821 "parser.y"
+#line 822 "parser.y"
{ (yyval.var_list) = NULL; ;}
break;
- case 249:
+ case 250:
/* Line 1455 of yacc.c */
-#line 822 "parser.y"
+#line 823 "parser.y"
{ (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); ;}
break;
- case 250:
+ case 251:
/* Line 1455 of yacc.c */
-#line 825 "parser.y"
+#line 826 "parser.y"
{ (yyval.stmt_list) = NULL; ;}
break;
- case 251:
+ case 252:
/* Line 1455 of yacc.c */
-#line 826 "parser.y"
+#line 827 "parser.y"
{ (yyval.stmt_list) = append_func( (yyvsp[(1) - (3)].stmt_list), (yyvsp[(2) - (3)].func) ); ;}
break;
- case 252:
+ case 253:
/* Line 1455 of yacc.c */
-#line 832 "parser.y"
+#line 833 "parser.y"
{ (yyval.type) = (yyvsp[(1) - (5)].type);
type_dispinterface_define((yyval.type), (yyvsp[(3) - (5)].var_list), (yyvsp[(4) - (5)].stmt_list));
;}
break;
- case 253:
+ case 254:
/* Line 1455 of yacc.c */
-#line 836 "parser.y"
+#line 837 "parser.y"
{ (yyval.type) = (yyvsp[(1) - (5)].type);
type_dispinterface_define_from_iface((yyval.type), (yyvsp[(3) - (5)].type));
;}
break;
- case 254:
+ case 255:
/* Line 1455 of yacc.c */
-#line 841 "parser.y"
+#line 842 "parser.y"
{ (yyval.type) = NULL; ;}
break;
- case 255:
+ case 256:
/* Line 1455 of yacc.c */
-#line 842 "parser.y"
+#line 843 "parser.y"
{ (yyval.type) = find_type_or_error2((yyvsp[(2) - (2)].str), 0); ;}
break;
- case 256:
+ case 257:
/* Line 1455 of yacc.c */
-#line 845 "parser.y"
+#line 846 "parser.y"
{ (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;}
break;
- case 257:
+ case 258:
/* Line 1455 of yacc.c */
-#line 846 "parser.y"
+#line 847 "parser.y"
{ (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;}
break;
- case 258:
+ case 259:
/* Line 1455 of yacc.c */
-#line 849 "parser.y"
+#line 850 "parser.y"
{ (yyval.ifinfo).interface = (yyvsp[(2) - (2)].type);
(yyval.ifinfo).old_pointer_default = pointer_default;
if (is_attr((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT))
;}
break;
- case 259:
+ case 260:
/* Line 1455 of yacc.c */
-#line 861 "parser.y"
+#line 862 "parser.y"
{ (yyval.type) = (yyvsp[(1) - (6)].ifinfo).interface;
type_interface_define((yyval.type), (yyvsp[(2) - (6)].type), (yyvsp[(4) - (6)].stmt_list));
pointer_default = (yyvsp[(1) - (6)].ifinfo).old_pointer_default;
;}
break;
- case 260:
+ case 261:
/* Line 1455 of yacc.c */
-#line 869 "parser.y"
+#line 870 "parser.y"
{ (yyval.type) = (yyvsp[(1) - (8)].ifinfo).interface;
type_interface_define((yyval.type), find_type_or_error2((yyvsp[(3) - (8)].str), 0), (yyvsp[(6) - (8)].stmt_list));
pointer_default = (yyvsp[(1) - (8)].ifinfo).old_pointer_default;
;}
break;
- case 261:
-
-/* Line 1455 of yacc.c */
-#line 873 "parser.y"
- { (yyval.type) = (yyvsp[(1) - (2)].type); ;}
- break;
-
case 262:
/* Line 1455 of yacc.c */
-#line 877 "parser.y"
+#line 874 "parser.y"
{ (yyval.type) = (yyvsp[(1) - (2)].type); ;}
break;
case 264:
/* Line 1455 of yacc.c */
-#line 881 "parser.y"
- { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); ;}
+#line 879 "parser.y"
+ { (yyval.type) = (yyvsp[(1) - (2)].type); ;}
break;
case 265:
case 266:
/* Line 1455 of yacc.c */
-#line 885 "parser.y"
- { (yyval.type) = (yyvsp[(2) - (2)].type);
- (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list));
- ;}
+#line 883 "parser.y"
+ { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); ;}
break;
case 267:
/* Line 1455 of yacc.c */
-#line 891 "parser.y"
- { (yyval.type) = (yyvsp[(1) - (5)].type);
- type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list));
+#line 886 "parser.y"
+ { (yyval.type) = (yyvsp[(2) - (2)].type);
+ (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list));
;}
break;
case 268:
/* Line 1455 of yacc.c */
-#line 897 "parser.y"
- { (yyval.stgclass) = STG_EXTERN; ;}
+#line 892 "parser.y"
+ { (yyval.type) = (yyvsp[(1) - (5)].type);
+ type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list));
+ ;}
break;
case 269:
/* Line 1455 of yacc.c */
#line 898 "parser.y"
- { (yyval.stgclass) = STG_STATIC; ;}
+ { (yyval.stgclass) = STG_EXTERN; ;}
break;
case 270:
/* Line 1455 of yacc.c */
#line 899 "parser.y"
- { (yyval.stgclass) = STG_REGISTER; ;}
+ { (yyval.stgclass) = STG_STATIC; ;}
break;
case 271:
/* Line 1455 of yacc.c */
-#line 903 "parser.y"
- { (yyval.attr) = make_attr(ATTR_INLINE); ;}
+#line 900 "parser.y"
+ { (yyval.stgclass) = STG_REGISTER; ;}
break;
case 272:
/* Line 1455 of yacc.c */
-#line 907 "parser.y"
- { (yyval.attr) = make_attr(ATTR_CONST); ;}
+#line 904 "parser.y"
+ { (yyval.attr) = make_attr(ATTR_INLINE); ;}
break;
case 273:
/* Line 1455 of yacc.c */
-#line 910 "parser.y"
- { (yyval.attr_list) = NULL; ;}
+#line 908 "parser.y"
+ { (yyval.attr) = make_attr(ATTR_CONST); ;}
break;
case 274:
/* Line 1455 of yacc.c */
#line 911 "parser.y"
- { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); ;}
+ { (yyval.attr_list) = NULL; ;}
break;
case 275:
/* Line 1455 of yacc.c */
-#line 914 "parser.y"
- { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); ;}
+#line 912 "parser.y"
+ { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); ;}
break;
case 276:
/* Line 1455 of yacc.c */
-#line 916 "parser.y"
- { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); ;}
+#line 915 "parser.y"
+ { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); ;}
break;
case 277:
/* Line 1455 of yacc.c */
-#line 919 "parser.y"
- { (yyval.declspec) = NULL; ;}
+#line 917 "parser.y"
+ { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); ;}
break;
- case 279:
+ case 278:
/* Line 1455 of yacc.c */
-#line 924 "parser.y"
- { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); ;}
+#line 920 "parser.y"
+ { (yyval.declspec) = NULL; ;}
break;
case 280:
/* Line 1455 of yacc.c */
#line 926 "parser.y"
- { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); ;}
+ { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); ;}
break;
case 282:
/* Line 1455 of yacc.c */
-#line 931 "parser.y"
- { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;}
+#line 927 "parser.y"
+ { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); ;}
break;
case 283:
/* Line 1455 of yacc.c */
#line 932 "parser.y"
- { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;}
+ { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;}
break;
- case 285:
+ case 284:
/* Line 1455 of yacc.c */
-#line 937 "parser.y"
- { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); ;}
+#line 933 "parser.y"
+ { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;}
break;
case 286:
/* Line 1455 of yacc.c */
#line 938 "parser.y"
- { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;}
+ { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); ;}
break;
case 287:
/* Line 1455 of yacc.c */
#line 939 "parser.y"
- { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;}
+ { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;}
break;
case 288:
/* Line 1455 of yacc.c */
#line 940 "parser.y"
- { (yyval.declarator) = (yyvsp[(1) - (4)].declarator);
- (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list)));
- (yyval.declarator)->type = NULL;
- ;}
+ { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;}
break;
case 289:
/* Line 1455 of yacc.c */
-#line 947 "parser.y"
- { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); ;}
+#line 941 "parser.y"
+ { (yyval.declarator) = (yyvsp[(1) - (4)].declarator);
+ (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list)));
+ (yyval.declarator)->type = NULL;
+ ;}
break;
case 290:
/* Line 1455 of yacc.c */
#line 948 "parser.y"
- { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); ;}
+ { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); ;}
break;
case 291:
/* Line 1455 of yacc.c */
-#line 952 "parser.y"
- { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); ;}
+#line 949 "parser.y"
+ { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); ;}
break;
case 292:
/* Line 1455 of yacc.c */
#line 953 "parser.y"
- { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); ;}
+ { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); ;}
break;
case 293:
/* Line 1455 of yacc.c */
-#line 957 "parser.y"
- { (yyval.num) = RPC_FC_RP; ;}
+#line 954 "parser.y"
+ { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); ;}
break;
case 294:
/* Line 1455 of yacc.c */
#line 958 "parser.y"
- { (yyval.num) = RPC_FC_UP; ;}
+ { (yyval.num) = RPC_FC_RP; ;}
break;
case 295:
/* Line 1455 of yacc.c */
#line 959 "parser.y"
- { (yyval.num) = RPC_FC_FP; ;}
+ { (yyval.num) = RPC_FC_UP; ;}
break;
case 296:
/* Line 1455 of yacc.c */
-#line 962 "parser.y"
- { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;}
+#line 960 "parser.y"
+ { (yyval.num) = RPC_FC_FP; ;}
break;
case 297:
/* Line 1455 of yacc.c */
-#line 965 "parser.y"
- { (yyval.type) = type_new_void(); ;}
+#line 963 "parser.y"
+ { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;}
break;
case 298:
/* Line 1455 of yacc.c */
#line 966 "parser.y"
- { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;}
+ { (yyval.type) = type_new_void(); ;}
break;
case 299:
/* Line 1455 of yacc.c */
#line 967 "parser.y"
- { (yyval.type) = (yyvsp[(1) - (1)].type); ;}
+ { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;}
break;
case 300:
/* Line 1455 of yacc.c */
#line 969 "parser.y"
- { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); ;}
+ { (yyval.type) = (yyvsp[(1) - (1)].type); ;}
break;
case 302:
/* Line 1455 of yacc.c */
#line 970 "parser.y"
- { (yyval.type) = (yyvsp[(1) - (1)].type); ;}
+ { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); ;}
break;
case 303:
/* Line 1455 of yacc.c */
#line 971 "parser.y"
- { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); ;}
+ { (yyval.type) = (yyvsp[(1) - (1)].type); ;}
break;
case 304:
/* Line 1455 of yacc.c */
#line 972 "parser.y"
- { (yyval.type) = (yyvsp[(1) - (1)].type); ;}
+ { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); ;}
break;
case 305:
/* Line 1455 of yacc.c */
#line 973 "parser.y"
- { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); ;}
+ { (yyval.type) = (yyvsp[(1) - (1)].type); ;}
break;
case 306:
/* Line 1455 of yacc.c */
#line 974 "parser.y"
- { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); ;}
+ { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); ;}
break;
case 307:
/* Line 1455 of yacc.c */
-#line 978 "parser.y"
+#line 975 "parser.y"
+ { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); ;}
+ break;
+
+ case 308:
+
+/* Line 1455 of yacc.c */
+#line 979 "parser.y"
{ reg_typedefs((yyvsp[(3) - (4)].declspec), (yyvsp[(4) - (4)].declarator_list), check_typedef_attrs((yyvsp[(2) - (4)].attr_list)));
(yyval.statement) = make_statement_typedef((yyvsp[(4) - (4)].declarator_list));
;}
break;
- case 308:
+ case 309:
/* Line 1455 of yacc.c */
-#line 984 "parser.y"
+#line 985 "parser.y"
{ (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;}
break;
- case 309:
+ case 310:
/* Line 1455 of yacc.c */
-#line 987 "parser.y"
+#line 988 "parser.y"
{ (yyval.type) = type_new_encapsulated_union((yyvsp[(2) - (10)].str), (yyvsp[(5) - (10)].var), (yyvsp[(7) - (10)].var), (yyvsp[(9) - (10)].var_list)); ;}
break;
- case 310:
+ case 311:
/* Line 1455 of yacc.c */
-#line 991 "parser.y"
+#line 992 "parser.y"
{ (yyval.num) = MAKEVERSION((yyvsp[(1) - (1)].num), 0); ;}
break;
- case 311:
+ case 312:
/* Line 1455 of yacc.c */
-#line 992 "parser.y"
+#line 993 "parser.y"
{ (yyval.num) = MAKEVERSION((yyvsp[(1) - (3)].num), (yyvsp[(3) - (3)].num)); ;}
break;
/* Line 1455 of yacc.c */
-#line 4702 "parser.tab.c"
+#line 4709 "parser.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1675 of yacc.c */
-#line 995 "parser.y"
+#line 996 "parser.y"
static void decl_builtin_basic(const char *name, enum type_basic_type type)
/* ATTR_OLEAUTOMATION */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "oleautomation" },
/* ATTR_OPTIONAL */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "optional" },
/* ATTR_OUT */ { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "out" },
+ /* ATTR_PARAMLCID */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "lcid" },
/* ATTR_POINTERDEFAULT */ { 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "pointer_default" },
/* ATTR_POINTERTYPE */ { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, "ref, unique or ptr" },
/* ATTR_PROPGET */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "propget" },