From 4a8d830f83caa8723d30a4d937f645b2e2fcaf19 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 21 Sep 2008 21:18:42 +0000 Subject: [PATCH] Sync to Wine-0.9.58 - Rob Shearman Thu, 14 Feb 2008 widl: Remove unused headers. - Rob Shearman Thu, 14 Feb 2008 widl: Guard the inclusion of unistd.h. - Rob Shearman Tue, 19 Feb 2008 Add the nounistd option to all lex source files. - Alexandre Julliard Tue, 19 Feb 2008 Avoid the nounistd option that doesn't exist on older flex, define YY_NO_UNISTD_H... - Dan Hipschman Thu, 21 Feb 2008 widl: Allow is_string_type to work for typedef'd types. - Gerald Pfeifer Fri, 22 Feb 2008 widl: Include for prototype of unlink(). - Dan Hipschman Wed, 19 Mar 2008 widl: Ignore libraries in imported IDL files. - Dan Hipschman Thu, 20 Mar 2008 widl: Make structures with FC_ENUM16 fields complex. svn path=/trunk/; revision=36394 --- reactos/media/doc/README.WINE | 2 +- reactos/tools/widl/client.c | 6 +- reactos/tools/widl/header.c | 2 - reactos/tools/widl/header.h | 3 +- reactos/tools/widl/parser.l | 5 +- reactos/tools/widl/parser.tab.c | 1687 ++++++++++++++++--------------- reactos/tools/widl/parser.y | 7 +- reactos/tools/widl/parser.yy.c | 63 +- reactos/tools/widl/proxy.c | 2 - reactos/tools/widl/server.c | 2 - reactos/tools/widl/typegen.c | 10 +- reactos/tools/widl/typelib.c | 6 +- reactos/tools/widl/widl.c | 14 +- reactos/tools/widl/write_msft.c | 1 - 14 files changed, 909 insertions(+), 901 deletions(-) diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 45535be6b29..693a923856d 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -26,7 +26,7 @@ reactos/tools/wpp # Synced to Wine-0_9_5 reactos/tools/winebuild # Synced to Wine-20071217 reactos/tools/wmc # Synced to Wine-20071201 reactos/tools/wrc # Synced to Wine-0_9_53 -reactos/tools/widl # Synced to Wine-0_9_55 +reactos/tools/widl # Synced to Wine-0_9_58 The following libraries are shared with Wine. diff --git a/reactos/tools/widl/client.c b/reactos/tools/widl/client.c index 2eaa43c9848..7747f114cfb 100644 --- a/reactos/tools/widl/client.c +++ b/reactos/tools/widl/client.c @@ -23,11 +23,11 @@ #include #include -#include +#ifdef HAVE_UNISTD_H +# include +#endif #include -#include #include -#include #include "widl.h" #include "utils.h" diff --git a/reactos/tools/widl/header.c b/reactos/tools/widl/header.c index 0f697b8a886..0a28fd93558 100644 --- a/reactos/tools/widl/header.c +++ b/reactos/tools/widl/header.c @@ -27,9 +27,7 @@ # include #endif #include -#include #include -#include #include "widl.h" #include "utils.h" diff --git a/reactos/tools/widl/header.h b/reactos/tools/widl/header.h index 41784a0b152..656d4b2597b 100644 --- a/reactos/tools/widl/header.h +++ b/reactos/tools/widl/header.h @@ -78,7 +78,8 @@ static inline int last_array(const type_t *type) static inline int is_string_type(const attr_list_t *attrs, const type_t *type) { - return is_attr(attrs, ATTR_STRING) && (last_ptr(type) || last_array(type)); + return ((is_attr(attrs, ATTR_STRING) || is_attr(type->attrs, ATTR_STRING)) + && (last_ptr(type) || last_array(type))); } static inline int is_context_handle(const type_t *type) diff --git a/reactos/tools/widl/parser.l b/reactos/tools/widl/parser.l index 2497a5e062a..94eec0d5200 100644 --- a/reactos/tools/widl/parser.l +++ b/reactos/tools/widl/parser.l @@ -44,8 +44,11 @@ double [0-9]+\.[0-9]+([eE][+-]?[0-9]+)* #include #include #include + #ifdef HAVE_UNISTD_H -# include +#include +#else +#define YY_NO_UNISTD_H #endif #include "widl.h" diff --git a/reactos/tools/widl/parser.tab.c b/reactos/tools/widl/parser.tab.c index 9cf10d2a0e7..1810611ce22 100644 --- a/reactos/tools/widl/parser.tab.c +++ b/reactos/tools/widl/parser.tab.c @@ -683,14 +683,14 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1019 +#define YYLAST 992 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 156 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 76 /* YYNRULES -- Number of rules. */ -#define YYNRULES 272 +#define YYNRULES 273 /* YYNRULES -- Number of states. */ #define YYNSTATES 500 @@ -753,32 +753,32 @@ static const unsigned short int yyprhs[] = { 0, 0, 3, 5, 6, 9, 12, 16, 19, 22, 25, 28, 29, 32, 35, 39, 42, 45, 48, 51, - 52, 56, 59, 61, 64, 66, 69, 72, 74, 77, - 80, 83, 88, 92, 96, 101, 104, 108, 112, 113, - 115, 117, 119, 123, 125, 130, 134, 141, 147, 148, - 152, 156, 158, 162, 167, 168, 170, 174, 176, 180, - 185, 187, 191, 192, 194, 196, 198, 200, 202, 207, - 212, 214, 216, 218, 220, 222, 224, 229, 234, 236, - 238, 243, 245, 250, 255, 260, 262, 264, 269, 274, - 279, 284, 289, 291, 296, 298, 303, 305, 311, 313, - 315, 320, 322, 324, 326, 328, 330, 332, 334, 336, - 338, 343, 345, 347, 349, 351, 358, 360, 362, 364, - 366, 371, 373, 375, 377, 382, 387, 392, 397, 399, - 401, 406, 411, 413, 415, 417, 418, 420, 421, 424, - 429, 433, 439, 440, 443, 445, 447, 451, 455, 457, - 463, 465, 469, 470, 472, 474, 476, 478, 480, 482, - 484, 490, 494, 498, 502, 506, 510, 514, 518, 522, - 525, 528, 531, 534, 539, 544, 548, 550, 554, 556, - 561, 562, 565, 568, 572, 575, 577, 582, 590, 591, - 593, 594, 596, 598, 600, 602, 604, 606, 608, 611, - 614, 616, 618, 620, 622, 624, 626, 628, 629, 631, - 633, 636, 638, 641, 644, 646, 648, 651, 654, 657, - 662, 663, 666, 669, 672, 675, 678, 681, 685, 688, - 692, 698, 704, 705, 708, 711, 714, 717, 723, 731, - 733, 736, 739, 742, 745, 748, 753, 756, 759, 761, - 763, 767, 769, 773, 775, 777, 779, 785, 787, 789, - 791, 794, 796, 799, 801, 804, 806, 809, 814, 819, - 825, 836, 838 + 54, 55, 59, 62, 64, 67, 69, 72, 75, 77, + 80, 83, 86, 91, 95, 99, 104, 107, 111, 115, + 116, 118, 120, 122, 126, 128, 133, 137, 144, 150, + 151, 155, 159, 161, 165, 170, 171, 173, 177, 179, + 183, 188, 190, 194, 195, 197, 199, 201, 203, 205, + 210, 215, 217, 219, 221, 223, 225, 227, 232, 237, + 239, 241, 246, 248, 253, 258, 263, 265, 267, 272, + 277, 282, 287, 292, 294, 299, 301, 306, 308, 314, + 316, 318, 323, 325, 327, 329, 331, 333, 335, 337, + 339, 341, 346, 348, 350, 352, 354, 361, 363, 365, + 367, 369, 374, 376, 378, 380, 385, 390, 395, 400, + 402, 404, 409, 414, 416, 418, 420, 421, 423, 424, + 427, 432, 436, 442, 443, 446, 448, 450, 454, 458, + 460, 466, 468, 472, 473, 475, 477, 479, 481, 483, + 485, 487, 493, 497, 501, 505, 509, 513, 517, 521, + 525, 528, 531, 534, 537, 542, 547, 551, 553, 557, + 559, 564, 565, 568, 571, 575, 578, 580, 585, 593, + 594, 596, 597, 599, 601, 603, 605, 607, 609, 611, + 614, 617, 619, 621, 623, 625, 627, 629, 631, 632, + 634, 636, 639, 641, 644, 647, 649, 651, 654, 657, + 660, 665, 666, 669, 672, 675, 678, 681, 684, 688, + 691, 695, 701, 707, 708, 711, 714, 717, 720, 726, + 734, 736, 739, 742, 745, 748, 751, 756, 759, 762, + 764, 766, 770, 772, 776, 778, 780, 782, 788, 790, + 792, 794, 797, 799, 802, 804, 807, 809, 812, 817, + 822, 828, 839, 841 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -789,119 +789,119 @@ static const short int yyrhs[] = 222, -1, 158, 168, -1, 158, 161, -1, -1, 159, 219, -1, 159, 218, -1, 159, 205, 147, -1, 159, 207, -1, 159, 222, -1, 159, 161, -1, 159, 165, - -1, -1, 160, 198, 147, -1, 160, 161, -1, 147, - -1, 184, 147, -1, 162, -1, 188, 147, -1, 194, - 147, -1, 164, -1, 227, 147, -1, 229, 147, -1, - 230, 147, -1, 37, 148, 8, 149, -1, 69, 8, - 147, -1, 163, 159, 10, -1, 70, 148, 8, 149, - -1, 79, 3, -1, 176, 166, 150, -1, 167, 159, - 151, -1, -1, 171, -1, 130, -1, 172, -1, 171, - 133, 172, -1, 170, -1, 176, 228, 224, 173, -1, - 228, 224, 173, -1, 176, 228, 224, 148, 169, 149, - -1, 228, 224, 148, 169, 149, -1, -1, 152, 174, - 153, -1, 152, 140, 153, -1, 190, -1, 174, 133, - 191, -1, 174, 153, 152, 191, -1, -1, 176, -1, - 152, 177, 153, -1, 179, -1, 177, 133, 179, -1, - 177, 153, 152, 179, -1, 8, -1, 178, 133, 8, - -1, -1, 13, -1, 15, -1, 16, -1, 18, -1, - 19, -1, 24, 148, 201, 149, -1, 26, 148, 192, - 149, -1, 33, -1, 34, -1, 35, -1, 36, -1, - 38, -1, 39, -1, 40, 148, 193, 149, -1, 40, - 148, 8, 149, -1, 41, -1, 42, -1, 44, 148, - 8, 149, -1, 46, -1, 47, 148, 178, 149, -1, - 48, 148, 8, 149, -1, 48, 148, 193, 149, -1, - 51, -1, 55, -1, 57, 148, 193, 149, -1, 58, - 148, 8, 149, -1, 59, 148, 8, 149, -1, 60, - 148, 193, 149, -1, 61, 148, 8, 149, -1, 62, - -1, 64, 148, 193, 149, -1, 65, -1, 66, 148, - 191, 149, -1, 67, -1, 68, 148, 56, 3, 149, - -1, 71, -1, 73, -1, 78, 148, 189, 149, -1, - 80, -1, 84, -1, 85, -1, 86, -1, 87, -1, - 88, -1, 89, -1, 90, -1, 91, -1, 92, 148, - 226, 149, -1, 94, -1, 95, -1, 96, -1, 98, - -1, 99, 148, 193, 133, 193, 149, -1, 100, -1, - 102, -1, 103, -1, 104, -1, 109, 148, 189, 149, - -1, 112, -1, 114, -1, 115, -1, 118, 148, 191, - 149, -1, 119, 148, 228, 149, -1, 120, 148, 228, - 149, -1, 126, 148, 180, 149, -1, 127, -1, 128, - -1, 129, 148, 231, 149, -1, 132, 148, 228, 149, - -1, 226, -1, 9, -1, 8, -1, -1, 113, -1, - -1, 182, 183, -1, 26, 191, 135, 196, -1, 38, - 135, 196, -1, 32, 228, 201, 154, 193, -1, -1, - 186, 133, -1, 186, -1, 187, -1, 186, 133, 187, - -1, 201, 154, 193, -1, 201, -1, 49, 200, 150, - 185, 151, -1, 190, -1, 189, 133, 190, -1, -1, - 191, -1, 5, -1, 6, -1, 7, -1, 53, -1, - 121, -1, 3, -1, 191, 134, 191, 135, 191, -1, - 191, 136, 191, -1, 191, 137, 191, -1, 191, 139, - 191, -1, 191, 138, 191, -1, 191, 140, 191, -1, - 191, 141, 191, -1, 191, 11, 191, -1, 191, 12, - 191, -1, 142, 191, -1, 138, 191, -1, 137, 191, - -1, 140, 191, -1, 148, 228, 149, 191, -1, 110, - 148, 228, 149, -1, 148, 191, 149, -1, 193, -1, - 192, 133, 193, -1, 191, -1, 52, 32, 228, 201, - -1, -1, 195, 196, -1, 197, 147, -1, 175, 230, - 147, -1, 176, 147, -1, 147, -1, 175, 228, 224, - 173, -1, 175, 228, 181, 224, 148, 169, 149, -1, - -1, 201, -1, -1, 3, -1, 4, -1, 3, -1, - 4, -1, 22, -1, 131, -1, 204, -1, 107, 204, - -1, 125, 204, -1, 125, -1, 54, -1, 108, -1, - 45, -1, 20, -1, 50, -1, 56, -1, -1, 74, - -1, 74, -1, 106, 203, -1, 111, -1, 81, 203, - -1, 63, 203, -1, 75, -1, 28, -1, 29, 3, - -1, 29, 4, -1, 176, 205, -1, 206, 150, 208, - 151, -1, -1, 208, 209, -1, 175, 219, -1, 43, - 3, -1, 43, 4, -1, 176, 210, -1, 93, 135, - -1, 212, 197, 147, -1, 82, 135, -1, 213, 198, - 147, -1, 211, 150, 212, 213, 151, -1, 211, 150, - 216, 147, 151, -1, -1, 135, 4, -1, 76, 3, - -1, 76, 4, -1, 176, 216, -1, 217, 215, 150, - 160, 151, -1, 217, 135, 3, 150, 164, 160, 151, - -1, 214, -1, 216, 147, -1, 210, 147, -1, 83, - 3, -1, 83, 4, -1, 176, 220, -1, 221, 150, - 160, 151, -1, 140, 224, -1, 32, 223, -1, 201, - -1, 223, -1, 148, 224, 149, -1, 224, -1, 225, - 133, 224, -1, 101, -1, 124, -1, 97, -1, 116, - 200, 150, 195, 151, -1, 130, -1, 4, -1, 202, - -1, 32, 228, -1, 188, -1, 49, 3, -1, 227, - -1, 116, 3, -1, 230, -1, 123, 3, -1, 105, - 148, 228, 149, -1, 122, 175, 228, 225, -1, 123, - 200, 150, 195, 151, -1, 123, 200, 117, 148, 197, - 149, 199, 150, 182, 151, -1, 5, -1, 5, 155, - 5, -1 + -1, 159, 168, -1, -1, 160, 198, 147, -1, 160, + 161, -1, 147, -1, 184, 147, -1, 162, -1, 188, + 147, -1, 194, 147, -1, 164, -1, 227, 147, -1, + 229, 147, -1, 230, 147, -1, 37, 148, 8, 149, + -1, 69, 8, 147, -1, 163, 159, 10, -1, 70, + 148, 8, 149, -1, 79, 3, -1, 176, 166, 150, + -1, 167, 159, 151, -1, -1, 171, -1, 130, -1, + 172, -1, 171, 133, 172, -1, 170, -1, 176, 228, + 224, 173, -1, 228, 224, 173, -1, 176, 228, 224, + 148, 169, 149, -1, 228, 224, 148, 169, 149, -1, + -1, 152, 174, 153, -1, 152, 140, 153, -1, 190, + -1, 174, 133, 191, -1, 174, 153, 152, 191, -1, + -1, 176, -1, 152, 177, 153, -1, 179, -1, 177, + 133, 179, -1, 177, 153, 152, 179, -1, 8, -1, + 178, 133, 8, -1, -1, 13, -1, 15, -1, 16, + -1, 18, -1, 19, -1, 24, 148, 201, 149, -1, + 26, 148, 192, 149, -1, 33, -1, 34, -1, 35, + -1, 36, -1, 38, -1, 39, -1, 40, 148, 193, + 149, -1, 40, 148, 8, 149, -1, 41, -1, 42, + -1, 44, 148, 8, 149, -1, 46, -1, 47, 148, + 178, 149, -1, 48, 148, 8, 149, -1, 48, 148, + 193, 149, -1, 51, -1, 55, -1, 57, 148, 193, + 149, -1, 58, 148, 8, 149, -1, 59, 148, 8, + 149, -1, 60, 148, 193, 149, -1, 61, 148, 8, + 149, -1, 62, -1, 64, 148, 193, 149, -1, 65, + -1, 66, 148, 191, 149, -1, 67, -1, 68, 148, + 56, 3, 149, -1, 71, -1, 73, -1, 78, 148, + 189, 149, -1, 80, -1, 84, -1, 85, -1, 86, + -1, 87, -1, 88, -1, 89, -1, 90, -1, 91, + -1, 92, 148, 226, 149, -1, 94, -1, 95, -1, + 96, -1, 98, -1, 99, 148, 193, 133, 193, 149, + -1, 100, -1, 102, -1, 103, -1, 104, -1, 109, + 148, 189, 149, -1, 112, -1, 114, -1, 115, -1, + 118, 148, 191, 149, -1, 119, 148, 228, 149, -1, + 120, 148, 228, 149, -1, 126, 148, 180, 149, -1, + 127, -1, 128, -1, 129, 148, 231, 149, -1, 132, + 148, 228, 149, -1, 226, -1, 9, -1, 8, -1, + -1, 113, -1, -1, 182, 183, -1, 26, 191, 135, + 196, -1, 38, 135, 196, -1, 32, 228, 201, 154, + 193, -1, -1, 186, 133, -1, 186, -1, 187, -1, + 186, 133, 187, -1, 201, 154, 193, -1, 201, -1, + 49, 200, 150, 185, 151, -1, 190, -1, 189, 133, + 190, -1, -1, 191, -1, 5, -1, 6, -1, 7, + -1, 53, -1, 121, -1, 3, -1, 191, 134, 191, + 135, 191, -1, 191, 136, 191, -1, 191, 137, 191, + -1, 191, 139, 191, -1, 191, 138, 191, -1, 191, + 140, 191, -1, 191, 141, 191, -1, 191, 11, 191, + -1, 191, 12, 191, -1, 142, 191, -1, 138, 191, + -1, 137, 191, -1, 140, 191, -1, 148, 228, 149, + 191, -1, 110, 148, 228, 149, -1, 148, 191, 149, + -1, 193, -1, 192, 133, 193, -1, 191, -1, 52, + 32, 228, 201, -1, -1, 195, 196, -1, 197, 147, + -1, 175, 230, 147, -1, 176, 147, -1, 147, -1, + 175, 228, 224, 173, -1, 175, 228, 181, 224, 148, + 169, 149, -1, -1, 201, -1, -1, 3, -1, 4, + -1, 3, -1, 4, -1, 22, -1, 131, -1, 204, + -1, 107, 204, -1, 125, 204, -1, 125, -1, 54, + -1, 108, -1, 45, -1, 20, -1, 50, -1, 56, + -1, -1, 74, -1, 74, -1, 106, 203, -1, 111, + -1, 81, 203, -1, 63, 203, -1, 75, -1, 28, + -1, 29, 3, -1, 29, 4, -1, 176, 205, -1, + 206, 150, 208, 151, -1, -1, 208, 209, -1, 175, + 219, -1, 43, 3, -1, 43, 4, -1, 176, 210, + -1, 93, 135, -1, 212, 197, 147, -1, 82, 135, + -1, 213, 198, 147, -1, 211, 150, 212, 213, 151, + -1, 211, 150, 216, 147, 151, -1, -1, 135, 4, + -1, 76, 3, -1, 76, 4, -1, 176, 216, -1, + 217, 215, 150, 160, 151, -1, 217, 135, 3, 150, + 164, 160, 151, -1, 214, -1, 216, 147, -1, 210, + 147, -1, 83, 3, -1, 83, 4, -1, 176, 220, + -1, 221, 150, 160, 151, -1, 140, 224, -1, 32, + 223, -1, 201, -1, 223, -1, 148, 224, 149, -1, + 224, -1, 225, 133, 224, -1, 101, -1, 124, -1, + 97, -1, 116, 200, 150, 195, 151, -1, 130, -1, + 4, -1, 202, -1, 32, 228, -1, 188, -1, 49, + 3, -1, 227, -1, 116, 3, -1, 230, -1, 123, + 3, -1, 105, 148, 228, 149, -1, 122, 175, 228, + 225, -1, 123, 200, 150, 195, 151, -1, 123, 200, + 117, 148, 197, 149, 199, 150, 182, 151, -1, 5, + -1, 5, 155, 5, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { 0, 286, 286, 295, 296, 297, 298, 302, 307, 308, - 309, 312, 313, 314, 315, 316, 320, 321, 322, 325, - 326, 327, 330, 331, 332, 333, 338, 339, 340, 345, - 346, 353, 355, 358, 361, 364, 366, 371, 374, 375, - 378, 381, 382, 383, 387, 392, 396, 402, 409, 410, - 411, 414, 415, 416, 419, 420, 424, 430, 431, 432, - 435, 436, 439, 440, 441, 442, 443, 444, 445, 446, + 309, 312, 313, 314, 315, 316, 320, 321, 322, 323, + 326, 327, 328, 331, 332, 333, 334, 339, 340, 341, + 346, 347, 354, 356, 359, 362, 365, 367, 372, 375, + 376, 379, 382, 383, 384, 388, 393, 397, 403, 410, + 411, 412, 415, 416, 417, 420, 421, 425, 431, 432, + 433, 436, 437, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 495, 496, 497, 498, + 487, 488, 489, 490, 491, 492, 493, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 515, 516, 521, 522, 525, 526, 529, - 533, 539, 545, 546, 547, 550, 554, 563, 567, 572, - 581, 582, 595, 596, 599, 600, 601, 602, 603, 604, + 509, 510, 511, 512, 516, 517, 522, 523, 526, 527, + 530, 534, 540, 546, 547, 548, 551, 555, 564, 568, + 573, 582, 583, 596, 597, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 623, 624, 627, 633, - 638, 639, 642, 643, 644, 645, 648, 656, 668, 669, - 672, 673, 674, 677, 679, 682, 683, 684, 685, 686, - 702, 703, 704, 705, 706, 707, 708, 711, 712, 715, - 716, 717, 718, 719, 720, 721, 724, 725, 731, 740, - 746, 747, 751, 754, 755, 758, 770, 771, 774, 775, - 778, 787, 796, 797, 800, 801, 804, 815, 827, 838, - 842, 843, 846, 847, 850, 855, 861, 862, 865, 866, - 867, 871, 872, 876, 877, 878, 881, 892, 893, 894, - 895, 896, 897, 898, 899, 900, 901, 902, 905, 910, - 915, 932, 933 + 615, 616, 617, 618, 619, 620, 621, 624, 625, 628, + 634, 639, 640, 643, 644, 645, 646, 649, 657, 669, + 670, 673, 674, 675, 678, 680, 683, 684, 685, 686, + 687, 703, 704, 705, 706, 707, 708, 709, 712, 713, + 716, 717, 718, 719, 720, 721, 722, 725, 726, 732, + 741, 747, 748, 752, 755, 756, 759, 771, 772, 775, + 776, 779, 788, 797, 798, 801, 802, 805, 816, 828, + 839, 843, 844, 847, 848, 851, 856, 862, 863, 866, + 867, 868, 872, 873, 877, 878, 879, 882, 893, 894, + 895, 896, 897, 898, 899, 900, 901, 902, 903, 906, + 911, 916, 933, 934 }; #endif @@ -983,66 +983,66 @@ static const unsigned short int yytoknum[] = static const unsigned char yyr1[] = { 0, 156, 157, 158, 158, 158, 158, 158, 158, 158, - 158, 159, 159, 159, 159, 159, 159, 159, 159, 160, - 160, 160, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 169, - 170, 171, 171, 171, 172, 172, 172, 172, 173, 173, - 173, 174, 174, 174, 175, 175, 176, 177, 177, 177, - 178, 178, 179, 179, 179, 179, 179, 179, 179, 179, + 158, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 160, 160, 160, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 169, 170, 171, 171, 171, 172, 172, 172, 172, 173, + 173, 173, 174, 174, 174, 175, 175, 176, 177, 177, + 177, 178, 178, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 180, 180, 181, 181, 182, 182, 183, - 183, 184, 185, 185, 185, 186, 186, 187, 187, 188, - 189, 189, 190, 190, 191, 191, 191, 191, 191, 191, + 179, 179, 179, 179, 180, 180, 181, 181, 182, 182, + 183, 183, 184, 185, 185, 185, 186, 186, 187, 187, + 188, 189, 189, 190, 190, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 192, 192, 193, 194, - 195, 195, 196, 196, 196, 196, 197, 198, 199, 199, - 200, 200, 200, 201, 201, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 203, 203, 204, - 204, 204, 204, 204, 204, 204, 205, 205, 206, 207, - 208, 208, 209, 210, 210, 211, 212, 212, 213, 213, - 214, 214, 215, 215, 216, 216, 217, 218, 218, 218, - 219, 219, 220, 220, 221, 222, 223, 223, 224, 224, - 224, 225, 225, 226, 226, 226, 227, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 229, 230, - 230, 231, 231 + 191, 191, 191, 191, 191, 191, 191, 192, 192, 193, + 194, 195, 195, 196, 196, 196, 196, 197, 198, 199, + 199, 200, 200, 200, 201, 201, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 203, 203, + 204, 204, 204, 204, 204, 204, 204, 205, 205, 206, + 207, 208, 208, 209, 210, 210, 211, 212, 212, 213, + 213, 214, 214, 215, 215, 216, 216, 217, 218, 218, + 218, 219, 219, 220, 220, 221, 222, 223, 223, 224, + 224, 224, 225, 225, 226, 226, 226, 227, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, + 230, 230, 231, 231 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const unsigned char yyr2[] = { 0, 2, 1, 0, 2, 2, 3, 2, 2, 2, - 2, 0, 2, 2, 3, 2, 2, 2, 2, 0, - 3, 2, 1, 2, 1, 2, 2, 1, 2, 2, - 2, 4, 3, 3, 4, 2, 3, 3, 0, 1, - 1, 1, 3, 1, 4, 3, 6, 5, 0, 3, - 3, 1, 3, 4, 0, 1, 3, 1, 3, 4, - 1, 3, 0, 1, 1, 1, 1, 1, 4, 4, - 1, 1, 1, 1, 1, 1, 4, 4, 1, 1, - 4, 1, 4, 4, 4, 1, 1, 4, 4, 4, - 4, 4, 1, 4, 1, 4, 1, 5, 1, 1, - 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, 0, 1, 0, 2, 4, - 3, 5, 0, 2, 1, 1, 3, 3, 1, 5, - 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, - 5, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 4, 4, 3, 1, 3, 1, 4, - 0, 2, 2, 3, 2, 1, 4, 7, 0, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 2, 1, 2, 2, 1, 1, 2, 2, 2, 4, - 0, 2, 2, 2, 2, 2, 2, 3, 2, 3, - 5, 5, 0, 2, 2, 2, 2, 5, 7, 1, - 2, 2, 2, 2, 2, 4, 2, 2, 1, 1, - 3, 1, 3, 1, 1, 1, 5, 1, 1, 1, - 2, 1, 2, 1, 2, 1, 2, 4, 4, 5, - 10, 1, 3 + 2, 0, 2, 2, 3, 2, 2, 2, 2, 2, + 0, 3, 2, 1, 2, 1, 2, 2, 1, 2, + 2, 2, 4, 3, 3, 4, 2, 3, 3, 0, + 1, 1, 1, 3, 1, 4, 3, 6, 5, 0, + 3, 3, 1, 3, 4, 0, 1, 3, 1, 3, + 4, 1, 3, 0, 1, 1, 1, 1, 1, 4, + 4, 1, 1, 1, 1, 1, 1, 4, 4, 1, + 1, 4, 1, 4, 4, 4, 1, 1, 4, 4, + 4, 4, 4, 1, 4, 1, 4, 1, 5, 1, + 1, 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, 0, 1, 0, 2, + 4, 3, 5, 0, 2, 1, 1, 3, 3, 1, + 5, 1, 3, 0, 1, 1, 1, 1, 1, 1, + 1, 5, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 4, 4, 3, 1, 3, 1, + 4, 0, 2, 2, 3, 2, 1, 4, 7, 0, + 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 0, 1, + 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, + 4, 0, 2, 2, 2, 2, 2, 2, 3, 2, + 3, 5, 5, 0, 2, 2, 2, 2, 5, 7, + 1, 2, 2, 2, 2, 2, 4, 2, 2, 1, + 1, 3, 1, 3, 1, 1, 1, 5, 1, 1, + 1, 2, 1, 2, 1, 2, 1, 2, 4, 4, + 5, 10, 1, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1050,66 +1050,66 @@ static const unsigned char yyr2[] = means the default is an error. */ static const unsigned short int yydefact[] = { - 3, 0, 2, 1, 0, 0, 0, 0, 190, 0, - 0, 0, 190, 54, 190, 22, 62, 10, 24, 11, - 27, 11, 9, 0, 0, 0, 0, 0, 0, 7, - 0, 0, 239, 0, 232, 5, 4, 0, 8, 0, - 0, 0, 216, 217, 258, 204, 195, 215, 0, 203, - 190, 205, 201, 206, 207, 209, 214, 207, 0, 207, - 0, 202, 211, 190, 190, 200, 257, 196, 261, 259, - 197, 263, 0, 265, 0, 223, 224, 191, 192, 0, - 0, 0, 234, 235, 0, 0, 55, 0, 63, 64, - 65, 66, 67, 0, 0, 70, 71, 72, 73, 74, - 75, 0, 78, 79, 0, 81, 0, 0, 85, 86, - 0, 0, 0, 0, 0, 92, 0, 94, 0, 96, - 0, 98, 99, 0, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 0, 111, 112, 113, 255, 114, 0, - 116, 253, 117, 118, 119, 0, 121, 122, 123, 0, - 0, 0, 254, 0, 128, 129, 0, 0, 0, 57, - 132, 0, 0, 0, 0, 0, 218, 225, 236, 244, - 23, 25, 26, 6, 220, 241, 0, 240, 0, 0, - 19, 28, 29, 30, 260, 262, 208, 213, 212, 0, - 210, 198, 264, 266, 199, 193, 194, 0, 0, 142, - 0, 32, 180, 0, 0, 180, 0, 0, 0, 0, + 3, 0, 2, 1, 0, 0, 0, 0, 191, 0, + 0, 0, 191, 55, 191, 23, 63, 10, 25, 11, + 28, 11, 9, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 240, 0, 233, 5, 4, 0, 8, 0, + 0, 0, 217, 218, 259, 205, 196, 216, 0, 204, + 191, 206, 202, 207, 208, 210, 215, 208, 0, 208, + 0, 203, 212, 191, 191, 201, 258, 197, 262, 260, + 198, 264, 0, 266, 0, 224, 225, 192, 193, 0, + 0, 0, 235, 236, 0, 0, 56, 0, 64, 65, + 66, 67, 68, 0, 0, 71, 72, 73, 74, 75, + 76, 0, 79, 80, 0, 82, 0, 0, 86, 87, + 0, 0, 0, 0, 0, 93, 0, 95, 0, 97, + 0, 99, 100, 0, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 0, 112, 113, 114, 256, 115, 0, + 117, 254, 118, 119, 120, 0, 122, 123, 124, 0, + 0, 0, 255, 0, 129, 130, 0, 0, 0, 58, + 133, 0, 0, 0, 0, 0, 219, 226, 237, 245, + 24, 26, 27, 6, 221, 242, 0, 241, 0, 0, + 20, 29, 30, 31, 261, 263, 209, 214, 213, 0, + 211, 199, 265, 267, 200, 194, 195, 0, 0, 143, + 0, 33, 181, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 0, 0, 152, 0, 0, 0, 0, 0, 0, - 62, 56, 33, 0, 17, 18, 0, 0, 15, 13, - 12, 16, 37, 35, 242, 243, 36, 54, 0, 54, - 0, 0, 233, 19, 54, 0, 0, 31, 0, 144, - 145, 148, 179, 54, 0, 0, 0, 248, 249, 251, - 268, 54, 54, 0, 159, 154, 155, 156, 157, 0, - 158, 0, 0, 0, 0, 0, 178, 0, 176, 0, - 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 153, 0, 0, 0, - 0, 0, 0, 134, 133, 0, 271, 0, 0, 58, - 62, 0, 14, 219, 0, 221, 226, 0, 0, 0, - 54, 0, 0, 54, 245, 21, 0, 0, 267, 141, - 149, 143, 0, 185, 256, 0, 55, 181, 0, 247, - 246, 0, 0, 0, 269, 68, 0, 171, 170, 172, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 69, 77, 76, 80, 0, 82, 83, - 84, 87, 88, 89, 90, 91, 93, 95, 0, 152, - 100, 110, 0, 120, 124, 125, 126, 127, 0, 130, - 131, 59, 0, 222, 228, 0, 227, 230, 0, 231, - 19, 237, 135, 20, 146, 147, 265, 184, 182, 250, - 252, 188, 0, 175, 0, 167, 168, 0, 161, 162, - 164, 163, 165, 166, 177, 61, 97, 151, 0, 272, - 34, 48, 229, 54, 136, 0, 183, 0, 189, 174, - 173, 0, 115, 152, 186, 238, 0, 137, 160, 0, - 0, 51, 38, 0, 50, 0, 49, 257, 0, 43, - 39, 41, 0, 0, 0, 0, 270, 138, 52, 0, - 187, 0, 0, 48, 0, 54, 53, 42, 48, 38, - 45, 54, 140, 38, 44, 0, 139, 0, 47, 46 + 153, 0, 0, 153, 0, 0, 0, 0, 0, 0, + 63, 57, 34, 0, 17, 18, 19, 0, 15, 13, + 12, 16, 38, 36, 243, 244, 37, 55, 0, 55, + 0, 0, 234, 20, 55, 0, 0, 32, 0, 145, + 146, 149, 180, 55, 0, 0, 0, 249, 250, 252, + 269, 55, 55, 0, 160, 155, 156, 157, 158, 0, + 159, 0, 0, 0, 0, 0, 179, 0, 177, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 151, 154, 0, 0, 0, + 0, 0, 0, 135, 134, 0, 272, 0, 0, 59, + 63, 0, 14, 220, 0, 222, 227, 0, 0, 0, + 55, 0, 0, 55, 246, 22, 0, 0, 268, 142, + 150, 144, 0, 186, 257, 0, 56, 182, 0, 248, + 247, 0, 0, 0, 270, 69, 0, 172, 171, 173, + 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 70, 78, 77, 81, 0, 83, 84, + 85, 88, 89, 90, 91, 92, 94, 96, 0, 153, + 101, 111, 0, 121, 125, 126, 127, 128, 0, 131, + 132, 60, 0, 223, 229, 0, 228, 231, 0, 232, + 20, 238, 136, 21, 147, 148, 266, 185, 183, 251, + 253, 189, 0, 176, 0, 168, 169, 0, 162, 163, + 165, 164, 166, 167, 178, 62, 98, 152, 0, 273, + 35, 49, 230, 55, 137, 0, 184, 0, 190, 175, + 174, 0, 116, 153, 187, 239, 0, 138, 161, 0, + 0, 52, 39, 0, 51, 0, 50, 258, 0, 44, + 40, 42, 0, 0, 0, 0, 271, 139, 53, 0, + 188, 0, 0, 49, 0, 55, 54, 43, 49, 39, + 46, 55, 141, 39, 45, 0, 140, 0, 48, 47 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short int yydefgoto[] = { -1, 1, 2, 161, 254, 335, 18, 19, 20, 235, - 165, 21, 22, 468, 469, 470, 471, 454, 460, 336, + 165, 21, 236, 468, 469, 470, 471, 454, 460, 336, 86, 158, 293, 159, 315, 445, 463, 477, 24, 258, 259, 260, 68, 304, 305, 286, 287, 288, 26, 263, - 347, 348, 337, 447, 79, 267, 69, 187, 70, 166, + 347, 348, 337, 447, 79, 267, 69, 187, 70, 237, 28, 238, 247, 325, 30, 31, 249, 330, 32, 179, 33, 34, 239, 240, 169, 37, 241, 268, 269, 270, 160, 71, 473, 40, 73, 317 @@ -1117,289 +1117,285 @@ static const short int yydefgoto[] = /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -446 +#define YYPACT_NINF -422 static const short int yypact[] = { - -446, 35, 724, -446, 46, 664, -106, 102, 146, 85, - 84, 186, 146, -18, 146, -446, 887, -446, -446, -446, - -446, -446, -446, 40, 0, 22, 25, 44, -10, -446, - 54, 37, -446, 80, 58, -446, -446, 82, -446, 92, - 94, 97, -446, -446, -446, -446, -446, -446, 664, -446, - 200, -446, -446, -446, 77, -446, -446, 77, 104, 77, - 205, -446, -446, 202, 214, 205, -446, -446, -446, -446, - -446, -446, 227, -446, 248, -446, -446, -446, -446, 110, - 664, 118, -446, -446, 117, 664, -446, -96, -446, -446, - -446, -446, -446, 121, 129, -446, -446, -446, -446, -446, - -446, 136, -446, -446, 154, -446, 156, 157, -446, -446, - 158, 159, 160, 162, 164, -446, 166, -446, 167, -446, - 170, -446, -446, 174, -446, -446, -446, -446, -446, -446, - -446, -446, -446, 175, -446, -446, -446, -446, -446, 177, - -446, -446, -446, -446, -446, 179, -446, -446, -446, 181, - 185, 191, -446, 192, -446, -446, 194, 195, -95, -446, - -446, 72, 674, 344, 231, 198, -446, -446, -446, -446, - -446, -446, -446, -446, -446, -446, -42, -446, 270, 199, - -446, -446, -446, -446, -446, 204, -446, -446, -446, 664, - -446, -446, 204, -93, -446, -446, -446, 196, 208, 227, - 227, -446, -446, 13, 210, -446, 227, 314, 243, 351, - 352, 292, 314, 353, 355, 314, 357, 314, 314, 310, - 314, -71, 314, 314, 314, 664, 664, 267, 363, 664, - 887, 217, -446, 222, -446, -446, 31, 224, -446, -446, - -446, -446, -446, -446, -446, -446, -446, 131, 237, -63, - 226, 225, -446, -446, 663, 228, 314, -446, 223, 249, - -446, 230, -446, -72, -7, 13, 13, -446, -446, -446, - 257, -18, -25, 244, -446, -446, -446, -446, -446, 246, - -446, 314, 314, 314, 314, 511, 367, -85, -446, 247, - 250, 251, -446, -61, 252, 254, 256, 258, 259, 260, - 261, 265, 282, 373, -56, -446, 367, 266, 262, -46, - 474, 268, 277, -446, -446, 278, 273, 287, 288, -446, - 887, 390, -446, -446, -14, -446, -446, 303, 664, 295, - 137, 294, 370, 697, -446, -446, 664, 300, -446, -446, - -446, 227, 314, -446, -446, 664, 308, -446, 311, -446, - -446, 301, 13, 318, -446, -446, 664, -446, -446, -446, - -446, 524, 320, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, -446, -446, -446, -446, 449, -446, -446, - -446, -446, -446, -446, -446, -446, -446, -446, 323, 314, - -446, -446, 314, -446, -446, -446, -446, -446, 454, -446, - -446, -446, 324, -446, -446, 13, -446, -446, 327, -446, - -446, -446, 365, -446, -446, -446, 333, -446, -446, -446, - -446, 227, 332, -446, 314, -446, -446, 73, 59, 16, - -3, -3, 279, 279, -446, -446, -446, -446, 339, -446, - -446, 338, -446, 785, -446, 13, -446, 342, -446, -446, - -446, 314, -446, 458, -446, -446, 345, -446, 367, 105, - -86, -446, 281, -6, -446, 314, 346, -31, 348, -446, - 361, -446, 664, 13, 314, 364, -446, -446, 367, 314, - -446, 421, 13, -20, 542, -84, 367, -446, -17, 281, - -446, -84, -446, 281, -446, 360, -446, 371, -446, -446 + -422, 32, 758, -422, 122, 675, -101, 139, 194, 41, + 67, 196, 194, -43, 194, -422, 860, -422, -422, -422, + -422, -422, -422, 34, -35, -13, -7, 11, -18, -422, + 80, 22, -422, 98, 39, -422, -422, 51, -422, 100, + 109, 111, -422, -422, -422, -422, -422, -422, 675, -422, + 200, -422, -422, -422, 117, -422, -422, 117, 112, 117, + 27, -422, -422, 202, 213, 27, -422, -422, -422, -422, + -422, -422, 215, -422, 257, -422, -422, -422, -422, 118, + 675, 120, -422, -422, 119, 675, -422, -94, -422, -422, + -422, -422, -422, 125, 126, -422, -422, -422, -422, -422, + -422, 127, -422, -422, 128, -422, 129, 131, -422, -422, + 132, 134, 135, 136, 138, -422, 140, -422, 141, -422, + 142, -422, -422, 143, -422, -422, -422, -422, -422, -422, + -422, -422, -422, 154, -422, -422, -422, -422, -422, 156, + -422, -422, -422, -422, -422, 157, -422, -422, -422, 158, + 159, 160, -422, 162, -422, -422, 163, 164, -95, -422, + -422, 594, 708, 311, 227, 165, -422, -422, -422, -422, + -422, -422, -422, -422, -422, -422, -42, -422, 229, 166, + -422, -422, -422, -422, -422, 168, -422, -422, -422, 675, + -422, -422, 168, -93, -422, -422, -422, 169, 173, 215, + 215, -422, -422, 46, 177, -422, 215, 314, 243, 319, + 321, 292, 314, 325, 331, 314, 332, 314, 314, 286, + 314, -58, 314, 314, 314, 675, 675, 233, 338, 675, + 860, 195, -422, 201, -422, -422, -422, 203, -422, -422, + -422, -422, -422, -422, -422, -422, -422, 84, 219, -52, + 210, 198, -422, -422, 358, 209, 314, -422, 208, 228, + -422, 206, -422, -36, -22, 46, 46, -422, -422, -422, + 230, -43, -24, 216, -422, -422, -422, -422, -422, 218, + -422, 314, 314, 314, 314, 511, 10, -80, -422, 220, + 221, 222, -422, -62, 223, 224, 225, 226, 235, 244, + 245, 247, 282, 365, -61, -422, 10, 249, 246, -28, + 537, 250, 251, -422, -422, 252, 248, 256, 259, -422, + 860, 368, -422, -422, -14, -422, -422, 242, 675, 231, + 92, 258, 313, 695, -422, -422, 675, 267, -422, -422, + -422, 215, 314, -422, -422, 675, 268, -422, 270, -422, + -422, 277, 46, 279, -422, -422, 675, -422, -422, -422, + -422, 551, 287, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, -422, -422, -422, -422, 429, -422, -422, + -422, -422, -422, -422, -422, -422, -422, -422, 289, 314, + -422, -422, 314, -422, -422, -422, -422, -422, 434, -422, + -422, -422, 293, -422, -422, 46, -422, -422, 298, -422, + -422, -422, 334, -422, -422, -422, 303, -422, -422, -422, + -422, 215, 306, -422, 314, -422, -422, 74, 16, 49, + 30, 30, 241, 241, -422, -422, -422, -422, 308, -422, + -422, 307, -422, 716, -422, 46, -422, 317, -422, -422, + -422, 314, -422, 458, -422, -422, 310, -422, 10, 86, + -88, -422, 281, 42, -422, 314, 320, -27, 324, -422, + 336, -422, 675, 46, 314, 343, -422, -422, 10, 314, + -422, 421, 46, -17, 474, -112, 10, -422, -11, 281, + -422, -112, -422, 281, -422, 339, -422, 341, -422, -422 }; /* YYPGOTO[NTERM-NUM]. */ static const short int yypgoto[] = { - -446, -446, -446, 479, -235, 9, -446, -446, 178, -446, - -446, -446, -446, -350, -446, -446, 32, -410, -446, -9, - -2, -446, -446, -207, -446, -446, -446, -446, -446, -446, - -446, 171, 3, 296, -367, -187, -446, -156, -446, 316, - -445, -206, 193, -446, 27, -70, -446, 87, 60, 12, - -446, 520, -446, -446, -13, -446, -446, -446, -446, -446, - -8, -446, 522, 4, -446, -446, 523, 274, -253, -446, - 309, 5, -4, -446, 1, -446 + -422, -422, -422, 471, -237, 7, -422, -422, 161, -422, + -422, -422, 492, -369, -422, -422, 17, -409, -422, -9, + -2, -422, -422, -213, -422, -422, -422, -422, -422, -422, + -422, 167, 3, 274, -370, -187, -422, -197, -422, 294, + -421, -223, 170, -422, 40, -70, -422, 25, 54, 44, + -422, 499, -422, -422, 480, -422, -422, -422, -422, -422, + -15, -422, 502, 4, -422, -422, 504, 255, -253, -422, + 291, 5, -4, -422, 1, -422 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -192 +#define YYTABLE_NINF -193 static const short int yytable[] = { - 23, 72, 197, 41, 85, 25, 36, 39, 363, 364, - 167, 17, 350, 351, 27, 168, 195, 196, 333, 327, - 474, 204, 437, 319, -191, 264, 137, 363, 364, 7, - 141, 302, 475, 306, 11, 3, 306, 310, 230, 84, - 492, 87, 74, 329, 184, 264, 496, 465, 372, 42, - 43, 248, 290, 152, 205, 295, 296, -191, 231, 299, - 4, 301, 11, 343, 373, 353, 308, 466, 16, 4, - 363, 364, 377, 490, 7, 343, 200, 389, 494, 344, - 16, 203, 232, 7, 363, 364, 461, 389, 378, 16, - 84, 87, 81, 390, 357, 358, 359, 360, 361, 420, - 339, 4, -40, 393, 5, 75, 76, 11, 274, 6, - 275, 276, 277, 401, 164, 7, 11, 80, -40, 163, - 191, 8, 343, 164, 9, 194, 354, 16, 489, 261, - 262, 493, 453, 265, 16, 453, 273, 370, 371, 495, - 174, 10, 233, 497, 188, 476, 190, 170, 11, 77, - 78, 186, 441, 265, 368, 369, 370, 371, 278, 236, - 236, 266, 41, 41, 25, 25, 39, 39, 250, 171, - 234, 234, 172, 237, 237, 443, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 255, 415, 176, 12, 82, - 83, 173, 456, 178, 13, 14, 367, 368, 369, 370, - 371, 175, 306, 185, 78, 192, 78, 365, 451, 366, - 367, 368, 369, 370, 371, 279, 434, 193, 78, 15, - 483, 311, 312, 167, 16, 318, 280, 177, 168, 488, - 195, 196, 180, 47, 244, 245, 438, 450, 324, 181, - 328, 182, 281, 282, 183, 283, 274, 284, 275, 276, - 277, 289, 189, 285, 345, 41, 198, 25, 464, 39, - 199, 346, 328, 345, 458, 201, 306, 202, 54, 206, - 346, 261, 359, 251, 252, 313, 314, 207, 478, 55, - 56, 362, 323, 16, 208, 44, 57, 484, 407, 16, - 363, 364, 486, 363, 364, 274, 278, 275, 276, 277, - 294, 45, 209, 46, 210, 211, 212, 213, 214, 47, - 215, 59, 216, 48, 217, 218, 62, 274, 219, 275, - 276, 277, 220, 221, 405, 222, 49, 223, 403, 224, - 50, 51, 412, 225, 41, 52, 25, 53, 39, 226, - 227, 405, 228, 229, 54, 278, 416, 243, 246, 253, - 256, 448, 422, 279, -191, 55, 56, 257, 271, 291, - 292, 297, 57, 298, 280, 300, 303, 278, 316, 320, - 321, 322, 326, 331, 340, 332, 388, 338, 363, 364, - 281, 282, 341, 283, 342, 284, 58, 59, 60, 61, - 352, 285, 62, 355, 356, 392, 374, 63, 402, 375, - 376, 379, 279, 380, 64, 381, 65, 382, 383, 384, - 385, 467, 67, 280, 386, 391, 365, 395, 366, 367, - 368, 369, 370, 371, 279, 44, 396, 397, 398, 281, - 282, 387, 283, 16, 284, 280, 399, 400, 404, 10, - 285, 45, 406, 46, 41, 409, 25, 413, 39, 47, - 419, 281, 282, 48, 283, 417, 284, 435, 418, 439, - 472, 274, 285, 275, 276, 277, 49, 421, 482, 424, - 50, 51, 436, 440, 442, 52, 345, 53, 444, 472, - 446, 449, 345, 346, 54, 363, 364, 472, 452, 346, - 453, 472, 457, 462, 481, 55, 56, 480, 479, 485, - 162, 365, 57, 366, 367, 368, 369, 370, 371, 498, - 410, 278, 414, 487, 274, 44, 275, 276, 277, 309, - 499, 272, 29, 408, 35, 38, 58, 59, 60, 61, - 307, 45, 62, 46, 0, 363, 364, 63, 349, 47, - 0, 0, 0, 48, 64, 0, 65, 0, 0, 0, - 0, 66, 67, 363, 364, 0, 49, 0, 0, 0, - 50, 51, 0, 0, 278, 52, 0, 53, 279, 0, + 23, 72, 197, 41, 85, 25, 36, 39, 168, 17, + 264, 290, 350, 351, 295, 296, 333, 319, 299, 437, + 301, 363, 364, 204, -192, 308, 329, 363, 364, 7, + 327, 302, 3, 306, 11, 343, 306, 310, 230, 137, + 16, 363, 364, 141, 184, 465, 27, 74, 353, 195, + 196, 248, 84, 372, 87, 47, 205, -192, 231, 339, + 363, 364, 11, 4, 492, 466, 152, 166, 474, 373, + 496, 377, 389, 80, 490, 81, 200, 7, 264, 494, + 475, 203, 188, 461, 190, 363, 364, 378, 390, 274, + 54, 275, 276, 277, 357, 358, 359, 360, 361, 420, + 16, 55, 56, 84, 87, 389, -41, 401, 57, 16, + 11, 343, 170, 163, 191, 344, 16, 164, 265, 194, + 495, 393, -41, 343, 497, 42, 43, 354, 16, 261, + 262, 489, 174, 59, 171, 453, 273, 493, 62, 278, + 172, 453, 75, 76, 365, 415, 366, 367, 368, 369, + 370, 371, 441, 367, 368, 369, 370, 371, 173, 23, + 23, 250, 41, 41, 25, 25, 39, 39, 234, 234, + 370, 371, 176, 443, 178, 434, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 255, 265, 368, 369, 370, + 371, 186, 456, 476, 266, 438, 279, 77, 78, 82, + 83, 180, 306, 185, 78, 192, 78, 280, 365, 451, + 366, 367, 368, 369, 370, 371, 193, 78, 195, 196, + 483, 311, 312, 281, 282, 318, 283, 175, 284, 488, + 244, 245, 251, 252, 285, 323, 16, 450, 324, 464, + 328, 313, 314, 407, 16, 177, 274, 181, 275, 276, + 277, 289, 363, 364, 345, 41, 182, 25, 183, 39, + 189, 346, 328, 345, 458, 198, 306, 201, 199, 202, + 346, 261, 359, 206, 207, 208, 209, 210, 478, 211, + 212, 362, 213, 214, 215, 44, 216, 484, 217, 218, + 219, 220, 486, 363, 364, 274, 278, 275, 276, 277, + 294, 45, 221, 46, 222, 223, 224, 225, 226, 47, + 227, 228, 229, 48, 243, 246, 253, 274, -192, 275, + 276, 277, 257, 256, 405, 271, 49, 291, 403, 292, + 50, 51, 412, 297, 41, 52, 25, 53, 39, 298, + 300, 405, 303, 316, 54, 278, 416, 320, 332, 321, + 322, 448, 422, 279, 326, 55, 56, 331, 338, 340, + 342, 341, 57, 352, 280, 355, 356, 278, 388, 374, + 375, 376, 379, 380, 381, 382, 402, 404, 406, 392, + 281, 282, 10, 283, 383, 284, 58, 59, 60, 61, + 5, 285, 62, 384, 385, 6, 386, 63, 391, 395, + 396, 397, 279, 398, 64, 399, 65, 8, 400, 409, + 9, 467, 67, 280, 413, 417, 365, 418, 366, 367, + 368, 369, 370, 371, 279, 44, 419, 10, 421, 281, + 282, 387, 283, 16, 284, 280, 424, 435, 436, 439, + 285, 45, 440, 46, 41, 442, 25, 444, 39, 47, + 446, 281, 282, 48, 283, 449, 284, 452, 462, 453, + 472, 274, 285, 275, 276, 277, 49, 457, 482, 481, + 50, 51, 479, 480, 12, 52, 345, 53, 485, 472, + 13, 14, 345, 346, 54, 363, 364, 472, 498, 346, + 499, 472, 162, 410, 22, 55, 56, 309, 487, 272, + 408, 29, 57, 167, 35, 15, 38, 0, 414, 334, + 16, 278, 307, 0, 274, 44, 275, 276, 277, 349, + 0, 0, 0, 0, 0, 0, 58, 59, 60, 61, + 0, 45, 62, 46, 0, 0, 0, 63, 0, 47, + 0, 0, 0, 48, 64, 0, 65, 0, 363, 364, + 0, 66, 67, 0, 0, 0, 49, 0, 0, 0, + 50, 51, 363, 364, 278, 52, 0, 53, 279, 0, 0, 0, 0, 16, 54, 0, 0, 0, 0, 280, 0, 0, 0, 0, 0, 55, 56, 0, 0, 0, 0, 0, 57, 0, 0, 281, 282, 0, 459, 0, - 284, 0, 0, 0, 0, 0, 285, 0, 365, 0, + 284, 0, 0, 0, 232, 0, 285, 0, 365, 491, 366, 367, 368, 369, 370, 371, 58, 59, 60, 61, - 0, 279, 62, 394, 0, 0, 0, 63, 0, 0, - 0, 0, 280, 0, 64, 0, 65, 0, 0, 0, - 0, 66, 67, 0, 0, 0, 0, 0, 281, 282, - 0, 283, 0, 284, 0, 0, 0, 0, 365, 285, - 366, 367, 368, 369, 370, 371, 0, 0, 44, 0, - 0, 0, 0, 423, 0, 0, 365, 491, 366, 367, - 368, 369, 370, 371, 45, 0, 46, 0, 0, 0, - 0, 0, 47, 0, 0, 5, 48, 0, 0, 0, - 6, 0, 0, 4, 0, 0, 5, 0, 0, 49, - 0, 6, 8, 50, 51, 9, 0, 7, 52, 0, - 53, 0, 0, 8, 0, 0, 9, 54, 0, 5, - 0, 0, 10, 0, 6, 0, 0, 0, 55, 56, - 0, 0, 0, 10, 233, 57, 8, 0, 0, 9, - 11, 0, 0, 4, 0, 0, 5, 0, 0, 0, - 0, 6, 0, 0, 0, 0, 10, 7, 0, 58, - 59, 60, 61, 8, 0, 62, 9, 0, 0, 12, - 63, 0, 0, 0, 0, 13, 14, 64, 0, 65, - 12, 0, 0, 10, 66, 67, 13, 14, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 12, 334, 16, 0, 5, 0, 13, - 14, 15, 6, 0, 0, 242, 16, 0, 0, 0, - 0, 0, 0, 0, 8, 0, 0, 9, 0, 0, - 12, 0, 0, 0, 15, 0, 13, 14, 411, 16, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 12, 89, 90, 0, 91, 92, 13, 14, 0, - 0, 93, 0, 94, 0, 0, 0, 0, 0, 0, - 95, 96, 97, 98, 0, 99, 100, 101, 102, 103, - 0, 104, 15, 105, 106, 107, 455, 16, 108, 0, - 0, 0, 109, 0, 110, 111, 112, 113, 114, 115, - 0, 116, 117, 118, 119, 120, 0, 0, 121, 0, - 122, 0, 0, 0, 0, 123, 0, 124, 0, 0, - 0, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 0, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 0, 0, 0, 0, 145, 0, 0, 146, - 0, 147, 148, 0, 0, 149, 150, 151, 0, 0, - 0, 152, 0, 153, 154, 155, 156, 0, 0, 157 + 0, 279, 62, 4, 0, 0, 5, 63, 0, 0, + 0, 6, 280, 0, 64, 0, 65, 7, 0, 0, + 0, 66, 67, 8, 0, 0, 9, 0, 281, 282, + 0, 283, 0, 284, 0, 0, 0, 0, 0, 285, + 0, 0, 0, 10, 233, 0, 0, 0, 0, 0, + 11, 365, 0, 366, 367, 368, 369, 370, 371, 44, + 0, 0, 0, 0, 0, 365, 394, 366, 367, 368, + 369, 370, 371, 0, 0, 45, 0, 46, 0, 0, + 423, 0, 0, 47, 0, 0, 0, 48, 0, 0, + 12, 0, 0, 0, 0, 0, 13, 14, 0, 0, + 49, 0, 0, 0, 50, 51, 0, 5, 0, 52, + 0, 53, 6, 0, 0, 0, 0, 4, 54, 0, + 5, 15, 0, 0, 8, 6, 16, 9, 5, 55, + 56, 7, 0, 6, 0, 0, 57, 8, 0, 0, + 9, 0, 0, 0, 10, 8, 0, 0, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 10, 233, 0, + 58, 59, 60, 61, 11, 10, 62, 4, 0, 0, + 5, 63, 0, 0, 0, 6, 0, 0, 64, 0, + 65, 7, 0, 0, 0, 66, 67, 8, 0, 0, + 9, 12, 0, 0, 0, 0, 0, 13, 14, 0, + 0, 0, 0, 0, 12, 0, 0, 10, 0, 0, + 13, 14, 12, 0, 11, 0, 0, 0, 13, 14, + 0, 0, 15, 0, 0, 0, 411, 16, 0, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 0, 242, + 16, 0, 0, 15, 0, 0, 0, 455, 16, 0, + 0, 0, 0, 88, 12, 89, 90, 0, 91, 92, + 13, 14, 0, 0, 93, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 97, 98, 0, 99, 100, + 101, 102, 103, 0, 104, 15, 105, 106, 107, 0, + 16, 108, 0, 0, 0, 109, 0, 110, 111, 112, + 113, 114, 115, 0, 116, 117, 118, 119, 120, 0, + 0, 121, 0, 122, 0, 0, 0, 0, 123, 0, + 124, 0, 0, 0, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 0, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 0, 0, 0, 0, 145, + 0, 0, 146, 0, 147, 148, 0, 0, 149, 150, + 151, 0, 0, 0, 152, 0, 153, 154, 155, 156, + 0, 0, 157 }; static const short int yycheck[] = { - 2, 5, 72, 2, 13, 2, 2, 2, 11, 12, - 23, 2, 265, 266, 2, 23, 3, 4, 253, 82, - 26, 117, 389, 230, 117, 32, 97, 11, 12, 43, - 101, 218, 38, 220, 76, 0, 223, 224, 133, 12, - 485, 14, 148, 249, 48, 32, 491, 133, 133, 3, - 4, 93, 208, 124, 150, 211, 212, 150, 153, 215, - 29, 217, 76, 147, 149, 271, 222, 153, 152, 29, - 11, 12, 133, 483, 43, 147, 80, 133, 488, 151, - 152, 85, 10, 43, 11, 12, 453, 133, 149, 152, - 63, 64, 8, 149, 281, 282, 283, 284, 285, 352, - 256, 29, 133, 149, 32, 3, 4, 76, 3, 37, - 5, 6, 7, 320, 83, 43, 76, 32, 149, 79, - 60, 49, 147, 83, 52, 65, 151, 152, 148, 199, - 200, 148, 152, 140, 152, 152, 206, 140, 141, 489, - 150, 69, 70, 493, 57, 151, 59, 147, 76, 3, - 4, 74, 405, 140, 138, 139, 140, 141, 53, 161, - 162, 148, 161, 162, 161, 162, 161, 162, 176, 147, - 161, 162, 147, 161, 162, 410, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 189, 342, 150, 116, 3, - 4, 147, 445, 135, 122, 123, 137, 138, 139, 140, - 141, 147, 389, 3, 4, 3, 4, 134, 135, 136, - 137, 138, 139, 140, 141, 110, 372, 3, 4, 147, - 473, 225, 226, 236, 152, 229, 121, 147, 236, 482, - 3, 4, 150, 28, 3, 4, 392, 424, 247, 147, - 249, 147, 137, 138, 147, 140, 3, 142, 5, 6, - 7, 8, 148, 148, 263, 254, 8, 254, 153, 254, - 150, 263, 271, 272, 451, 147, 453, 150, 63, 148, - 272, 341, 459, 3, 4, 8, 9, 148, 465, 74, - 75, 285, 151, 152, 148, 4, 81, 474, 151, 152, - 11, 12, 479, 11, 12, 3, 53, 5, 6, 7, + 2, 5, 72, 2, 13, 2, 2, 2, 23, 2, + 32, 208, 265, 266, 211, 212, 253, 230, 215, 389, + 217, 11, 12, 117, 117, 222, 249, 11, 12, 43, + 82, 218, 0, 220, 76, 147, 223, 224, 133, 97, + 152, 11, 12, 101, 48, 133, 2, 148, 271, 3, + 4, 93, 12, 133, 14, 28, 150, 150, 153, 256, + 11, 12, 76, 29, 485, 153, 124, 23, 26, 149, + 491, 133, 133, 32, 483, 8, 80, 43, 32, 488, + 38, 85, 57, 453, 59, 11, 12, 149, 149, 3, + 63, 5, 6, 7, 281, 282, 283, 284, 285, 352, + 152, 74, 75, 63, 64, 133, 133, 320, 81, 152, + 76, 147, 147, 79, 60, 151, 152, 83, 140, 65, + 489, 149, 149, 147, 493, 3, 4, 151, 152, 199, + 200, 148, 150, 106, 147, 152, 206, 148, 111, 53, + 147, 152, 3, 4, 134, 342, 136, 137, 138, 139, + 140, 141, 405, 137, 138, 139, 140, 141, 147, 161, + 162, 176, 161, 162, 161, 162, 161, 162, 161, 162, + 140, 141, 150, 410, 135, 372, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 189, 140, 138, 139, 140, + 141, 74, 445, 151, 148, 392, 110, 3, 4, 3, + 4, 150, 389, 3, 4, 3, 4, 121, 134, 135, + 136, 137, 138, 139, 140, 141, 3, 4, 3, 4, + 473, 225, 226, 137, 138, 229, 140, 147, 142, 482, + 3, 4, 3, 4, 148, 151, 152, 424, 247, 153, + 249, 8, 9, 151, 152, 147, 3, 147, 5, 6, + 7, 8, 11, 12, 263, 254, 147, 254, 147, 254, + 148, 263, 271, 272, 451, 8, 453, 147, 150, 150, + 272, 341, 459, 148, 148, 148, 148, 148, 465, 148, + 148, 285, 148, 148, 148, 4, 148, 474, 148, 148, + 148, 148, 479, 11, 12, 3, 53, 5, 6, 7, 8, 20, 148, 22, 148, 148, 148, 148, 148, 28, - 148, 106, 148, 32, 148, 148, 111, 3, 148, 5, - 6, 7, 148, 148, 328, 148, 45, 148, 324, 148, - 49, 50, 336, 148, 333, 54, 333, 56, 333, 148, - 148, 345, 148, 148, 63, 53, 345, 3, 150, 150, - 154, 421, 356, 110, 150, 74, 75, 149, 148, 8, - 8, 8, 81, 8, 121, 8, 56, 53, 5, 152, - 148, 147, 135, 147, 151, 150, 3, 149, 11, 12, - 137, 138, 133, 140, 154, 142, 105, 106, 107, 108, - 133, 148, 111, 149, 148, 133, 149, 116, 8, 149, - 149, 149, 110, 149, 123, 149, 125, 149, 149, 149, - 149, 130, 131, 121, 149, 149, 134, 149, 136, 137, - 138, 139, 140, 141, 110, 4, 149, 149, 155, 137, - 138, 149, 140, 152, 142, 121, 149, 149, 135, 69, - 148, 20, 147, 22, 443, 151, 443, 147, 443, 28, - 149, 137, 138, 32, 140, 147, 142, 8, 147, 5, - 462, 3, 148, 5, 6, 7, 45, 149, 472, 149, - 49, 50, 149, 149, 147, 54, 485, 56, 113, 481, - 147, 149, 491, 485, 63, 11, 12, 489, 149, 491, - 152, 493, 150, 148, 133, 74, 75, 149, 152, 135, - 21, 134, 81, 136, 137, 138, 139, 140, 141, 149, - 332, 53, 341, 481, 3, 4, 5, 6, 7, 223, - 149, 205, 2, 330, 2, 2, 105, 106, 107, 108, - 221, 20, 111, 22, -1, 11, 12, 116, 264, 28, - -1, -1, -1, 32, 123, -1, 125, -1, -1, -1, - -1, 130, 131, 11, 12, -1, 45, -1, -1, -1, - 49, 50, -1, -1, 53, 54, -1, 56, 110, -1, + 148, 148, 148, 32, 3, 150, 150, 3, 150, 5, + 6, 7, 149, 154, 328, 148, 45, 8, 324, 8, + 49, 50, 336, 8, 333, 54, 333, 56, 333, 8, + 8, 345, 56, 5, 63, 53, 345, 152, 150, 148, + 147, 421, 356, 110, 135, 74, 75, 147, 149, 151, + 154, 133, 81, 133, 121, 149, 148, 53, 3, 149, + 149, 149, 149, 149, 149, 149, 8, 135, 147, 133, + 137, 138, 69, 140, 149, 142, 105, 106, 107, 108, + 32, 148, 111, 149, 149, 37, 149, 116, 149, 149, + 149, 149, 110, 155, 123, 149, 125, 49, 149, 151, + 52, 130, 131, 121, 147, 147, 134, 147, 136, 137, + 138, 139, 140, 141, 110, 4, 149, 69, 149, 137, + 138, 149, 140, 152, 142, 121, 149, 8, 149, 5, + 148, 20, 149, 22, 443, 147, 443, 113, 443, 28, + 147, 137, 138, 32, 140, 149, 142, 149, 148, 152, + 462, 3, 148, 5, 6, 7, 45, 150, 472, 133, + 49, 50, 152, 149, 116, 54, 485, 56, 135, 481, + 122, 123, 491, 485, 63, 11, 12, 489, 149, 491, + 149, 493, 21, 332, 2, 74, 75, 223, 481, 205, + 330, 2, 81, 23, 2, 147, 2, -1, 341, 151, + 152, 53, 221, -1, 3, 4, 5, 6, 7, 264, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + -1, 20, 111, 22, -1, -1, -1, 116, -1, 28, + -1, -1, -1, 32, 123, -1, 125, -1, 11, 12, + -1, 130, 131, -1, -1, -1, 45, -1, -1, -1, + 49, 50, 11, 12, 53, 54, -1, 56, 110, -1, -1, -1, -1, 152, 63, -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, 74, 75, -1, -1, -1, -1, -1, 81, -1, -1, 137, 138, -1, 140, -1, - 142, -1, -1, -1, -1, -1, 148, -1, 134, -1, + 142, -1, -1, -1, 10, -1, 148, -1, 134, 135, 136, 137, 138, 139, 140, 141, 105, 106, 107, 108, - -1, 110, 111, 149, -1, -1, -1, 116, -1, -1, - -1, -1, 121, -1, 123, -1, 125, -1, -1, -1, - -1, 130, 131, -1, -1, -1, -1, -1, 137, 138, - -1, 140, -1, 142, -1, -1, -1, -1, 134, 148, - 136, 137, 138, 139, 140, 141, -1, -1, 4, -1, - -1, -1, -1, 149, -1, -1, 134, 135, 136, 137, - 138, 139, 140, 141, 20, -1, 22, -1, -1, -1, - -1, -1, 28, -1, -1, 32, 32, -1, -1, -1, - 37, -1, -1, 29, -1, -1, 32, -1, -1, 45, - -1, 37, 49, 49, 50, 52, -1, 43, 54, -1, - 56, -1, -1, 49, -1, -1, 52, 63, -1, 32, - -1, -1, 69, -1, 37, -1, -1, -1, 74, 75, - -1, -1, -1, 69, 70, 81, 49, -1, -1, 52, - 76, -1, -1, 29, -1, -1, 32, -1, -1, -1, - -1, 37, -1, -1, -1, -1, 69, 43, -1, 105, - 106, 107, 108, 49, -1, 111, 52, -1, -1, 116, - 116, -1, -1, -1, -1, 122, 123, 123, -1, 125, - 116, -1, -1, 69, 130, 131, 122, 123, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 147, -1, -1, 116, 151, 152, -1, 32, -1, 122, - 123, 147, 37, -1, -1, 151, 152, -1, -1, -1, - -1, -1, -1, -1, 49, -1, -1, 52, -1, -1, - 116, -1, -1, -1, 147, -1, 122, 123, 151, 152, - -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 147, -1, -1, -1, -1, 152, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 13, 116, 15, 16, -1, 18, 19, 122, 123, -1, - -1, 24, -1, 26, -1, -1, -1, -1, -1, -1, - 33, 34, 35, 36, -1, 38, 39, 40, 41, 42, - -1, 44, 147, 46, 47, 48, 151, 152, 51, -1, - -1, -1, 55, -1, 57, 58, 59, 60, 61, 62, - -1, 64, 65, 66, 67, 68, -1, -1, 71, -1, - 73, -1, -1, -1, -1, 78, -1, 80, -1, -1, - -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, -1, -1, -1, -1, 109, -1, -1, 112, - -1, 114, 115, -1, -1, 118, 119, 120, -1, -1, - -1, 124, -1, 126, 127, 128, 129, -1, -1, 132 + -1, 110, 111, 29, -1, -1, 32, 116, -1, -1, + -1, 37, 121, -1, 123, -1, 125, 43, -1, -1, + -1, 130, 131, 49, -1, -1, 52, -1, 137, 138, + -1, 140, -1, 142, -1, -1, -1, -1, -1, 148, + -1, -1, -1, 69, 70, -1, -1, -1, -1, -1, + 76, 134, -1, 136, 137, 138, 139, 140, 141, 4, + -1, -1, -1, -1, -1, 134, 149, 136, 137, 138, + 139, 140, 141, -1, -1, 20, -1, 22, -1, -1, + 149, -1, -1, 28, -1, -1, -1, 32, -1, -1, + 116, -1, -1, -1, -1, -1, 122, 123, -1, -1, + 45, -1, -1, -1, 49, 50, -1, 32, -1, 54, + -1, 56, 37, -1, -1, -1, -1, 29, 63, -1, + 32, 147, -1, -1, 49, 37, 152, 52, 32, 74, + 75, 43, -1, 37, -1, -1, 81, 49, -1, -1, + 52, -1, -1, -1, 69, 49, -1, -1, 52, -1, + -1, -1, -1, -1, -1, -1, -1, 69, 70, -1, + 105, 106, 107, 108, 76, 69, 111, 29, -1, -1, + 32, 116, -1, -1, -1, 37, -1, -1, 123, -1, + 125, 43, -1, -1, -1, 130, 131, 49, -1, -1, + 52, 116, -1, -1, -1, -1, -1, 122, 123, -1, + -1, -1, -1, -1, 116, -1, -1, 69, -1, -1, + 122, 123, 116, -1, 76, -1, -1, -1, 122, 123, + -1, -1, 147, -1, -1, -1, 151, 152, -1, -1, + -1, -1, -1, -1, -1, 147, -1, -1, -1, 151, + 152, -1, -1, 147, -1, -1, -1, 151, 152, -1, + -1, -1, -1, 13, 116, 15, 16, -1, 18, 19, + 122, 123, -1, -1, 24, -1, 26, -1, -1, -1, + -1, -1, -1, 33, 34, 35, 36, -1, 38, 39, + 40, 41, 42, -1, 44, 147, 46, 47, 48, -1, + 152, 51, -1, -1, -1, 55, -1, 57, 58, 59, + 60, 61, 62, -1, 64, 65, 66, 67, 68, -1, + -1, 71, -1, 73, -1, -1, -1, -1, 78, -1, + 80, -1, -1, -1, 84, 85, 86, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, -1, -1, -1, -1, 109, + -1, -1, 112, -1, 114, 115, -1, -1, 118, 119, + 120, -1, -1, -1, 124, -1, 126, 127, 128, 129, + -1, -1, 132 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1429,7 +1425,7 @@ static const unsigned char yystos[] = 228, 147, 150, 228, 117, 150, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 133, 153, 10, 70, 161, 165, 176, 205, 207, 218, + 133, 153, 10, 70, 161, 165, 168, 205, 207, 218, 219, 222, 151, 3, 3, 4, 150, 208, 93, 212, 216, 3, 4, 150, 160, 228, 154, 149, 185, 186, 187, 201, 201, 195, 32, 140, 148, 201, 223, 224, @@ -2226,37 +2222,42 @@ yyreduce: break; case 19: -#line 325 "parser.y" - { (yyval.func_list) = NULL; ;} +#line 323 "parser.y" + {;} break; case 20: #line 326 "parser.y" - { (yyval.func_list) = append_func( (yyvsp[-2].func_list), (yyvsp[-1].func) ); ;} + { (yyval.func_list) = NULL; ;} break; case 21: #line 327 "parser.y" - { (yyval.func_list) = (yyvsp[-1].func_list); ;} + { (yyval.func_list) = append_func( (yyvsp[-2].func_list), (yyvsp[-1].func) ); ;} break; case 22: -#line 330 "parser.y" - {;} +#line 328 "parser.y" + { (yyval.func_list) = (yyvsp[-1].func_list); ;} break; case 23: #line 331 "parser.y" - { if (!parse_only && do_header) { write_constdef((yyvsp[-1].var)); } ;} + {;} break; case 24: #line 332 "parser.y" - {;} + { if (!parse_only && do_header) { write_constdef((yyvsp[-1].var)); } ;} break; case 25: #line 333 "parser.y" + {;} + break; + + case 26: +#line 334 "parser.y" { if (!parse_only && do_header) { write_type_def_or_decl(header, (yyvsp[-1].type), FALSE, NULL); fprintf(header, ";\n\n"); @@ -2264,18 +2265,18 @@ yyreduce: ;} break; - case 26: -#line 338 "parser.y" - { if (!parse_only && do_header) { write_externdef((yyvsp[-1].var)); } ;} - break; - case 27: #line 339 "parser.y" - {;} + { if (!parse_only && do_header) { write_externdef((yyvsp[-1].var)); } ;} break; case 28: #line 340 "parser.y" + {;} + break; + + case 29: +#line 341 "parser.y" { if (!parse_only && do_header) { write_type_def_or_decl(header, (yyvsp[-1].type), FALSE, NULL); fprintf(header, ";\n\n"); @@ -2283,13 +2284,13 @@ yyreduce: ;} break; - case 29: -#line 345 "parser.y" - {;} - break; - case 30: #line 346 "parser.y" + {;} + break; + + case 31: +#line 347 "parser.y" { if (!parse_only && do_header) { write_type_def_or_decl(header, (yyvsp[-1].type), FALSE, NULL); fprintf(header, ";\n\n"); @@ -2297,67 +2298,67 @@ yyreduce: ;} break; - case 31: -#line 353 "parser.y" + case 32: +#line 354 "parser.y" { if (!parse_only && do_header) fprintf(header, "%s\n", (yyvsp[-1].str)); ;} break; - case 32: -#line 355 "parser.y" + case 33: +#line 356 "parser.y" { assert(yychar == YYEMPTY); if (!do_import((yyvsp[-1].str))) yychar = aEOF; ;} break; - case 33: -#line 358 "parser.y" + case 34: +#line 359 "parser.y" {;} break; - case 34: -#line 361 "parser.y" + case 35: +#line 362 "parser.y" { if(!parse_only) add_importlib((yyvsp[-1].str)); ;} break; - case 35: -#line 364 "parser.y" + case 36: +#line 365 "parser.y" { (yyval.str) = (yyvsp[0].str); ;} break; - case 36: -#line 366 "parser.y" - { start_typelib((yyvsp[-1].str), (yyvsp[-2].attr_list)); + case 37: +#line 367 "parser.y" + { if (!parse_only) start_typelib((yyvsp[-1].str), (yyvsp[-2].attr_list)); if (!parse_only && do_header) write_library((yyvsp[-1].str), (yyvsp[-2].attr_list)); if (!parse_only && do_idfile) write_libid((yyvsp[-1].str), (yyvsp[-2].attr_list)); ;} break; - case 37: -#line 371 "parser.y" - { end_typelib(); ;} - break; - case 38: -#line 374 "parser.y" - { (yyval.var_list) = NULL; ;} +#line 372 "parser.y" + { if (!parse_only) end_typelib(); ;} break; - case 40: -#line 378 "parser.y" + case 39: +#line 375 "parser.y" { (yyval.var_list) = NULL; ;} break; case 41: -#line 381 "parser.y" - { check_arg((yyvsp[0].var)); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); ;} +#line 379 "parser.y" + { (yyval.var_list) = NULL; ;} break; case 42: #line 382 "parser.y" + { check_arg((yyvsp[0].var)); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); ;} + break; + + case 43: +#line 383 "parser.y" { check_arg((yyvsp[0].var)); (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var)); ;} break; - case 44: -#line 387 "parser.y" + case 45: +#line 388 "parser.y" { (yyval.var) = (yyvsp[-1].pident)->var; (yyval.var)->attrs = (yyvsp[-3].attr_list); set_type((yyval.var), (yyvsp[-2].type), (yyvsp[-1].pident)->ptr_level, (yyvsp[0].array_dims), TRUE); @@ -2365,16 +2366,16 @@ yyreduce: ;} break; - case 45: -#line 392 "parser.y" + case 46: +#line 393 "parser.y" { (yyval.var) = (yyvsp[-1].pident)->var; set_type((yyval.var), (yyvsp[-2].type), (yyvsp[-1].pident)->ptr_level, (yyvsp[0].array_dims), TRUE); free((yyvsp[-1].pident)); ;} break; - case 46: -#line 396 "parser.y" + case 47: +#line 397 "parser.y" { (yyval.var) = (yyvsp[-3].pident)->var; (yyval.var)->attrs = (yyvsp[-5].attr_list); set_type((yyval.var), (yyvsp[-4].type), (yyvsp[-3].pident)->ptr_level - 1, NULL, TRUE); @@ -2383,8 +2384,8 @@ yyreduce: ;} break; - case 47: -#line 402 "parser.y" + case 48: +#line 403 "parser.y" { (yyval.var) = (yyvsp[-3].pident)->var; set_type((yyval.var), (yyvsp[-4].type), (yyvsp[-3].pident)->ptr_level - 1, NULL, TRUE); free((yyvsp[-3].pident)); @@ -2392,492 +2393,492 @@ yyreduce: ;} break; - case 48: -#line 409 "parser.y" - { (yyval.array_dims) = NULL; ;} - break; - case 49: #line 410 "parser.y" - { (yyval.array_dims) = (yyvsp[-1].array_dims); ;} + { (yyval.array_dims) = NULL; ;} break; case 50: #line 411 "parser.y" - { (yyval.array_dims) = append_array( NULL, make_expr(EXPR_VOID) ); ;} + { (yyval.array_dims) = (yyvsp[-1].array_dims); ;} break; case 51: -#line 414 "parser.y" - { (yyval.array_dims) = append_array( NULL, (yyvsp[0].expr) ); ;} +#line 412 "parser.y" + { (yyval.array_dims) = append_array( NULL, make_expr(EXPR_VOID) ); ;} break; case 52: #line 415 "parser.y" - { (yyval.array_dims) = append_array( (yyvsp[-2].array_dims), (yyvsp[0].expr) ); ;} + { (yyval.array_dims) = append_array( NULL, (yyvsp[0].expr) ); ;} break; case 53: #line 416 "parser.y" - { (yyval.array_dims) = append_array( (yyvsp[-3].array_dims), (yyvsp[0].expr) ); ;} + { (yyval.array_dims) = append_array( (yyvsp[-2].array_dims), (yyvsp[0].expr) ); ;} break; case 54: -#line 419 "parser.y" +#line 417 "parser.y" + { (yyval.array_dims) = append_array( (yyvsp[-3].array_dims), (yyvsp[0].expr) ); ;} + break; + + case 55: +#line 420 "parser.y" { (yyval.attr_list) = NULL; ;} break; - case 56: -#line 424 "parser.y" + case 57: +#line 425 "parser.y" { (yyval.attr_list) = (yyvsp[-1].attr_list); if (!(yyval.attr_list)) error_loc("empty attribute lists unsupported\n"); ;} break; - case 57: -#line 430 "parser.y" - { (yyval.attr_list) = append_attr( NULL, (yyvsp[0].attr) ); ;} - break; - case 58: #line 431 "parser.y" - { (yyval.attr_list) = append_attr( (yyvsp[-2].attr_list), (yyvsp[0].attr) ); ;} + { (yyval.attr_list) = append_attr( NULL, (yyvsp[0].attr) ); ;} break; case 59: #line 432 "parser.y" - { (yyval.attr_list) = append_attr( (yyvsp[-3].attr_list), (yyvsp[0].attr) ); ;} + { (yyval.attr_list) = append_attr( (yyvsp[-2].attr_list), (yyvsp[0].attr) ); ;} break; case 60: -#line 435 "parser.y" - { (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); ;} +#line 433 "parser.y" + { (yyval.attr_list) = append_attr( (yyvsp[-3].attr_list), (yyvsp[0].attr) ); ;} break; case 61: #line 436 "parser.y" - { (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); ;} + { (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); ;} break; case 62: -#line 439 "parser.y" - { (yyval.attr) = NULL; ;} +#line 437 "parser.y" + { (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); ;} break; case 63: #line 440 "parser.y" - { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); ;} + { (yyval.attr) = NULL; ;} break; case 64: #line 441 "parser.y" - { (yyval.attr) = make_attr(ATTR_APPOBJECT); ;} + { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); ;} break; case 65: #line 442 "parser.y" - { (yyval.attr) = make_attr(ATTR_ASYNC); ;} + { (yyval.attr) = make_attr(ATTR_APPOBJECT); ;} break; case 66: #line 443 "parser.y" - { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); ;} + { (yyval.attr) = make_attr(ATTR_ASYNC); ;} break; case 67: #line 444 "parser.y" - { (yyval.attr) = make_attr(ATTR_BINDABLE); ;} + { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); ;} break; case 68: #line 445 "parser.y" - { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[-1].var)); ;} + { (yyval.attr) = make_attr(ATTR_BINDABLE); ;} break; case 69: #line 446 "parser.y" - { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[-1].expr_list)); ;} + { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[-1].var)); ;} break; case 70: #line 447 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); ;} + { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[-1].expr_list)); ;} break; case 71: #line 448 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ ;} + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); ;} break; case 72: #line 449 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ ;} + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ ;} break; case 73: #line 450 "parser.y" - { (yyval.attr) = make_attr(ATTR_CONTROL); ;} + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ ;} break; case 74: #line 451 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULT); ;} + { (yyval.attr) = make_attr(ATTR_CONTROL); ;} break; case 75: #line 452 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); ;} + { (yyval.attr) = make_attr(ATTR_DEFAULT); ;} break; case 76: #line 453 "parser.y" - { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE_EXPR, (yyvsp[-1].expr)); ;} + { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); ;} break; case 77: #line 454 "parser.y" - { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE_STRING, (yyvsp[-1].str)); ;} + { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE_EXPR, (yyvsp[-1].expr)); ;} break; case 78: #line 455 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); ;} + { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE_STRING, (yyvsp[-1].str)); ;} break; case 79: #line 456 "parser.y" - { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); ;} + { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); ;} break; case 80: #line 457 "parser.y" - { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[-1].str)); ;} + { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); ;} break; case 81: #line 458 "parser.y" - { (yyval.attr) = make_attr(ATTR_DUAL); ;} + { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[-1].str)); ;} break; case 82: #line 459 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[-1].str_list)); ;} + { (yyval.attr) = make_attr(ATTR_DUAL); ;} break; case 83: #line 460 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ENTRY_STRING, (yyvsp[-1].str)); ;} + { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[-1].str_list)); ;} break; case 84: #line 461 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ENTRY_ORDINAL, (yyvsp[-1].expr)); ;} + { (yyval.attr) = make_attrp(ATTR_ENTRY_STRING, (yyvsp[-1].str)); ;} break; case 85: #line 462 "parser.y" - { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); ;} + { (yyval.attr) = make_attrp(ATTR_ENTRY_ORDINAL, (yyvsp[-1].expr)); ;} break; case 86: #line 463 "parser.y" - { (yyval.attr) = make_attr(ATTR_HANDLE); ;} + { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); ;} break; case 87: #line 464 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[-1].expr)); ;} + { (yyval.attr) = make_attr(ATTR_HANDLE); ;} break; case 88: #line 465 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[-1].str)); ;} + { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[-1].expr)); ;} break; case 89: #line 466 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[-1].str)); ;} + { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[-1].str)); ;} break; case 90: #line 467 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[-1].expr)); ;} + { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[-1].str)); ;} break; case 91: #line 468 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[-1].str)); ;} + { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[-1].expr)); ;} break; case 92: #line 469 "parser.y" - { (yyval.attr) = make_attr(ATTR_HIDDEN); ;} + { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[-1].str)); ;} break; case 93: #line 470 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[-1].expr)); ;} + { (yyval.attr) = make_attr(ATTR_HIDDEN); ;} break; case 94: #line 471 "parser.y" - { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); ;} + { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[-1].expr)); ;} break; case 95: #line 472 "parser.y" - { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[-1].expr)); ;} + { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); ;} break; case 96: #line 473 "parser.y" - { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); ;} + { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[-1].expr)); ;} break; case 97: #line 474 "parser.y" - { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[-1].str)); ;} + { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); ;} break; case 98: #line 475 "parser.y" - { (yyval.attr) = make_attr(ATTR_IN); ;} + { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[-1].str)); ;} break; case 99: #line 476 "parser.y" - { (yyval.attr) = make_attr(ATTR_INPUTSYNC); ;} + { (yyval.attr) = make_attr(ATTR_IN); ;} break; case 100: #line 477 "parser.y" - { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[-1].expr_list)); ;} + { (yyval.attr) = make_attr(ATTR_INPUTSYNC); ;} break; case 101: #line 478 "parser.y" - { (yyval.attr) = make_attr(ATTR_LOCAL); ;} + { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[-1].expr_list)); ;} break; case 102: #line 479 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); ;} + { (yyval.attr) = make_attr(ATTR_LOCAL); ;} break; case 103: #line 480 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONCREATABLE); ;} + { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); ;} break; case 104: #line 481 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); ;} + { (yyval.attr) = make_attr(ATTR_NONCREATABLE); ;} break; case 105: #line 482 "parser.y" - { (yyval.attr) = make_attr(ATTR_OBJECT); ;} + { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); ;} break; case 106: #line 483 "parser.y" - { (yyval.attr) = make_attr(ATTR_ODL); ;} + { (yyval.attr) = make_attr(ATTR_OBJECT); ;} break; case 107: #line 484 "parser.y" - { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); ;} + { (yyval.attr) = make_attr(ATTR_ODL); ;} break; case 108: #line 485 "parser.y" - { (yyval.attr) = make_attr(ATTR_OPTIONAL); ;} + { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); ;} break; case 109: #line 486 "parser.y" - { (yyval.attr) = make_attr(ATTR_OUT); ;} + { (yyval.attr) = make_attr(ATTR_OPTIONAL); ;} break; case 110: #line 487 "parser.y" - { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[-1].num)); ;} + { (yyval.attr) = make_attr(ATTR_OUT); ;} break; case 111: #line 488 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPGET); ;} + { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[-1].num)); ;} break; case 112: #line 489 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPPUT); ;} + { (yyval.attr) = make_attr(ATTR_PROPGET); ;} break; case 113: #line 490 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPPUTREF); ;} + { (yyval.attr) = make_attr(ATTR_PROPPUT); ;} break; case 114: #line 491 "parser.y" - { (yyval.attr) = make_attr(ATTR_PUBLIC); ;} + { (yyval.attr) = make_attr(ATTR_PROPPUTREF); ;} break; case 115: #line 492 "parser.y" + { (yyval.attr) = make_attr(ATTR_PUBLIC); ;} + break; + + case 116: +#line 493 "parser.y" { expr_list_t *list = append_expr( NULL, (yyvsp[-3].expr) ); list = append_expr( list, (yyvsp[-1].expr) ); (yyval.attr) = make_attrp(ATTR_RANGE, list); ;} break; - case 116: -#line 495 "parser.y" - { (yyval.attr) = make_attr(ATTR_READONLY); ;} - break; - case 117: #line 496 "parser.y" - { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); ;} + { (yyval.attr) = make_attr(ATTR_READONLY); ;} break; case 118: #line 497 "parser.y" - { (yyval.attr) = make_attr(ATTR_RESTRICTED); ;} + { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); ;} break; case 119: #line 498 "parser.y" - { (yyval.attr) = make_attr(ATTR_RETVAL); ;} + { (yyval.attr) = make_attr(ATTR_RESTRICTED); ;} break; case 120: #line 499 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[-1].expr_list)); ;} + { (yyval.attr) = make_attr(ATTR_RETVAL); ;} break; case 121: #line 500 "parser.y" - { (yyval.attr) = make_attr(ATTR_SOURCE); ;} + { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[-1].expr_list)); ;} break; case 122: #line 501 "parser.y" - { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); ;} + { (yyval.attr) = make_attr(ATTR_SOURCE); ;} break; case 123: #line 502 "parser.y" - { (yyval.attr) = make_attr(ATTR_STRING); ;} + { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); ;} break; case 124: #line 503 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[-1].expr)); ;} + { (yyval.attr) = make_attr(ATTR_STRING); ;} break; case 125: #line 504 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[-1].type)); ;} + { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[-1].expr)); ;} break; case 126: #line 505 "parser.y" - { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[-1].type)); ;} + { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[-1].type)); ;} break; case 127: #line 506 "parser.y" - { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[-1].uuid)); ;} + { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[-1].type)); ;} break; case 128: #line 507 "parser.y" - { (yyval.attr) = make_attr(ATTR_V1ENUM); ;} + { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[-1].uuid)); ;} break; case 129: #line 508 "parser.y" - { (yyval.attr) = make_attr(ATTR_VARARG); ;} + { (yyval.attr) = make_attr(ATTR_V1ENUM); ;} break; case 130: #line 509 "parser.y" - { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[-1].num)); ;} + { (yyval.attr) = make_attr(ATTR_VARARG); ;} break; case 131: #line 510 "parser.y" - { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[-1].type)); ;} + { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[-1].num)); ;} break; case 132: #line 511 "parser.y" + { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[-1].type)); ;} + break; + + case 133: +#line 512 "parser.y" { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[0].num)); ;} break; - case 134: -#line 516 "parser.y" + case 135: +#line 517 "parser.y" { if (!is_valid_uuid((yyvsp[0].str))) error_loc("invalid UUID: %s\n", (yyvsp[0].str)); (yyval.uuid) = parse_uuid((yyvsp[0].str)); ;} break; - case 137: -#line 525 "parser.y" + case 138: +#line 526 "parser.y" { (yyval.var_list) = NULL; ;} break; - case 138: -#line 526 "parser.y" + case 139: +#line 527 "parser.y" { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); ;} break; - case 139: -#line 529 "parser.y" + case 140: +#line 530 "parser.y" { attr_t *a = make_attrp(ATTR_CASE, append_expr( NULL, (yyvsp[-2].expr) )); (yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); ;} break; - case 140: -#line 533 "parser.y" + case 141: +#line 534 "parser.y" { attr_t *a = make_attr(ATTR_DEFAULT); (yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); ;} break; - case 141: -#line 539 "parser.y" + case 142: +#line 540 "parser.y" { (yyval.var) = reg_const((yyvsp[-2].var)); set_type((yyval.var), (yyvsp[-3].type), 0, NULL, FALSE); (yyval.var)->eval = (yyvsp[0].expr); ;} break; - case 142: -#line 545 "parser.y" + case 143: +#line 546 "parser.y" { (yyval.var_list) = NULL; ;} break; - case 143: -#line 546 "parser.y" + case 144: +#line 547 "parser.y" { (yyval.var_list) = (yyvsp[-1].var_list); ;} break; - case 145: -#line 550 "parser.y" + case 146: +#line 551 "parser.y" { if (!(yyvsp[0].var)->eval) (yyvsp[0].var)->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); ;} break; - case 146: -#line 554 "parser.y" + case 147: +#line 555 "parser.y" { if (!(yyvsp[0].var)->eval) { var_t *last = LIST_ENTRY( list_tail((yyval.var_list)), var_t, entry ); @@ -2887,23 +2888,23 @@ yyreduce: ;} break; - case 147: -#line 563 "parser.y" + case 148: +#line 564 "parser.y" { (yyval.var) = reg_const((yyvsp[-2].var)); (yyval.var)->eval = (yyvsp[0].expr); (yyval.var)->type = make_int(0); ;} break; - case 148: -#line 567 "parser.y" + case 149: +#line 568 "parser.y" { (yyval.var) = reg_const((yyvsp[0].var)); (yyval.var)->type = make_int(0); ;} break; - case 149: -#line 572 "parser.y" + case 150: +#line 573 "parser.y" { (yyval.type) = get_typev(RPC_FC_ENUM16, (yyvsp[-3].var), tsENUM); (yyval.type)->kind = TKIND_ENUM; (yyval.type)->fields = (yyvsp[-1].var_list); @@ -2913,188 +2914,188 @@ yyreduce: ;} break; - case 150: -#line 581 "parser.y" + case 151: +#line 582 "parser.y" { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); ;} break; - case 151: -#line 582 "parser.y" + case 152: +#line 583 "parser.y" { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); ;} break; - case 152: -#line 595 "parser.y" + case 153: +#line 596 "parser.y" { (yyval.expr) = make_expr(EXPR_VOID); ;} break; - case 154: -#line 599 "parser.y" - { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num)); ;} - break; - case 155: #line 600 "parser.y" - { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[0].num)); ;} + { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num)); ;} break; case 156: #line 601 "parser.y" - { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[0].dbl)); ;} + { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[0].num)); ;} break; case 157: #line 602 "parser.y" - { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); ;} + { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[0].dbl)); ;} break; case 158: #line 603 "parser.y" - { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); ;} + { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); ;} break; case 159: #line 604 "parser.y" - { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str)); ;} + { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); ;} break; case 160: #line 605 "parser.y" - { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str)); ;} break; case 161: #line 606 "parser.y" - { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 162: #line 607 "parser.y" - { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 163: #line 608 "parser.y" - { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 164: #line 609 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 165: #line 610 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 166: #line 611 "parser.y" - { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 167: #line 612 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 168: #line 613 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 169: #line 614 "parser.y" - { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} break; case 170: #line 615 "parser.y" - { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[0].expr)); ;} break; case 171: #line 616 "parser.y" - { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[0].expr)); ;} break; case 172: #line 617 "parser.y" - { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[0].expr)); ;} break; case 173: #line 618 "parser.y" - { (yyval.expr) = make_exprt(EXPR_CAST, (yyvsp[-2].type), (yyvsp[0].expr)); ;} + { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[0].expr)); ;} break; case 174: #line 619 "parser.y" - { (yyval.expr) = make_exprt(EXPR_SIZEOF, (yyvsp[-1].type), NULL); ;} + { (yyval.expr) = make_exprt(EXPR_CAST, (yyvsp[-2].type), (yyvsp[0].expr)); ;} break; case 175: #line 620 "parser.y" - { (yyval.expr) = (yyvsp[-1].expr); ;} + { (yyval.expr) = make_exprt(EXPR_SIZEOF, (yyvsp[-1].type), NULL); ;} break; case 176: -#line 623 "parser.y" - { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); ;} +#line 621 "parser.y" + { (yyval.expr) = (yyvsp[-1].expr); ;} break; case 177: #line 624 "parser.y" - { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); ;} + { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); ;} break; case 178: -#line 627 "parser.y" +#line 625 "parser.y" + { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); ;} + break; + + case 179: +#line 628 "parser.y" { (yyval.expr) = (yyvsp[0].expr); if (!(yyval.expr)->is_const) error_loc("expression is not constant\n"); ;} break; - case 179: -#line 633 "parser.y" + case 180: +#line 634 "parser.y" { (yyval.var) = (yyvsp[0].var); set_type((yyval.var), (yyvsp[-1].type), 0, NULL, FALSE); ;} break; - case 180: -#line 638 "parser.y" + case 181: +#line 639 "parser.y" { (yyval.var_list) = NULL; ;} break; - case 181: -#line 639 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); ;} - break; - case 182: -#line 642 "parser.y" - { (yyval.var) = (yyvsp[-1].var); ;} +#line 640 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); ;} break; case 183: #line 643 "parser.y" - { (yyval.var) = make_var(NULL); (yyval.var)->type = (yyvsp[-1].type); (yyval.var)->attrs = (yyvsp[-2].attr_list); ;} + { (yyval.var) = (yyvsp[-1].var); ;} break; case 184: #line 644 "parser.y" - { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[-1].attr_list); ;} + { (yyval.var) = make_var(NULL); (yyval.var)->type = (yyvsp[-1].type); (yyval.var)->attrs = (yyvsp[-2].attr_list); ;} break; case 185: #line 645 "parser.y" - { (yyval.var) = NULL; ;} + { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[-1].attr_list); ;} break; case 186: -#line 648 "parser.y" +#line 646 "parser.y" + { (yyval.var) = NULL; ;} + break; + + case 187: +#line 649 "parser.y" { (yyval.var) = (yyvsp[-1].pident)->var; (yyval.var)->attrs = (yyvsp[-3].attr_list); set_type((yyval.var), (yyvsp[-2].type), (yyvsp[-1].pident)->ptr_level, (yyvsp[0].array_dims), FALSE); @@ -3102,8 +3103,8 @@ yyreduce: ;} break; - case 187: -#line 657 "parser.y" + case 188: +#line 658 "parser.y" { var_t *v = (yyvsp[-3].pident)->var; v->attrs = (yyvsp[-6].attr_list); set_type(v, (yyvsp[-5].type), (yyvsp[-3].pident)->ptr_level, NULL, FALSE); @@ -3115,19 +3116,14 @@ yyreduce: ;} break; - case 188: -#line 668 "parser.y" - { (yyval.var) = NULL; ;} - break; - - case 190: -#line 672 "parser.y" + case 189: +#line 669 "parser.y" { (yyval.var) = NULL; ;} break; case 191: #line 673 "parser.y" - { (yyval.var) = make_var((yyvsp[0].str)); ;} + { (yyval.var) = NULL; ;} break; case 192: @@ -3136,18 +3132,18 @@ yyreduce: break; case 193: -#line 677 "parser.y" +#line 675 "parser.y" { (yyval.var) = make_var((yyvsp[0].str)); ;} break; case 194: -#line 679 "parser.y" +#line 678 "parser.y" { (yyval.var) = make_var((yyvsp[0].str)); ;} break; case 195: -#line 682 "parser.y" - { (yyval.type) = make_builtin((yyvsp[0].str)); ;} +#line 680 "parser.y" + { (yyval.var) = make_var((yyvsp[0].str)); ;} break; case 196: @@ -3155,13 +3151,18 @@ yyreduce: { (yyval.type) = make_builtin((yyvsp[0].str)); ;} break; - case 198: -#line 685 "parser.y" - { (yyval.type) = (yyvsp[0].type); (yyval.type)->sign = 1; ;} + case 197: +#line 684 "parser.y" + { (yyval.type) = make_builtin((yyvsp[0].str)); ;} break; case 199: #line 686 "parser.y" + { (yyval.type) = (yyvsp[0].type); (yyval.type)->sign = 1; ;} + break; + + case 200: +#line 687 "parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->sign = -1; switch ((yyval.type)->type) { case RPC_FC_CHAR: break; @@ -3180,24 +3181,19 @@ yyreduce: ;} break; - case 200: -#line 702 "parser.y" - { (yyval.type) = make_int(-1); ;} - break; - case 201: #line 703 "parser.y" - { (yyval.type) = make_builtin((yyvsp[0].str)); ;} + { (yyval.type) = make_int(-1); ;} break; case 202: #line 704 "parser.y" - { (yyval.type) = duptype(find_type("float", 0), 1); ;} + { (yyval.type) = make_builtin((yyvsp[0].str)); ;} break; case 203: #line 705 "parser.y" - { (yyval.type) = make_builtin((yyvsp[0].str)); ;} + { (yyval.type) = duptype(find_type("float", 0), 1); ;} break; case 204: @@ -3215,24 +3211,24 @@ yyreduce: { (yyval.type) = make_builtin((yyvsp[0].str)); ;} break; - case 209: -#line 715 "parser.y" + case 207: +#line 709 "parser.y" { (yyval.type) = make_builtin((yyvsp[0].str)); ;} break; case 210: #line 716 "parser.y" - { (yyval.type) = make_builtin((yyvsp[-1].str)); ;} + { (yyval.type) = make_builtin((yyvsp[0].str)); ;} break; case 211: #line 717 "parser.y" - { (yyval.type) = make_builtin((yyvsp[0].str)); ;} + { (yyval.type) = make_builtin((yyvsp[-1].str)); ;} break; case 212: #line 718 "parser.y" - { (yyval.type) = make_builtin((yyvsp[-1].str)); ;} + { (yyval.type) = make_builtin((yyvsp[0].str)); ;} break; case 213: @@ -3242,7 +3238,7 @@ yyreduce: case 214: #line 720 "parser.y" - { (yyval.type) = make_builtin((yyvsp[0].str)); ;} + { (yyval.type) = make_builtin((yyvsp[-1].str)); ;} break; case 215: @@ -3251,20 +3247,25 @@ yyreduce: break; case 216: -#line 724 "parser.y" - { (yyval.type) = make_class((yyvsp[0].str)); ;} +#line 722 "parser.y" + { (yyval.type) = make_builtin((yyvsp[0].str)); ;} break; case 217: #line 725 "parser.y" + { (yyval.type) = make_class((yyvsp[0].str)); ;} + break; + + case 218: +#line 726 "parser.y" { (yyval.type) = find_type((yyvsp[0].str), 0); if ((yyval.type)->defined) error_loc("multiple definition error\n"); if ((yyval.type)->kind != TKIND_COCLASS) error_loc("%s was not declared a coclass\n", (yyvsp[0].str)); ;} break; - case 218: -#line 731 "parser.y" + case 219: +#line 732 "parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = (yyvsp[-1].attr_list); if (!parse_only && do_header) @@ -3274,32 +3275,27 @@ yyreduce: ;} break; - case 219: -#line 740 "parser.y" + case 220: +#line 741 "parser.y" { (yyval.type) = (yyvsp[-3].type); (yyval.type)->ifaces = (yyvsp[-1].ifref_list); (yyval.type)->defined = TRUE; ;} break; - case 220: -#line 746 "parser.y" + case 221: +#line 747 "parser.y" { (yyval.ifref_list) = NULL; ;} break; - case 221: -#line 747 "parser.y" + case 222: +#line 748 "parser.y" { (yyval.ifref_list) = append_ifref( (yyvsp[-1].ifref_list), (yyvsp[0].ifref) ); ;} break; - case 222: -#line 751 "parser.y" - { (yyval.ifref) = make_ifref((yyvsp[0].type)); (yyval.ifref)->attrs = (yyvsp[-1].attr_list); ;} - break; - case 223: -#line 754 "parser.y" - { (yyval.type) = get_type(0, (yyvsp[0].str), 0); (yyval.type)->kind = TKIND_DISPATCH; ;} +#line 752 "parser.y" + { (yyval.ifref) = make_ifref((yyvsp[0].type)); (yyval.ifref)->attrs = (yyvsp[-1].attr_list); ;} break; case 224: @@ -3308,7 +3304,12 @@ yyreduce: break; case 225: -#line 758 "parser.y" +#line 756 "parser.y" + { (yyval.type) = get_type(0, (yyvsp[0].str), 0); (yyval.type)->kind = TKIND_DISPATCH; ;} + break; + + case 226: +#line 759 "parser.y" { attr_t *attrs; (yyval.type) = (yyvsp[0].type); if ((yyval.type)->defined) error_loc("multiple definition error\n"); @@ -3321,28 +3322,28 @@ yyreduce: ;} break; - case 226: -#line 770 "parser.y" + case 227: +#line 771 "parser.y" { (yyval.var_list) = NULL; ;} break; - case 227: -#line 771 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); ;} - break; - case 228: -#line 774 "parser.y" - { (yyval.func_list) = NULL; ;} +#line 772 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); ;} break; case 229: #line 775 "parser.y" - { (yyval.func_list) = append_func( (yyvsp[-2].func_list), (yyvsp[-1].func) ); ;} + { (yyval.func_list) = NULL; ;} break; case 230: -#line 781 "parser.y" +#line 776 "parser.y" + { (yyval.func_list) = append_func( (yyvsp[-2].func_list), (yyvsp[-1].func) ); ;} + break; + + case 231: +#line 782 "parser.y" { (yyval.type) = (yyvsp[-4].type); (yyval.type)->fields = (yyvsp[-2].var_list); (yyval.type)->funcs = (yyvsp[-1].func_list); @@ -3351,8 +3352,8 @@ yyreduce: ;} break; - case 231: -#line 788 "parser.y" + case 232: +#line 789 "parser.y" { (yyval.type) = (yyvsp[-4].type); (yyval.type)->fields = (yyvsp[-2].type)->fields; (yyval.type)->funcs = (yyvsp[-2].type)->funcs; @@ -3361,19 +3362,14 @@ yyreduce: ;} break; - case 232: -#line 796 "parser.y" + case 233: +#line 797 "parser.y" { (yyval.type) = NULL; ;} break; - case 233: -#line 797 "parser.y" - { (yyval.type) = find_type2((yyvsp[0].str), 0); ;} - break; - case 234: -#line 800 "parser.y" - { (yyval.type) = get_type(RPC_FC_IP, (yyvsp[0].str), 0); (yyval.type)->kind = TKIND_INTERFACE; ;} +#line 798 "parser.y" + { (yyval.type) = find_type2((yyvsp[0].str), 0); ;} break; case 235: @@ -3382,7 +3378,12 @@ yyreduce: break; case 236: -#line 804 "parser.y" +#line 802 "parser.y" + { (yyval.type) = get_type(RPC_FC_IP, (yyvsp[0].str), 0); (yyval.type)->kind = TKIND_INTERFACE; ;} + break; + + case 237: +#line 805 "parser.y" { (yyval.ifinfo).interface = (yyvsp[0].type); (yyval.ifinfo).old_pointer_default = pointer_default; if (is_attr((yyvsp[-1].attr_list), ATTR_POINTERDEFAULT)) @@ -3394,8 +3395,8 @@ yyreduce: ;} break; - case 237: -#line 816 "parser.y" + case 238: +#line 817 "parser.y" { (yyval.type) = (yyvsp[-4].ifinfo).interface; (yyval.type)->ref = (yyvsp[-3].type); (yyval.type)->funcs = (yyvsp[-1].func_list); @@ -3407,8 +3408,8 @@ yyreduce: ;} break; - case 238: -#line 828 "parser.y" + case 239: +#line 829 "parser.y" { (yyval.type) = (yyvsp[-6].ifinfo).interface; (yyval.type)->ref = find_type2((yyvsp[-4].str), 0); if (!(yyval.type)->ref) error_loc("base class '%s' not found in import\n", (yyvsp[-4].str)); @@ -3421,14 +3422,9 @@ yyreduce: ;} break; - case 239: -#line 838 "parser.y" - { (yyval.type) = (yyvsp[0].type); ;} - break; - case 240: -#line 842 "parser.y" - { (yyval.type) = (yyvsp[-1].type); if (!parse_only && do_header) write_forward((yyval.type)); ;} +#line 839 "parser.y" + { (yyval.type) = (yyvsp[0].type); ;} break; case 241: @@ -3437,8 +3433,8 @@ yyreduce: break; case 242: -#line 846 "parser.y" - { (yyval.type) = make_type(0, NULL); (yyval.type)->name = (yyvsp[0].str); (yyval.type)->kind = TKIND_MODULE; ;} +#line 844 "parser.y" + { (yyval.type) = (yyvsp[-1].type); if (!parse_only && do_header) write_forward((yyval.type)); ;} break; case 243: @@ -3447,67 +3443,72 @@ yyreduce: break; case 244: -#line 850 "parser.y" +#line 848 "parser.y" + { (yyval.type) = make_type(0, NULL); (yyval.type)->name = (yyvsp[0].str); (yyval.type)->kind = TKIND_MODULE; ;} + break; + + case 245: +#line 851 "parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = (yyvsp[-1].attr_list); ;} break; - case 245: -#line 855 "parser.y" + case 246: +#line 856 "parser.y" { (yyval.type) = (yyvsp[-3].type); (yyval.type)->funcs = (yyvsp[-1].func_list); /* FIXME: if (!parse_only && do_header) write_module($$); */ ;} break; - case 246: -#line 861 "parser.y" + case 247: +#line 862 "parser.y" { (yyval.pident) = (yyvsp[0].pident); (yyval.pident)->ptr_level++; ;} break; - case 247: -#line 862 "parser.y" + case 248: +#line 863 "parser.y" { (yyval.pident) = (yyvsp[0].pident); /* FIXME */ ;} break; - case 248: -#line 865 "parser.y" + case 249: +#line 866 "parser.y" { (yyval.pident) = make_pident((yyvsp[0].var)); ;} break; - case 250: -#line 867 "parser.y" - { (yyval.pident) = (yyvsp[-1].pident); ;} - break; - case 251: -#line 871 "parser.y" - { (yyval.pident_list) = append_pident( NULL, (yyvsp[0].pident) ); ;} +#line 868 "parser.y" + { (yyval.pident) = (yyvsp[-1].pident); ;} break; case 252: #line 872 "parser.y" - { (yyval.pident_list) = append_pident( (yyvsp[-2].pident_list), (yyvsp[0].pident) ); ;} + { (yyval.pident_list) = append_pident( NULL, (yyvsp[0].pident) ); ;} break; case 253: -#line 876 "parser.y" - { (yyval.num) = RPC_FC_RP; ;} +#line 873 "parser.y" + { (yyval.pident_list) = append_pident( (yyvsp[-2].pident_list), (yyvsp[0].pident) ); ;} break; case 254: #line 877 "parser.y" - { (yyval.num) = RPC_FC_UP; ;} + { (yyval.num) = RPC_FC_RP; ;} break; case 255: #line 878 "parser.y" - { (yyval.num) = RPC_FC_FP; ;} + { (yyval.num) = RPC_FC_UP; ;} break; case 256: -#line 881 "parser.y" +#line 879 "parser.y" + { (yyval.num) = RPC_FC_FP; ;} + break; + + case 257: +#line 882 "parser.y" { (yyval.type) = get_typev(RPC_FC_STRUCT, (yyvsp[-3].var), tsSTRUCT); /* overwrite RPC_FC_STRUCT with a more exact type */ (yyval.type)->type = get_struct_type( (yyvsp[-1].var_list) ); @@ -3519,70 +3520,70 @@ yyreduce: ;} break; - case 257: -#line 892 "parser.y" - { (yyval.type) = duptype(find_type("void", 0), 1); ;} - break; - case 258: #line 893 "parser.y" - { (yyval.type) = find_type((yyvsp[0].str), 0); ;} + { (yyval.type) = duptype(find_type("void", 0), 1); ;} break; case 259: #line 894 "parser.y" - { (yyval.type) = (yyvsp[0].type); ;} + { (yyval.type) = find_type((yyvsp[0].str), 0); ;} break; case 260: #line 895 "parser.y" - { (yyval.type) = duptype((yyvsp[0].type), 1); (yyval.type)->is_const = TRUE; ;} + { (yyval.type) = (yyvsp[0].type); ;} break; case 261: #line 896 "parser.y" - { (yyval.type) = (yyvsp[0].type); ;} + { (yyval.type) = duptype((yyvsp[0].type), 1); (yyval.type)->is_const = TRUE; ;} break; case 262: #line 897 "parser.y" - { (yyval.type) = find_type2((yyvsp[0].str), tsENUM); ;} + { (yyval.type) = (yyvsp[0].type); ;} break; case 263: #line 898 "parser.y" - { (yyval.type) = (yyvsp[0].type); ;} + { (yyval.type) = find_type2((yyvsp[0].str), tsENUM); ;} break; case 264: #line 899 "parser.y" - { (yyval.type) = get_type(RPC_FC_STRUCT, (yyvsp[0].str), tsSTRUCT); ;} + { (yyval.type) = (yyvsp[0].type); ;} break; case 265: #line 900 "parser.y" - { (yyval.type) = (yyvsp[0].type); ;} + { (yyval.type) = get_type(RPC_FC_STRUCT, (yyvsp[0].str), tsSTRUCT); ;} break; case 266: #line 901 "parser.y" - { (yyval.type) = find_type2((yyvsp[0].str), tsUNION); ;} + { (yyval.type) = (yyvsp[0].type); ;} break; case 267: #line 902 "parser.y" - { (yyval.type) = make_safearray((yyvsp[-1].type)); ;} + { (yyval.type) = find_type2((yyvsp[0].str), tsUNION); ;} break; case 268: -#line 905 "parser.y" +#line 903 "parser.y" + { (yyval.type) = make_safearray((yyvsp[-1].type)); ;} + break; + + case 269: +#line 906 "parser.y" { reg_typedefs((yyvsp[-1].type), (yyvsp[0].pident_list), (yyvsp[-2].attr_list)); process_typedefs((yyvsp[0].pident_list)); ;} break; - case 269: -#line 910 "parser.y" + case 270: +#line 911 "parser.y" { (yyval.type) = get_typev(RPC_FC_NON_ENCAPSULATED_UNION, (yyvsp[-3].var), tsUNION); (yyval.type)->kind = TKIND_UNION; (yyval.type)->fields = (yyvsp[-1].var_list); @@ -3590,8 +3591,8 @@ yyreduce: ;} break; - case 270: -#line 917 "parser.y" + case 271: +#line 918 "parser.y" { var_t *u = (yyvsp[-3].var); (yyval.type) = get_typev(RPC_FC_ENCAPSULATED_UNION, (yyvsp[-8].var), tsUNION); (yyval.type)->kind = TKIND_UNION; @@ -3606,13 +3607,13 @@ yyreduce: ;} break; - case 271: -#line 932 "parser.y" + case 272: +#line 933 "parser.y" { (yyval.num) = MAKEVERSION((yyvsp[0].num), 0); ;} break; - case 272: -#line 933 "parser.y" + case 273: +#line 934 "parser.y" { (yyval.num) = MAKEVERSION((yyvsp[-2].num), (yyvsp[0].num)); ;} break; @@ -3621,7 +3622,7 @@ yyreduce: } /* Line 1126 of yacc.c. */ -#line 3625 "parser.tab.c" +#line 3626 "parser.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -3889,7 +3890,7 @@ yyreturn: } -#line 936 "parser.y" +#line 937 "parser.y" static void decl_builtin(const char *name, unsigned char type) @@ -4812,7 +4813,6 @@ static int get_struct_type(var_list_t *fields) case RPC_FC_FLOAT: case RPC_FC_DOUBLE: case RPC_FC_STRUCT: - case RPC_FC_ENUM16: case RPC_FC_ENUM32: break; @@ -4863,6 +4863,7 @@ static int get_struct_type(var_list_t *fields) case RPC_FC_ENCAPSULATED_UNION: case RPC_FC_NON_ENCAPSULATED_UNION: case RPC_FC_BOGUS_STRUCT: + case RPC_FC_ENUM16: return RPC_FC_BOGUS_STRUCT; } } diff --git a/reactos/tools/widl/parser.y b/reactos/tools/widl/parser.y index 499ae155271..3a8972368a7 100644 --- a/reactos/tools/widl/parser.y +++ b/reactos/tools/widl/parser.y @@ -320,6 +320,7 @@ imp_statements: {} | imp_statements moduledef { if (!parse_only) add_typelib_entry($2); } | imp_statements statement {} | imp_statements importlib {} + | imp_statements librarydef {} ; int_statements: { $$ = NULL; } @@ -363,12 +364,12 @@ importlib: tIMPORTLIB '(' aSTRING ')' { if(!parse_only) add_importlib($3); } libraryhdr: tLIBRARY aIDENTIFIER { $$ = $2; } ; -library_start: attributes libraryhdr '{' { start_typelib($2, $1); +library_start: attributes libraryhdr '{' { if (!parse_only) start_typelib($2, $1); if (!parse_only && do_header) write_library($2, $1); if (!parse_only && do_idfile) write_libid($2, $1); } ; -librarydef: library_start imp_statements '}' { end_typelib(); } +librarydef: library_start imp_statements '}' { if (!parse_only) end_typelib(); } ; m_args: { $$ = NULL; } @@ -1855,7 +1856,6 @@ static int get_struct_type(var_list_t *fields) case RPC_FC_FLOAT: case RPC_FC_DOUBLE: case RPC_FC_STRUCT: - case RPC_FC_ENUM16: case RPC_FC_ENUM32: break; @@ -1906,6 +1906,7 @@ static int get_struct_type(var_list_t *fields) case RPC_FC_ENCAPSULATED_UNION: case RPC_FC_NON_ENCAPSULATED_UNION: case RPC_FC_BOGUS_STRUCT: + case RPC_FC_ENUM16: return RPC_FC_BOGUS_STRUCT; } } diff --git a/reactos/tools/widl/parser.yy.c b/reactos/tools/widl/parser.yy.c index f8c9b2ca18f..79e59c4137c 100644 --- a/reactos/tools/widl/parser.yy.c +++ b/reactos/tools/widl/parser.yy.c @@ -524,8 +524,11 @@ char *yytext; #include #include #include + #ifdef HAVE_UNISTD_H -# include +#include +#else +#define YY_NO_UNISTD_H #endif #include "widl.h" @@ -583,7 +586,7 @@ UUID *parse_uuid(const char *u) * The flexer starts here ************************************************************************** */ -#line 587 "parser.yy.c" +#line 590 "parser.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -737,9 +740,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 108 "parser.l" +#line 111 "parser.l" -#line 743 "parser.yy.c" +#line 746 "parser.yy.c" if ( yy_init ) { @@ -825,12 +828,12 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 109 "parser.l" +#line 112 "parser.l" yy_push_state(PP_LINE); YY_BREAK case 2: YY_RULE_SETUP -#line 110 "parser.l" +#line 113 "parser.l" { int lineno; char *cptr, *fname; @@ -853,12 +856,12 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 129 "parser.l" +#line 132 "parser.l" yy_push_state(QUOTE); cbufidx = 0; YY_BREAK case 4: YY_RULE_SETUP -#line 130 "parser.l" +#line 133 "parser.l" { yy_pop_state(); parser_lval.str = get_buffered_cstring(); @@ -866,40 +869,40 @@ YY_RULE_SETUP } YY_BREAK case 5: -#line 136 "parser.l" +#line 139 "parser.l" case 6: YY_RULE_SETUP -#line 136 "parser.l" +#line 139 "parser.l" addcchar(yytext[1]); YY_BREAK case 7: YY_RULE_SETUP -#line 137 "parser.l" +#line 140 "parser.l" addcchar('\\'); addcchar(yytext[1]); YY_BREAK case 8: YY_RULE_SETUP -#line 138 "parser.l" +#line 141 "parser.l" addcchar(yytext[0]); YY_BREAK case 9: YY_RULE_SETUP -#line 139 "parser.l" +#line 142 "parser.l" yy_push_state(ATTR); return '['; YY_BREAK case 10: YY_RULE_SETUP -#line 140 "parser.l" +#line 143 "parser.l" yy_pop_state(); return ']'; YY_BREAK case 11: YY_RULE_SETUP -#line 141 "parser.l" +#line 144 "parser.l" return attr_token(yytext); YY_BREAK case 12: YY_RULE_SETUP -#line 142 "parser.l" +#line 145 "parser.l" { parser_lval.uuid = parse_uuid(yytext); return aUUID; @@ -907,7 +910,7 @@ YY_RULE_SETUP YY_BREAK case 13: YY_RULE_SETUP -#line 146 "parser.l" +#line 149 "parser.l" { parser_lval.num = strtoul(yytext, NULL, 0); return aHEXNUM; @@ -915,7 +918,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 150 "parser.l" +#line 153 "parser.l" { parser_lval.num = strtoul(yytext, NULL, 0); return aNUM; @@ -923,7 +926,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 154 "parser.l" +#line 157 "parser.l" { parser_lval.dbl = strtod(yytext, NULL); return aDOUBLE; @@ -934,44 +937,44 @@ case 16: yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 158 "parser.l" +#line 161 "parser.l" return tSAFEARRAY; YY_BREAK case 17: YY_RULE_SETUP -#line 159 "parser.l" +#line 162 "parser.l" return kw_token(yytext); YY_BREAK case 18: YY_RULE_SETUP -#line 160 "parser.l" +#line 163 "parser.l" line_number++; YY_BREAK case 19: YY_RULE_SETUP -#line 161 "parser.l" +#line 164 "parser.l" YY_BREAK case 20: YY_RULE_SETUP -#line 162 "parser.l" +#line 165 "parser.l" return SHL; YY_BREAK case 21: YY_RULE_SETUP -#line 163 "parser.l" +#line 166 "parser.l" return SHR; YY_BREAK case 22: YY_RULE_SETUP -#line 164 "parser.l" +#line 167 "parser.l" return yytext[0]; YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(QUOTE): case YY_STATE_EOF(ATTR): case YY_STATE_EOF(PP_LINE): -#line 165 "parser.l" +#line 168 "parser.l" { if (import_stack_ptr) { pop_import(); @@ -982,10 +985,10 @@ case YY_STATE_EOF(PP_LINE): YY_BREAK case 23: YY_RULE_SETUP -#line 172 "parser.l" +#line 175 "parser.l" ECHO; YY_BREAK -#line 989 "parser.yy.c" +#line 992 "parser.yy.c" case YY_END_OF_BUFFER: { @@ -1871,7 +1874,7 @@ int main() return 0; } #endif -#line 172 "parser.l" +#line 175 "parser.l" #ifndef parser_wrap diff --git a/reactos/tools/widl/proxy.c b/reactos/tools/widl/proxy.c index 07384e536f2..7222c7dc5e6 100644 --- a/reactos/tools/widl/proxy.c +++ b/reactos/tools/widl/proxy.c @@ -28,9 +28,7 @@ # include #endif #include -#include #include -#include #include "widl.h" #include "utils.h" diff --git a/reactos/tools/widl/server.c b/reactos/tools/widl/server.c index c866550240f..e6366503262 100644 --- a/reactos/tools/widl/server.c +++ b/reactos/tools/widl/server.c @@ -27,9 +27,7 @@ # include #endif #include -#include #include -#include #include "widl.h" #include "utils.h" diff --git a/reactos/tools/widl/typegen.c b/reactos/tools/widl/typegen.c index 41dd22f2cfd..ae23f94df1d 100644 --- a/reactos/tools/widl/typegen.c +++ b/reactos/tools/widl/typegen.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include "widl.h" @@ -2356,6 +2355,13 @@ static size_t process_tfs(FILE *file, const ifref_list_t *ifaces, type_pred_t pr { if (is_local(func->def->attrs)) continue; + if (!is_void(func->def->type)) + update_tfsoff(func->def->type, + write_typeformatstring_var( + file, 2, NULL, func->def->type, + func->def, &typeformat_offset), + file); + current_func = func; if (func->args) LIST_FOR_EACH_ENTRY( var, func->args, const var_t, entry ) @@ -2822,7 +2828,7 @@ static void write_remoting_arg(FILE *file, int indent, const func_t *func, fprintf(file, ";\n"); } - if ((phase == PHASE_FREE) || (pointer_type == RPC_FC_UP)) + if (phase == PHASE_FREE || pass == PASS_RETURN || pointer_type == RPC_FC_UP) print_phase_function(file, indent, "Pointer", phase, var, start_offset - (type->size_is ? 4 : 2)); else diff --git a/reactos/tools/widl/typelib.c b/reactos/tools/widl/typelib.c index 25cd6e7817c..43d16ec2760 100644 --- a/reactos/tools/widl/typelib.c +++ b/reactos/tools/widl/typelib.c @@ -26,11 +26,11 @@ #include #include #include -#include +#ifdef HAVE_UNISTD_H +# include +#endif #include -#include #include -#include #define NONAMELESSUNION #define NONAMELESSSTRUCT diff --git a/reactos/tools/widl/widl.c b/reactos/tools/widl/widl.c index 00762f42dec..a6bca99a57b 100644 --- a/reactos/tools/widl/widl.c +++ b/reactos/tools/widl/widl.c @@ -147,13 +147,13 @@ enum { static const char short_options[] = "cC:d:D:EhH:I:NpP:sS:tT:uU:VW"; static const struct option long_options[] = { - { "dlldata", required_argument, 0, DLLDATA_OPTION }, - { "dlldata-only", no_argument, 0, DLLDATA_ONLY_OPTION }, - { "local-stubs", required_argument, 0, LOCAL_STUBS_OPTION }, - { "oldnames", no_argument, 0, OLDNAMES_OPTION }, - { "prefix-all", required_argument, 0, PREFIX_ALL_OPTION }, - { "prefix-client", required_argument, 0, PREFIX_CLIENT_OPTION }, - { "prefix-server", required_argument, 0, PREFIX_SERVER_OPTION }, + { "dlldata", 1, 0, DLLDATA_OPTION }, + { "dlldata-only", 0, 0, DLLDATA_ONLY_OPTION }, + { "local-stubs", 1, 0, LOCAL_STUBS_OPTION }, + { "oldnames", 0, 0, OLDNAMES_OPTION }, + { "prefix-all", 1, 0, PREFIX_ALL_OPTION }, + { "prefix-client", 1, 0, PREFIX_CLIENT_OPTION }, + { "prefix-server", 1, 0, PREFIX_SERVER_OPTION }, { 0, 0, 0, 0 } }; diff --git a/reactos/tools/widl/write_msft.c b/reactos/tools/widl/write_msft.c index f9bea1f9df3..9c906fe4085 100644 --- a/reactos/tools/widl/write_msft.c +++ b/reactos/tools/widl/write_msft.c @@ -1450,7 +1450,6 @@ static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, const func_t *func, int i = 0; LIST_FOR_EACH_ENTRY( arg, func->args, var_t, entry ) { - const attr_t *attr; int paramflags = 0; int *paramdata = typedata + 6 + extra_attr + (num_defaults ? num_params : 0) + i * 3; int *defaultdata = num_defaults ? typedata + 6 + extra_attr + i : NULL;