diff --git a/reactos/dll/win32/browseui/shellbrowser.cpp b/reactos/dll/win32/browseui/shellbrowser.cpp index b050772af9f..b771d3cbb4f 100644 --- a/reactos/dll/win32/browseui/shellbrowser.cpp +++ b/reactos/dll/win32/browseui/shellbrowser.cpp @@ -541,7 +541,7 @@ public: // WIDL temp hack : when the interface contains 'long' WIDL writes it out as a 'LONG' // Setting the prototype to LONG in this class breaks building with MSVC so we use // the correct 'long' type here and temp hack it for WIDL generated prototypes. -#ifdef __WIDL_EXDISP_H +#ifdef __exdisp_h__ #define long LONG #endif virtual HRESULT STDMETHODCALLTYPE get_Left(long *pl); @@ -552,7 +552,7 @@ public: virtual HRESULT STDMETHODCALLTYPE put_Width(long Width); virtual HRESULT STDMETHODCALLTYPE get_Height(long *pl); virtual HRESULT STDMETHODCALLTYPE put_Height(long Height); -#ifdef __WIDL_EXDISP_H +#ifdef __exdisp_h__ #undef long #endif virtual HRESULT STDMETHODCALLTYPE get_LocationName(BSTR *LocationName); @@ -2537,7 +2537,7 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::get_Type(BSTR *Type) { return E_NOTIMPL; } -#ifdef __WIDL_EXDISP_H +#ifdef __exdisp_h__ #define long LONG #endif HRESULT STDMETHODCALLTYPE CShellBrowser::get_Left(long *pl) diff --git a/reactos/include/psdk/htmlhelp.h b/reactos/include/psdk/htmlhelp.h index bd7d7085776..02517656b14 100644 --- a/reactos/include/psdk/htmlhelp.h +++ b/reactos/include/psdk/htmlhelp.h @@ -435,7 +435,7 @@ typedef enum tagHH_GPROPID { HH_GPROPID_CONTENT_LANGUAGE = 5 } HH_GPROPID; -#ifdef __WIDL_OAIDL_H +#ifdef __oaidl_h__ typedef struct tagHH_GLOBAL_PROPERTY { @@ -443,7 +443,7 @@ typedef struct tagHH_GLOBAL_PROPERTY VARIANT var; } HH_GLOBAL_PROPERTY ; -#endif /* __WIDL_OAIDL_H */ +#endif /* __oaidl_h__ */ #ifdef __cplusplus } diff --git a/reactos/include/psdk/winnt.h b/reactos/include/psdk/winnt.h index 205d68d66ce..92bb89bbc3a 100644 --- a/reactos/include/psdk/winnt.h +++ b/reactos/include/psdk/winnt.h @@ -66,6 +66,69 @@ #endif #endif /* __ANONYMOUS_DEFINED */ +#undef __C89_NAMELESS +#undef __C89_NAMELESSSTRUCTNAME +#undef __C89_NAMELESSSTRUCTNAME1 +#undef __C89_NAMELESSSTRUCTNAME2 +#undef __C89_NAMELESSSTRUCTNAME3 +#undef __C89_NAMELESSSTRUCTNAME4 +#undef __C89_NAMELESSSTRUCTNAME5 +#undef __C89_NAMELESSUNIONNAME +#undef __C89_NAMELESSUNIONNAME1 +#undef __C89_NAMELESSUNIONNAME2 +#undef __C89_NAMELESSUNIONNAME3 +#undef __C89_NAMELESSUNIONNAME4 +#undef __C89_NAMELESSUNIONNAME5 +#undef __C89_NAMELESSUNIONNAME6 +#undef __C89_NAMELESSUNIONNAME7 +#undef __C89_NAMELESSUNIONNAME8 + +#if !defined(__WINESRC__) && !defined(WINE_NO_NAMELESS_EXTENSION) +# ifdef __GNUC__ + /* Anonymous structs support starts with gcc 2.96/g++ 2.95 */ +# if (__GNUC__ > 2) || ((__GNUC__ == 2) && ((__GNUC_MINOR__ > 95) || ((__GNUC_MINOR__ == 95) && defined(__cplusplus)))) +# define __C89_NAMELESS __extension__ +# endif +# elif defined(_MSC_VER) +# define __C89_NAMELESS +# endif +#endif + +#ifdef __C89_NAMELESS +# define __C89_NAMELESSSTRUCTNAME +# define __C89_NAMELESSSTRUCTNAME1 +# define __C89_NAMELESSSTRUCTNAME2 +# define __C89_NAMELESSSTRUCTNAME3 +# define __C89_NAMELESSSTRUCTNAME4 +# define __C89_NAMELESSSTRUCTNAME5 +# define __C89_NAMELESSUNIONNAME +# define __C89_NAMELESSUNIONNAME1 +# define __C89_NAMELESSUNIONNAME2 +# define __C89_NAMELESSUNIONNAME3 +# define __C89_NAMELESSUNIONNAME4 +# define __C89_NAMELESSUNIONNAME5 +# define __C89_NAMELESSUNIONNAME6 +# define __C89_NAMELESSUNIONNAME7 +# define __C89_NAMELESSUNIONNAME8 +#else +# define __C89_NAMELESS +# define __C89_NAMELESSSTRUCTNAME DUMMYSTRUCTNAME +# define __C89_NAMELESSSTRUCTNAME1 DUMMYSTRUCTNAME1 +# define __C89_NAMELESSSTRUCTNAME2 DUMMYSTRUCTNAME2 +# define __C89_NAMELESSSTRUCTNAME3 DUMMYSTRUCTNAME3 +# define __C89_NAMELESSSTRUCTNAME4 DUMMYSTRUCTNAME4 +# define __C89_NAMELESSSTRUCTNAME5 DUMMYSTRUCTNAME5 +# define __C89_NAMELESSUNIONNAME DUMMYUNIONNAME +# define __C89_NAMELESSUNIONNAME1 DUMMYUNIONNAME1 +# define __C89_NAMELESSUNIONNAME2 DUMMYUNIONNAME2 +# define __C89_NAMELESSUNIONNAME3 DUMMYUNIONNAME3 +# define __C89_NAMELESSUNIONNAME4 DUMMYUNIONNAME4 +# define __C89_NAMELESSUNIONNAME5 DUMMYUNIONNAME5 +# define __C89_NAMELESSUNIONNAME6 DUMMYUNIONNAME6 +# define __C89_NAMELESSUNIONNAME7 DUMMYUNIONNAME7 +# define __C89_NAMELESSUNIONNAME8 DUMMYUNIONNAME8 +#endif + #define UNREFERENCED_PARAMETER(P) {(P)=(P);} #define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);} #define DBG_UNREFERENCED_PARAMETER(P) diff --git a/reactos/tools/widl/header.c b/reactos/tools/widl/header.c index 00d6e76caf0..0b2b9d5f3b3 100644 --- a/reactos/tools/widl/header.c +++ b/reactos/tools/widl/header.c @@ -167,21 +167,67 @@ const char *get_name(const var_t *v) return buffer; } -static void write_field(FILE *h, var_t *v) -{ - if (!v) return; - if (v->type) { - indent(h, 0); - write_type_def_or_decl(h, v->type, TRUE, v->name); - fprintf(h, ";\n"); - } -} - static void write_fields(FILE *h, var_list_t *fields) { + unsigned nameless_struct_cnt = 0, nameless_struct_i = 0, nameless_union_cnt = 0, nameless_union_i = 0; + const char *name; + char buf[32]; var_t *v; + if (!fields) return; - LIST_FOR_EACH_ENTRY( v, fields, var_t, entry ) write_field(h, v); + + LIST_FOR_EACH_ENTRY( v, fields, var_t, entry ) { + if (!v || !v->type) continue; + + switch(type_get_type_detect_alias(v->type)) { + case TYPE_STRUCT: + case TYPE_ENCAPSULATED_UNION: + nameless_struct_cnt++; + break; + case TYPE_UNION: + nameless_union_cnt++; + break; + default: + ; + } + } + + LIST_FOR_EACH_ENTRY( v, fields, var_t, entry ) { + if (!v || !v->type) continue; + + indent(h, 0); + name = v->name; + + switch(type_get_type_detect_alias(v->type)) { + case TYPE_STRUCT: + case TYPE_ENCAPSULATED_UNION: + if(!v->name) { + fprintf(h, "__C89_NAMELESS "); + if(nameless_struct_cnt == 1) { + name = "__C89_NAMELESSSTRUCTNAME"; + }else if(nameless_struct_i < 5 /* # of supporting macros */) { + sprintf(buf, "__C89_NAMELESSSTRUCTNAME%d", ++nameless_struct_i); + name = buf; + } + } + break; + case TYPE_UNION: + if(!v->name) { + fprintf(h, "__C89_NAMELESS "); + if(nameless_union_cnt == 1) { + name = "__C89_NAMELESSUNIONNAME"; + }else if(nameless_union_i < 8 /* # of supporting macros */ ) { + sprintf(buf, "__C89_NAMELESSUNIONNAME%d", ++nameless_union_i); + name = buf; + } + } + break; + default: + ; + } + write_type_def_or_decl(h, v->type, TRUE, name); + fprintf(h, ";\n"); + } } static void write_enums(FILE *h, var_list_t *enums) @@ -1371,8 +1417,8 @@ void write_header(const statement_list_t *stmts) fprintf(header, "#include \n"); fprintf(header, "#endif\n\n"); - fprintf(header, "#ifndef __WIDL_%s\n", header_token); - fprintf(header, "#define __WIDL_%s\n\n", header_token); + fprintf(header, "#ifndef __%s__\n", header_token); + fprintf(header, "#define __%s__\n\n", header_token); fprintf(header, "/* Forward declarations */\n\n"); write_forward_decls(header, stmts); @@ -1394,7 +1440,7 @@ void write_header(const statement_list_t *stmts) fprintf(header, "\n"); end_cplusplus_guard(header); - fprintf(header, "#endif /* __WIDL_%s */\n", header_token); + fprintf(header, "#endif /* __%s__ */\n", header_token); fclose(header); } diff --git a/reactos/tools/widl/parser.tab.c b/reactos/tools/widl/parser.tab.c index 8af5e8d13bf..65c3c227e1d 100644 --- a/reactos/tools/widl/parser.tab.c +++ b/reactos/tools/widl/parser.tab.c @@ -708,16 +708,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2742 +#define YYLAST 2733 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 208 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 100 /* YYNRULES -- Number of rules. */ -#define YYNRULES 380 +#define YYNRULES 381 /* YYNRULES -- Number of states. */ -#define YYNSTATES 661 +#define YYNSTATES 662 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -804,21 +804,21 @@ static const yytype_uint16 yyprhs[] = 621, 625, 629, 633, 637, 640, 643, 646, 649, 652, 655, 659, 663, 669, 675, 680, 684, 686, 690, 692, 694, 695, 698, 703, 707, 710, 713, 714, 717, 720, - 722, 726, 728, 732, 735, 736, 738, 739, 741, 743, - 745, 747, 749, 751, 753, 756, 759, 761, 763, 765, - 767, 769, 771, 772, 774, 776, 779, 781, 784, 787, - 789, 791, 793, 796, 799, 802, 808, 809, 812, 815, - 818, 821, 824, 827, 831, 834, 838, 844, 850, 851, - 854, 857, 860, 863, 870, 879, 882, 885, 888, 891, - 894, 897, 903, 905, 907, 909, 911, 913, 914, 917, - 920, 924, 925, 927, 930, 933, 936, 940, 943, 945, - 947, 951, 954, 959, 963, 966, 968, 972, 975, 976, - 978, 982, 985, 987, 991, 996, 1000, 1003, 1005, 1009, - 1012, 1013, 1015, 1017, 1021, 1024, 1026, 1030, 1035, 1037, - 1041, 1042, 1045, 1048, 1050, 1054, 1056, 1060, 1062, 1064, - 1066, 1068, 1070, 1072, 1074, 1076, 1082, 1084, 1086, 1088, - 1090, 1093, 1095, 1098, 1100, 1103, 1108, 1113, 1119, 1130, - 1132 + 722, 726, 729, 731, 735, 738, 739, 741, 742, 744, + 746, 748, 750, 752, 754, 756, 759, 762, 764, 766, + 768, 770, 772, 774, 775, 777, 779, 782, 784, 787, + 790, 792, 794, 796, 799, 802, 805, 811, 812, 815, + 818, 821, 824, 827, 830, 834, 837, 841, 847, 853, + 854, 857, 860, 863, 866, 873, 882, 885, 888, 891, + 894, 897, 900, 906, 908, 910, 912, 914, 916, 917, + 920, 923, 927, 928, 930, 933, 936, 939, 943, 946, + 948, 950, 954, 957, 962, 966, 969, 971, 975, 978, + 979, 981, 985, 988, 990, 994, 999, 1003, 1006, 1008, + 1012, 1015, 1016, 1018, 1020, 1024, 1027, 1029, 1033, 1038, + 1040, 1044, 1045, 1048, 1051, 1053, 1057, 1059, 1063, 1065, + 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1085, 1087, 1089, + 1091, 1093, 1096, 1098, 1101, 1103, 1106, 1111, 1116, 1122, + 1133, 1135 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -896,48 +896,48 @@ static const yytype_int16 yyrhs[] = 243, -1, 243, -1, -1, 247, 248, -1, 228, 283, 299, 202, -1, 228, 306, 202, -1, 252, 202, -1, 229, 202, -1, -1, 250, 249, -1, 252, 202, -1, - 202, -1, 228, 283, 286, -1, 254, -1, 229, 283, - 300, -1, 283, 300, -1, -1, 257, -1, -1, 3, - -1, 4, -1, 3, -1, 4, -1, 33, -1, 172, - -1, 260, -1, 143, 260, -1, 163, 260, -1, 163, - -1, 72, -1, 59, -1, 31, -1, 66, -1, 75, - -1, -1, 95, -1, 95, -1, 142, 259, -1, 146, - -1, 104, 259, -1, 82, 259, -1, 97, -1, 39, - -1, 96, -1, 40, 3, -1, 40, 4, -1, 229, - 261, -1, 262, 205, 264, 206, 213, -1, -1, 264, - 265, -1, 228, 275, -1, 57, 3, -1, 57, 4, - -1, 229, 266, -1, 126, 181, -1, 268, 252, 202, - -1, 107, 181, -1, 269, 253, 202, -1, 267, 205, - 268, 269, 206, -1, 267, 205, 272, 202, 206, -1, - -1, 181, 4, -1, 98, 3, -1, 98, 4, -1, - 229, 272, -1, 273, 271, 205, 212, 206, 213, -1, - 273, 181, 3, 205, 218, 212, 206, 213, -1, 270, - 213, -1, 272, 202, -1, 266, 202, -1, 108, 3, - -1, 108, 4, -1, 229, 276, -1, 277, 205, 212, - 206, 213, -1, 68, -1, 148, -1, 136, -1, 93, - -1, 43, -1, -1, 282, 281, -1, 304, 284, -1, - 285, 304, 284, -1, -1, 285, -1, 281, 284, -1, - 280, 284, -1, 279, 284, -1, 189, 282, 286, -1, - 234, 286, -1, 287, -1, 257, -1, 203, 286, 204, - -1, 287, 227, -1, 287, 203, 223, 204, -1, 189, - 282, 290, -1, 234, 290, -1, 291, -1, 189, 282, - 294, -1, 234, 294, -1, -1, 288, -1, 203, 289, - 204, -1, 291, 227, -1, 227, -1, 203, 223, 204, - -1, 291, 203, 223, 204, -1, 189, 282, 294, -1, - 234, 294, -1, 295, -1, 189, 282, 294, -1, 234, - 294, -1, -1, 292, -1, 257, -1, 203, 293, 204, - -1, 295, 227, -1, 227, -1, 203, 223, 204, -1, - 295, 203, 223, 204, -1, 286, -1, 296, 179, 286, - -1, -1, 181, 246, -1, 292, 297, -1, 298, -1, - 299, 179, 298, -1, 286, -1, 286, 207, 246, -1, - 174, -1, 175, -1, 176, -1, 177, -1, 178, -1, - 135, -1, 162, -1, 131, -1, 152, 256, 205, 247, - 206, -1, 171, -1, 4, -1, 258, -1, 240, -1, - 65, 3, -1, 303, -1, 152, 3, -1, 306, -1, - 161, 3, -1, 141, 203, 304, 204, -1, 159, 228, - 283, 296, -1, 161, 256, 205, 250, 206, -1, 161, - 256, 153, 203, 252, 204, 255, 205, 235, 206, -1, - 5, -1, 5, 199, 5, -1 + 202, -1, 228, 283, 286, -1, 228, 303, -1, 254, + -1, 229, 283, 300, -1, 283, 300, -1, -1, 257, + -1, -1, 3, -1, 4, -1, 3, -1, 4, -1, + 33, -1, 172, -1, 260, -1, 143, 260, -1, 163, + 260, -1, 163, -1, 72, -1, 59, -1, 31, -1, + 66, -1, 75, -1, -1, 95, -1, 95, -1, 142, + 259, -1, 146, -1, 104, 259, -1, 82, 259, -1, + 97, -1, 39, -1, 96, -1, 40, 3, -1, 40, + 4, -1, 229, 261, -1, 262, 205, 264, 206, 213, + -1, -1, 264, 265, -1, 228, 275, -1, 57, 3, + -1, 57, 4, -1, 229, 266, -1, 126, 181, -1, + 268, 252, 202, -1, 107, 181, -1, 269, 253, 202, + -1, 267, 205, 268, 269, 206, -1, 267, 205, 272, + 202, 206, -1, -1, 181, 4, -1, 98, 3, -1, + 98, 4, -1, 229, 272, -1, 273, 271, 205, 212, + 206, 213, -1, 273, 181, 3, 205, 218, 212, 206, + 213, -1, 270, 213, -1, 272, 202, -1, 266, 202, + -1, 108, 3, -1, 108, 4, -1, 229, 276, -1, + 277, 205, 212, 206, 213, -1, 68, -1, 148, -1, + 136, -1, 93, -1, 43, -1, -1, 282, 281, -1, + 304, 284, -1, 285, 304, 284, -1, -1, 285, -1, + 281, 284, -1, 280, 284, -1, 279, 284, -1, 189, + 282, 286, -1, 234, 286, -1, 287, -1, 257, -1, + 203, 286, 204, -1, 287, 227, -1, 287, 203, 223, + 204, -1, 189, 282, 290, -1, 234, 290, -1, 291, + -1, 189, 282, 294, -1, 234, 294, -1, -1, 288, + -1, 203, 289, 204, -1, 291, 227, -1, 227, -1, + 203, 223, 204, -1, 291, 203, 223, 204, -1, 189, + 282, 294, -1, 234, 294, -1, 295, -1, 189, 282, + 294, -1, 234, 294, -1, -1, 292, -1, 257, -1, + 203, 293, 204, -1, 295, 227, -1, 227, -1, 203, + 223, 204, -1, 295, 203, 223, 204, -1, 286, -1, + 296, 179, 286, -1, -1, 181, 246, -1, 292, 297, + -1, 298, -1, 299, 179, 298, -1, 286, -1, 286, + 207, 246, -1, 174, -1, 175, -1, 176, -1, 177, + -1, 178, -1, 135, -1, 162, -1, 131, -1, 152, + 256, 205, 247, 206, -1, 171, -1, 4, -1, 258, + -1, 240, -1, 65, 3, -1, 303, -1, 152, 3, + -1, 306, -1, 161, 3, -1, 141, 203, 304, 204, + -1, 159, 228, 283, 296, -1, 161, 256, 205, 250, + 206, -1, 161, 256, 153, 203, 252, 204, 255, 205, + 235, 206, -1, 5, -1, 5, 199, 5, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -967,21 +967,21 @@ static const yytype_uint16 yyrline[] = 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 688, 690, 691, 694, 695, 698, 704, 710, 711, 714, 719, 726, 727, 730, 731, 735, 736, - 739, 745, 753, 757, 762, 763, 766, 767, 768, 771, - 773, 776, 777, 778, 779, 780, 781, 782, 783, 784, - 785, 786, 789, 790, 793, 794, 795, 796, 797, 798, - 799, 800, 803, 804, 812, 818, 822, 823, 827, 830, - 831, 834, 843, 844, 847, 848, 851, 857, 863, 864, - 867, 868, 871, 881, 888, 894, 898, 899, 902, 903, - 906, 911, 918, 919, 920, 924, 928, 931, 932, 935, - 936, 940, 941, 945, 946, 947, 951, 953, 955, 959, - 960, 961, 962, 970, 972, 974, 979, 981, 986, 987, - 992, 993, 994, 995, 1000, 1009, 1011, 1012, 1017, 1019, - 1023, 1024, 1031, 1032, 1033, 1034, 1035, 1040, 1048, 1049, - 1052, 1053, 1056, 1063, 1064, 1069, 1070, 1074, 1075, 1076, - 1077, 1078, 1082, 1083, 1084, 1087, 1090, 1091, 1092, 1093, - 1094, 1095, 1096, 1097, 1098, 1099, 1102, 1108, 1110, 1116, - 1117 + 739, 743, 749, 757, 761, 766, 767, 770, 771, 772, + 775, 777, 780, 781, 782, 783, 784, 785, 786, 787, + 788, 789, 790, 793, 794, 797, 798, 799, 800, 801, + 802, 803, 804, 807, 808, 816, 822, 826, 827, 831, + 834, 835, 838, 847, 848, 851, 852, 855, 861, 867, + 868, 871, 872, 875, 885, 892, 898, 902, 903, 906, + 907, 910, 915, 922, 923, 924, 928, 932, 935, 936, + 939, 940, 944, 945, 949, 950, 951, 955, 957, 959, + 963, 964, 965, 966, 974, 976, 978, 983, 985, 990, + 991, 996, 997, 998, 999, 1004, 1013, 1015, 1016, 1021, + 1023, 1027, 1028, 1035, 1036, 1037, 1038, 1039, 1044, 1052, + 1053, 1056, 1057, 1060, 1067, 1068, 1073, 1074, 1078, 1079, + 1080, 1081, 1082, 1086, 1087, 1088, 1091, 1094, 1095, 1096, + 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1106, 1112, 1114, + 1120, 1121 }; #endif @@ -1108,21 +1108,21 @@ static const yytype_uint16 yyr1[] = 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 245, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, - 252, 253, 254, 254, 255, 255, 256, 256, 256, 257, - 257, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 259, 259, 260, 260, 260, 260, 260, 260, - 260, 260, 261, 261, 262, 263, 264, 264, 265, 266, - 266, 267, 268, 268, 269, 269, 270, 270, 271, 271, - 272, 272, 273, 274, 274, 274, 275, 275, 276, 276, - 277, 278, 279, 279, 279, 280, 281, 282, 282, 283, - 283, 284, 284, 285, 285, 285, 286, 286, 286, 287, - 287, 287, 287, 288, 288, 288, 289, 289, 290, 290, - 291, 291, 291, 291, 291, 292, 292, 292, 293, 293, - 294, 294, 295, 295, 295, 295, 295, 295, 296, 296, - 297, 297, 298, 299, 299, 300, 300, 301, 301, 301, - 301, 301, 302, 302, 302, 303, 304, 304, 304, 304, - 304, 304, 304, 304, 304, 304, 305, 306, 306, 307, - 307 + 252, 252, 253, 254, 254, 255, 255, 256, 256, 256, + 257, 257, 258, 258, 258, 258, 258, 258, 258, 258, + 258, 258, 258, 259, 259, 260, 260, 260, 260, 260, + 260, 260, 260, 261, 261, 262, 263, 264, 264, 265, + 266, 266, 267, 268, 268, 269, 269, 270, 270, 271, + 271, 272, 272, 273, 274, 274, 274, 275, 275, 276, + 276, 277, 278, 279, 279, 279, 280, 281, 282, 282, + 283, 283, 284, 284, 285, 285, 285, 286, 286, 286, + 287, 287, 287, 287, 288, 288, 288, 289, 289, 290, + 290, 291, 291, 291, 291, 291, 292, 292, 292, 293, + 293, 294, 294, 295, 295, 295, 295, 295, 295, 296, + 296, 297, 297, 298, 299, 299, 300, 300, 301, 301, + 301, 301, 301, 302, 302, 302, 303, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 305, 306, 306, + 307, 307 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1152,21 +1152,21 @@ static const yytype_uint8 yyr2[] = 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 5, 5, 4, 3, 1, 3, 1, 1, 0, 2, 4, 3, 2, 2, 0, 2, 2, 1, - 3, 1, 3, 2, 0, 1, 0, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 2, 1, 2, 2, 1, - 1, 1, 2, 2, 2, 5, 0, 2, 2, 2, - 2, 2, 2, 3, 2, 3, 5, 5, 0, 2, - 2, 2, 2, 6, 8, 2, 2, 2, 2, 2, - 2, 5, 1, 1, 1, 1, 1, 0, 2, 2, - 3, 0, 1, 2, 2, 2, 3, 2, 1, 1, - 3, 2, 4, 3, 2, 1, 3, 2, 0, 1, - 3, 2, 1, 3, 4, 3, 2, 1, 3, 2, - 0, 1, 1, 3, 2, 1, 3, 4, 1, 3, - 0, 2, 2, 1, 3, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, - 2, 1, 2, 1, 2, 4, 4, 5, 10, 1, - 3 + 3, 2, 1, 3, 2, 0, 1, 0, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 0, 1, 1, 2, 1, 2, 2, + 1, 1, 1, 2, 2, 2, 5, 0, 2, 2, + 2, 2, 2, 2, 3, 2, 3, 5, 5, 0, + 2, 2, 2, 2, 6, 8, 2, 2, 2, 2, + 2, 2, 5, 1, 1, 1, 1, 1, 0, 2, + 2, 3, 0, 1, 2, 2, 2, 3, 2, 1, + 1, 3, 2, 4, 3, 2, 1, 3, 2, 0, + 1, 3, 2, 1, 3, 4, 3, 2, 1, 3, + 2, 0, 1, 1, 3, 2, 1, 3, 4, 1, + 3, 0, 2, 2, 1, 3, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, + 1, 2, 1, 2, 1, 2, 4, 4, 5, 10, + 1, 3 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1174,73 +1174,73 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 3, 0, 2, 1, 367, 259, 251, 270, 0, 306, - 0, 0, 258, 246, 260, 302, 257, 261, 262, 0, - 305, 264, 271, 269, 0, 262, 304, 0, 262, 0, - 266, 303, 246, 56, 246, 256, 366, 252, 64, 10, - 0, 24, 11, 27, 11, 9, 0, 369, 0, 368, - 253, 0, 0, 7, 0, 0, 22, 0, 288, 5, - 4, 0, 8, 311, 311, 311, 0, 0, 371, 311, - 0, 373, 272, 273, 0, 279, 280, 370, 248, 0, - 263, 268, 0, 290, 291, 267, 0, 265, 254, 372, - 0, 0, 57, 374, 0, 255, 65, 0, 67, 68, + 3, 0, 2, 1, 368, 260, 252, 271, 0, 307, + 0, 0, 259, 247, 261, 303, 258, 262, 263, 0, + 306, 265, 272, 270, 0, 263, 305, 0, 263, 0, + 267, 304, 247, 56, 247, 257, 367, 253, 64, 10, + 0, 24, 11, 27, 11, 9, 0, 370, 0, 369, + 254, 0, 0, 7, 0, 0, 22, 0, 289, 5, + 4, 0, 8, 312, 312, 312, 0, 0, 372, 312, + 0, 374, 273, 274, 0, 280, 281, 371, 249, 0, + 264, 269, 0, 291, 292, 268, 0, 266, 255, 373, + 0, 0, 57, 375, 0, 256, 65, 0, 67, 68, 69, 70, 71, 0, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 0, 85, 86, 87, 0, 89, 90, 91, 0, 0, 94, 95, 96, 97, 0, 0, 0, 0, 0, 103, 0, 105, 106, 0, 108, 0, 110, 111, 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 129, - 130, 131, 0, 0, 134, 135, 136, 137, 364, 138, - 0, 140, 362, 0, 142, 143, 144, 0, 146, 147, - 148, 0, 0, 0, 0, 153, 363, 154, 0, 0, + 130, 131, 0, 0, 134, 135, 136, 137, 365, 138, + 0, 140, 363, 0, 142, 143, 144, 0, 146, 147, + 148, 0, 0, 0, 0, 153, 364, 154, 0, 0, 157, 158, 0, 0, 0, 0, 59, 162, 25, 0, - 0, 246, 0, 0, 246, 246, 0, 369, 274, 281, - 292, 300, 0, 371, 373, 26, 6, 276, 297, 0, - 23, 295, 296, 0, 0, 20, 315, 312, 314, 313, - 249, 250, 165, 166, 167, 168, 307, 0, 0, 319, - 355, 318, 243, 369, 371, 311, 373, 309, 28, 0, + 0, 247, 0, 0, 247, 247, 0, 370, 275, 282, + 293, 301, 0, 372, 374, 26, 6, 277, 298, 0, + 23, 296, 297, 0, 0, 20, 316, 313, 315, 314, + 250, 251, 165, 166, 167, 168, 308, 0, 0, 320, + 356, 319, 244, 370, 372, 312, 374, 310, 28, 0, 173, 39, 0, 230, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 58, 40, 0, 17, 18, 19, 0, 15, 13, 12, - 16, 22, 370, 42, 298, 299, 372, 374, 43, 242, - 56, 0, 56, 0, 0, 289, 20, 0, 0, 0, - 317, 0, 0, 45, 321, 310, 38, 0, 175, 176, - 179, 375, 56, 348, 376, 56, 56, 0, 0, 194, + 16, 22, 371, 42, 299, 300, 373, 375, 43, 243, + 56, 0, 56, 0, 0, 290, 20, 0, 0, 0, + 318, 0, 0, 45, 322, 311, 38, 0, 175, 176, + 179, 376, 56, 349, 377, 56, 56, 0, 0, 194, 185, 186, 187, 191, 192, 193, 188, 189, 0, 190, 0, 0, 0, 0, 0, 0, 0, 228, 0, 226, 229, 0, 0, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 340, 0, 0, 181, 184, - 0, 0, 0, 0, 0, 0, 0, 0, 357, 358, - 359, 360, 361, 0, 0, 0, 164, 163, 0, 379, + 0, 0, 0, 0, 0, 341, 0, 0, 181, 184, + 0, 0, 0, 0, 0, 0, 0, 0, 358, 359, + 360, 361, 362, 0, 0, 0, 164, 163, 0, 380, 0, 0, 0, 60, 64, 0, 14, 44, 22, 0, - 277, 282, 0, 0, 0, 0, 0, 0, 0, 22, - 21, 0, 308, 316, 320, 356, 0, 55, 0, 0, - 49, 46, 47, 180, 174, 0, 365, 0, 231, 0, - 0, 377, 57, 237, 0, 66, 72, 0, 218, 217, - 216, 219, 214, 215, 0, 328, 0, 0, 0, 0, + 278, 283, 0, 0, 0, 0, 0, 0, 0, 22, + 21, 0, 309, 317, 321, 357, 0, 55, 0, 0, + 49, 46, 47, 180, 174, 0, 366, 0, 231, 0, + 0, 378, 57, 237, 0, 66, 72, 0, 218, 217, + 216, 219, 214, 215, 0, 329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 84, 88, 0, 92, 93, 98, 99, 100, 101, 102, - 104, 107, 109, 340, 307, 45, 345, 340, 342, 341, - 52, 337, 113, 183, 112, 128, 132, 133, 0, 141, + 104, 107, 109, 341, 308, 45, 346, 341, 343, 342, + 52, 338, 113, 183, 112, 128, 132, 133, 0, 141, 145, 149, 150, 152, 151, 155, 156, 0, 159, 160, - 161, 61, 0, 275, 278, 284, 0, 283, 286, 0, - 0, 241, 287, 20, 22, 301, 54, 53, 322, 0, - 177, 178, 0, 373, 349, 244, 235, 234, 328, 225, - 307, 45, 332, 328, 329, 0, 325, 207, 208, 220, - 201, 202, 205, 206, 196, 197, 0, 198, 199, 200, - 204, 203, 210, 209, 212, 213, 211, 221, 0, 227, - 63, 51, 340, 307, 0, 340, 0, 336, 45, 344, - 182, 0, 380, 22, 240, 285, 0, 293, 50, 48, - 350, 353, 0, 233, 0, 245, 0, 328, 307, 0, - 340, 0, 324, 0, 45, 331, 0, 224, 335, 340, - 346, 339, 343, 0, 139, 41, 22, 0, 352, 0, - 232, 169, 223, 323, 340, 333, 327, 330, 222, 0, - 195, 338, 347, 294, 351, 354, 0, 326, 334, 0, - 0, 378, 170, 0, 56, 56, 239, 172, 0, 171, - 238 + 161, 61, 0, 276, 279, 285, 0, 372, 284, 287, + 0, 0, 242, 288, 20, 22, 302, 54, 53, 323, + 0, 177, 178, 0, 374, 350, 245, 235, 234, 329, + 225, 308, 45, 333, 329, 330, 0, 326, 207, 208, + 220, 201, 202, 205, 206, 196, 197, 0, 198, 199, + 200, 204, 203, 210, 209, 212, 213, 211, 221, 0, + 227, 63, 51, 341, 308, 0, 341, 0, 337, 45, + 345, 182, 0, 381, 22, 240, 286, 0, 294, 50, + 48, 351, 354, 0, 233, 0, 246, 0, 329, 308, + 0, 341, 0, 325, 0, 45, 332, 0, 224, 336, + 341, 347, 340, 344, 0, 139, 41, 22, 0, 353, + 0, 232, 169, 223, 324, 341, 334, 328, 331, 222, + 0, 195, 339, 348, 295, 352, 355, 0, 327, 335, + 0, 0, 379, 170, 0, 56, 56, 239, 172, 0, + 171, 238 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -1248,671 +1248,669 @@ static const yytype_int16 yydefgoto[] = { -1, 1, 2, 199, 317, 221, 420, 40, 41, 42, 43, 294, 206, 44, 295, 429, 430, 431, 432, 496, - 413, 92, 195, 364, 196, 398, 497, 646, 652, 327, + 413, 92, 195, 364, 196, 398, 497, 647, 653, 327, 328, 329, 243, 377, 378, 357, 358, 359, 361, 332, - 438, 443, 336, 657, 658, 530, 48, 604, 79, 498, + 438, 443, 336, 658, 659, 531, 48, 605, 79, 498, 49, 81, 50, 296, 52, 297, 310, 410, 54, 55, 312, 415, 56, 224, 57, 58, 298, 299, 211, 61, 300, 63, 64, 65, 318, 66, 226, 67, 240, 241, - 554, 611, 555, 556, 499, 586, 500, 501, 334, 628, - 601, 602, 242, 393, 197, 244, 69, 70, 246, 400 + 555, 612, 556, 557, 499, 587, 500, 501, 334, 629, + 602, 603, 242, 393, 197, 244, 69, 70, 246, 400 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -509 +#define YYPACT_NINF -519 static const yytype_int16 yypact[] = { - -509, 85, 1435, -509, -509, -509, -509, -509, 73, -509, - -105, 90, -509, 205, -509, -509, -509, -509, 12, 110, - -509, -509, -509, -509, 258, 12, -509, -83, 12, 362, - -509, -509, 260, -70, 262, 362, -509, -509, 2569, -509, - -58, -509, -509, -509, -509, -509, 2253, -42, -40, -509, - -509, -31, -73, -509, -9, -68, 11, 13, -26, -509, - -509, -17, -509, 56, 56, 56, 93, 2419, 17, 56, - 21, 33, -509, -509, 170, -509, -509, -60, -509, 40, - -509, -509, 70, -509, -509, -509, 2419, -509, -509, -52, - 65, 2325, -509, -99, -97, -509, -509, 76, -509, -509, - -509, -509, -509, 78, 101, -509, -509, -509, -509, -509, - -509, -509, -509, -509, -509, 113, -509, -509, -509, 117, - -509, -509, -509, 123, 128, -509, -509, -509, -509, 130, - 133, 134, 135, 136, -509, 137, -509, -509, 138, -509, - 140, -509, -509, 141, 144, -509, -509, -509, -509, -509, - -509, -509, -509, -509, -509, -509, -509, -509, 145, -509, - -509, -509, 146, 147, -509, -509, -509, -509, -509, -509, - 148, -509, -509, 151, -509, -509, -509, 169, -509, -509, - -509, 173, 174, 175, 177, -509, -509, -509, 179, 180, - -509, -509, 182, 185, 188, -121, -509, -509, -509, 1308, - 495, 274, 342, 285, 289, 303, 189, 191, -509, -509, - -509, -509, 93, 194, 195, -509, -509, -509, -509, -59, - -509, -509, -509, 305, 193, -509, -509, -509, -509, -509, - -509, -509, -509, -509, -509, -509, -509, 93, 93, -509, - 139, -57, -509, -509, -509, 56, -509, -509, -509, 196, - 325, -509, 198, -509, 93, 201, -509, 399, 325, 821, - 821, 400, 401, 821, 821, 404, 406, 821, 409, 821, - 821, 1854, 821, 821, 411, -78, 414, 821, 2419, 821, - 821, 2419, 9, 2419, 2419, 143, 420, 418, 2419, 2569, - 228, -509, 226, -509, -509, -509, 230, -509, -509, -509, - -509, 11, 229, -509, -509, -509, 229, -92, -509, -509, - -128, 252, -81, 233, 231, -509, -509, 596, 71, 234, - -509, 821, 1110, 1854, -509, -509, -509, 235, 263, -509, - 232, -509, -84, -509, 264, -70, -71, 241, 256, -509, - -509, -509, -509, -509, -509, -509, -509, -509, 253, -509, - 821, 821, 821, 821, 821, 821, 1039, 2065, -134, -509, - 2065, 261, 265, -509, -117, 266, 267, 268, 269, 270, - 271, 272, 1231, 273, 2325, 87, 276, -93, -509, 2065, - 277, 278, 280, 283, 281, -87, 1852, 287, -509, -509, - -509, -509, -509, 288, 290, 291, -509, -509, 292, 279, - 296, 297, 298, -509, 2569, 459, -509, -509, 11, -19, - -509, -509, 306, 2325, 301, 925, 299, 379, 710, 11, - -509, 2325, -509, -509, -509, -509, 1143, -509, 433, 302, - 310, -509, -509, -509, 325, 821, -509, 2325, -509, 93, - 307, -509, 308, -509, 311, -509, -509, 2325, 22, 22, - 22, 22, 22, 22, 1924, -21, 821, 821, 511, 821, - 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, - 821, 821, 821, 821, 821, 821, 512, 821, 821, -509, - -509, -509, 508, -509, -509, -509, -509, -509, -509, -509, - -509, -509, -509, 87, -509, 1562, -509, 87, -509, -509, - -509, -39, -509, 821, -509, -509, -509, -509, 821, -509, - -509, -509, -509, -509, -509, -509, -509, 513, -509, -509, - -509, -509, 313, -509, -509, -509, 93, -509, -509, 2325, - 318, -509, -509, -509, 11, -509, -509, -509, -509, 1760, - -509, -509, 87, 319, -509, 325, -509, -509, -21, -509, - -509, 1688, -509, -21, -509, 320, -23, 112, 112, -509, - 732, 732, 68, 68, 1970, 1994, 2044, 1076, 2082, 1018, - 68, 68, 95, 95, 22, 22, 22, -509, 1949, -509, - -509, -509, 25, -509, 321, 87, 323, -509, 1854, -509, - -509, 327, -509, 11, -509, -509, 811, -509, -509, -509, - 348, -509, -114, -509, 317, -509, 328, 341, -509, 329, - 87, 332, -509, 821, 1854, -509, 821, -509, -509, 25, - -509, -509, -509, 335, -509, -509, 11, 821, -509, 87, - -509, -509, -509, -509, 25, -509, -509, -509, 22, 336, - 2065, -509, -509, -509, -509, -509, -10, -509, -509, 821, - 364, -509, -509, 365, -136, -136, -509, -509, 345, -509, - -509 + -519, 56, 1328, -519, -519, -519, -519, -519, 160, -519, + -140, 164, -519, 168, -519, -519, -519, -519, 7, 105, + -519, -519, -519, -519, 174, 7, -519, -58, 7, 426, + -519, -519, 178, -78, 180, 426, -519, -519, 2560, -519, + -15, -519, -519, -519, -519, -519, 2244, -11, -7, -519, + -519, 13, -36, -519, 15, -20, 20, 22, 12, -519, + -519, -6, -519, -16, -16, -16, 493, 2410, 31, -16, + 33, 41, -519, -519, 171, -519, -519, -72, -519, 4, + -519, -519, 45, -519, -519, -519, 2410, -519, -519, -71, + 44, 2316, -519, -111, -121, -519, -519, 49, -519, -519, + -519, -519, -519, 55, 67, -519, -519, -519, -519, -519, + -519, -519, -519, -519, -519, 70, -519, -519, -519, 72, + -519, -519, -519, 74, 76, -519, -519, -519, -519, 78, + 81, 84, 94, 97, -519, 103, -519, -519, 110, -519, + 113, -519, -519, 128, 130, -519, -519, -519, -519, -519, + -519, -519, -519, -519, -519, -519, -519, -519, 132, -519, + -519, -519, 138, 141, -519, -519, -519, -519, -519, -519, + 159, -519, -519, 161, -519, -519, -519, 162, -519, -519, + -519, 163, 166, 169, 170, -519, -519, -519, 176, 177, + -519, -519, 179, 191, 195, -74, -519, -519, -519, 1201, + 514, 264, 364, 288, 305, 322, 194, 172, -519, -519, + -519, -519, 493, 199, 202, -519, -519, -519, -519, -29, + -519, -519, -519, 334, 200, -519, -519, -519, -519, -519, + -519, -519, -519, -519, -519, -519, -519, 493, 493, -519, + 201, -133, -519, -519, -519, -16, -519, -519, -519, 206, + 336, -519, 207, -519, 493, 203, -519, 404, 336, 436, + 436, 409, 410, 436, 436, 412, 419, 436, 421, 436, + 436, 1747, 436, 436, 423, -73, 424, 436, 2410, 436, + 436, 2410, -37, 2410, 2410, 136, 429, 427, 2410, 2560, + 236, -519, 235, -519, -519, -519, 246, -519, -519, -519, + -519, 20, 248, -519, -519, -519, 248, -109, -519, -519, + -135, 270, -81, 252, 250, -519, -519, 615, 387, 255, + -519, 436, 73, 1747, -519, -519, -519, 266, 277, -519, + 259, -519, -134, -519, 297, -78, -132, 273, 274, -519, + -519, -519, -519, -519, -519, -519, -519, -519, 278, -519, + 436, 436, 436, 436, 436, 436, 1058, 2055, -143, -519, + 2055, 282, 285, -519, -129, 287, 290, 294, 295, 298, + 300, 302, 1745, 307, 2316, 260, 308, -106, -519, 2055, + 309, 311, 312, 330, 313, -89, 1817, 315, -519, -519, + -519, -519, -519, 316, 320, 321, -519, -519, 323, 289, + 324, 325, 328, -519, 2560, 525, -519, -519, 20, -3, + -519, -519, 345, 2316, 299, 944, 329, 445, 729, 20, + -519, 2316, -519, -519, -519, -519, 101, -519, 1937, 333, + 360, -519, -519, -519, 336, 436, -519, 2316, -519, 493, + 337, -519, 338, -519, 340, -519, -519, 2316, 14, 14, + 14, 14, 14, 14, 1842, 258, 436, 436, 540, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, + 436, 436, 436, 436, 436, 436, 545, 436, 436, -519, + -519, -519, 541, -519, -519, -519, -519, -519, -519, -519, + -519, -519, -519, 260, -519, 1455, -519, 260, -519, -519, + -519, -48, -519, 436, -519, -519, -519, -519, 436, -519, + -519, -519, -519, -519, -519, -519, -519, 547, -519, -519, + -519, -519, 351, -519, -519, -519, 493, -101, -519, -519, + 2316, 356, -519, -519, -519, 20, -519, -519, -519, -519, + 1653, -519, -519, 260, 357, -519, 336, -519, -519, 258, + -519, -519, 1581, -519, 258, -519, 361, -46, 280, 280, + -519, 751, 751, 197, 197, 2074, 981, 2034, 1996, 1977, + 1037, 197, 197, 284, 284, 14, 14, 14, -519, 1959, + -519, -519, -519, 83, -519, 362, 260, 363, -519, 1747, + -519, -519, 365, -519, 20, -519, -519, 830, -519, -519, + -519, 379, -519, -86, -519, 359, -519, 370, 518, -519, + 371, 260, 373, -519, 436, 1747, -519, 436, -519, -519, + 83, -519, -519, -519, 374, -519, -519, 20, 436, -519, + 260, -519, -519, -519, -519, 83, -519, -519, -519, 14, + 380, 2055, -519, -519, -519, -519, -519, -17, -519, -519, + 436, 402, -519, -519, 411, -40, -40, -519, -519, 383, + -519, -519 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -509, -509, -509, 504, -304, -296, 41, -509, -509, -509, - 149, -509, -509, -509, 548, -462, -509, -509, -264, -221, - -27, -2, -509, -509, -268, -509, -65, -509, -509, -509, - -509, 119, 2, 286, 48, -104, -509, -254, -252, -509, - -509, -509, -509, -100, -197, -509, 153, -509, 39, -47, - -509, 142, 105, 58, -509, 555, -509, -509, 516, -509, - -509, -509, -509, -509, -24, -509, 556, 1, -509, -509, - 557, -509, -509, -309, -450, -32, -14, -33, -213, -509, - -509, -509, -506, -509, -508, -509, -179, -509, -509, -509, - -56, -509, 352, -509, 294, 6, -51, -509, 0, -509 + -519, -519, -519, 549, -300, -291, 28, -519, -519, -519, + 182, -519, -519, -519, 589, -464, -519, -519, -258, -230, + -9, -2, -519, -519, -268, -519, -62, -519, -519, -519, + -519, 167, 5, 318, 102, -114, -519, -255, -257, -519, + -519, -519, -519, -50, -212, -519, 193, -519, 25, -64, + -519, 133, 100, 46, -519, 612, -519, -519, 569, -519, + -519, -519, -519, -519, -23, -519, 619, 6, -519, -519, + 620, -519, -519, -303, -466, -45, -24, -26, -219, -519, + -519, -519, -494, -519, -518, -519, -183, -519, -519, -519, + -13, -519, 414, -519, 352, 1, -33, -519, 3, -519 }; /* 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 YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -248 +#define YYTABLE_NINF -249 static const yytype_int16 yytable[] = { - 46, 238, 71, 60, 47, 407, 91, 373, 68, 422, - 366, 365, 418, 369, 212, 371, 245, 232, 376, 239, - 324, 403, 210, 383, 319, 320, 412, 649, 230, 231, - 227, 227, 227, 584, 600, 252, 227, 458, 11, 24, - 650, 333, 606, 39, 582, 478, 214, 612, 207, 233, - 228, 229, 213, 168, -247, 247, 255, 172, 289, 254, - 51, -247, 482, 232, 38, 629, 656, 311, 9, 425, - 479, 90, 38, 94, 230, 231, 72, 73, 408, 24, - 290, 456, 457, 458, 186, 3, 503, 483, 630, 609, - 230, 231, 503, 75, 76, 233, 230, 231, 74, 9, - 607, 633, 234, -34, 208, 423, -247, 80, 256, 232, - 458, 504, 523, -247, 9, 414, 38, 510, 82, 38, - 86, 600, 436, 535, 15, 232, 623, 458, 235, 38, - 38, 232, 217, 619, 88, 441, 521, 219, 440, 444, - 95, 233, -30, 322, 198, -247, 323, 238, 234, 20, - -32, 396, 639, -247, 397, 223, 360, 233, 634, 360, - -29, 322, 215, 233, 588, 239, 372, 85, 550, 379, - 87, 216, 238, 238, 235, 379, 386, 322, 249, 322, - 614, 541, 551, 388, 389, 390, 391, 392, 225, 238, - 239, 239, 26, 218, 234, 313, 651, 46, 46, 71, - 71, 47, 47, 330, 31, 68, 68, 239, 77, 78, - 234, 338, 227, 220, 494, 222, 234, 360, 428, -31, - 235, 476, 477, 248, 579, 322, 544, 384, 495, 596, - 387, 325, 394, 395, 552, -33, 235, 402, 597, 375, - 293, 293, 235, 90, 94, 250, 448, 449, 450, 451, - 452, 453, 454, 238, 591, 471, 472, 473, 474, 475, - 236, 83, 84, 89, 78, 93, 78, 476, 477, 374, - 253, 239, 251, 422, 237, 599, 494, 302, 78, 257, - 589, 258, 236, 409, 473, 474, 475, 322, 304, 305, - 495, 375, 306, 78, 476, 477, 237, 625, 422, 471, - 472, 473, 474, 475, 259, 437, 307, 78, 314, 315, - 422, 476, 477, 594, 581, 421, 260, 71, 587, 47, - 261, 374, 451, 68, 455, 422, 262, 552, 230, 231, - 643, 263, 552, 264, 442, 615, 265, 266, 267, 268, - 269, 270, 493, 271, 272, 303, 321, 273, 274, 275, - 276, 277, 557, 558, 278, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 279, 578, 238, 644, 280, 281, 282, 232, - 283, 526, 284, 285, 9, 286, 552, 330, 287, 212, - 553, 288, 239, -35, 308, 653, -36, -37, 316, 379, - 326, 7, 331, 618, 335, 542, 621, 337, 362, 363, - 524, 233, 367, 529, 368, 548, 421, 370, 71, 380, - 47, 214, 382, 207, 68, 399, 401, 213, 404, 405, - 585, 636, 406, 411, -247, 416, 417, 543, 424, 435, - 641, 433, 434, 439, 18, 445, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 647, 447, 21, 22, 23, - 446, 238, 508, 375, 234, 480, 25, 522, 19, 481, - 484, 485, 486, 487, 488, 489, 490, 492, 517, 239, - 502, 505, 506, 553, 507, 509, 610, 525, 553, 539, - 235, 512, 513, 374, 514, 515, 516, 212, 605, 4, - 518, 519, 520, 527, 28, 532, 538, 375, 30, 638, - 546, 545, 640, 547, 559, 577, 580, 593, 592, 375, - 595, 603, 631, 360, 613, 620, 5, 622, 6, 627, - 550, 624, 632, 635, 7, 8, 637, 374, 9, 642, - 648, 322, 553, 10, 551, 654, 655, 660, 200, 374, - 45, 590, 11, 540, 12, 659, 375, 53, 59, 62, - 13, 14, 209, 15, 309, 385, 533, 16, 531, 381, - 17, 0, 0, 645, 0, 0, 0, 18, 0, 0, - 0, 0, 375, 0, 19, 292, 374, 0, 20, 0, - 21, 22, 23, 24, 421, 0, 71, 0, 47, 25, - 4, 0, 68, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 374, 465, 0, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 0, 0, 5, 0, 6, - 0, 26, 476, 477, 537, 7, 27, 28, 29, 9, - 0, 30, 0, 31, 10, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 33, 12, 34, 0, 35, 0, - 0, 13, 14, 0, 15, 0, 36, 37, 16, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 18, 0, - 0, 0, 0, 0, 0, 19, 0, 0, 0, 20, - 0, 21, 22, 23, 0, 38, 0, 0, 0, 0, - 25, 301, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, - 0, 5, 30, 6, 31, 456, 457, 458, 32, 7, - 461, 462, 0, 9, 0, 33, 0, 34, 10, 35, - 0, 0, 0, 0, 0, 0, 0, 36, 37, 12, - 0, 0, 0, 0, 0, 13, 14, 0, 15, 0, - 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 0, 38, 0, 0, 19, - 0, 0, 419, 20, 0, 21, 22, 23, 0, 0, - 0, 0, 0, 0, 25, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 339, 0, 340, 341, 342, 343, - 344, 345, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 6, 0, 26, 0, 0, 0, - 7, 27, 28, 29, 9, 0, 30, 0, 31, 10, - 0, 0, 32, 0, 0, 0, 0, 0, 0, 33, - 12, 34, 0, 35, 0, 0, 13, 14, 0, 15, - 0, 36, 37, 16, 0, 0, 17, 0, 0, 0, - 346, 0, 0, 18, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 20, 0, 21, 22, 23, 0, - 38, 0, 0, 0, 0, 25, 534, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 0, 4, - 0, 476, 477, 0, 0, 0, 347, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, - 0, 0, 27, 28, 29, 0, 5, 30, 6, 31, - 0, 0, 0, 32, 7, 0, 348, 0, 9, 0, - 33, 0, 34, 0, 35, 0, 0, 0, 0, 349, - 0, 0, 36, 37, 12, 0, 0, 0, 0, 0, - 201, 14, 0, 15, 0, 0, 0, 16, 0, 0, - 17, 0, 0, 0, 0, 350, 0, 18, 351, 352, - 353, 38, 0, 354, 355, 0, 0, 626, 20, 0, - 21, 22, 23, 0, 356, 0, 0, 0, 0, 25, - 0, 456, 457, 458, 459, 460, 461, 462, 0, 0, - 0, 0, 339, 4, 340, 341, 342, 343, 344, 345, + 46, 212, 239, 68, 238, 71, 365, 47, 60, 366, + 407, 324, 369, 373, 371, 422, 418, 376, 319, 320, + 650, 403, 383, 210, 91, 601, 412, 9, 583, 458, + 39, 585, 255, 651, 245, 333, 478, 227, 227, 227, + 228, 229, -248, 227, -248, 247, 254, 213, 51, 214, + 482, 207, 15, 252, 11, 607, 3, 90, 168, 94, + 613, 479, 172, 74, 425, 38, 38, 322, 38, 24, + 323, 408, 436, 503, 441, 483, 339, 20, 340, 341, + 342, 343, 344, 345, 256, 608, 230, 231, 610, 186, + 503, -34, 208, 630, -248, 24, -248, 311, 504, 423, + 414, -241, 80, -241, 339, 289, 340, 341, 342, 343, + 344, 345, 601, 82, 634, 510, 631, 523, 620, 38, + 26, 232, 38, 440, 444, 624, 9, 290, 536, 88, + -30, -32, 31, -248, -248, 95, 521, 388, 389, 390, + 391, 392, 346, 635, 396, 86, 360, 397, 239, 360, + 238, 640, 322, 233, 322, 589, 372, 615, 85, 379, + 38, 87, 657, 72, 73, 379, 386, 75, 76, 217, + 346, 77, 78, 239, 239, 238, 238, 83, 84, 249, + 542, 89, 78, 93, 78, 219, 330, 198, 347, 652, + 239, -29, 238, 223, 338, 215, 313, 46, 46, 225, + 68, 68, 71, 71, 47, 47, 234, 360, 428, 250, + 456, 457, 458, 476, 477, 216, 347, 218, 348, 227, + 545, 325, 220, 580, 222, 553, 375, 293, 293, 90, + 94, 349, 235, -31, 597, 248, 448, 449, 450, 451, + 452, 453, 454, -33, 598, 384, 348, 251, 387, 253, + 394, 395, 257, 592, 239, 402, 238, 350, 258, 349, + 351, 352, 426, 230, 231, 354, 355, 302, 78, 374, + 259, 590, 494, 260, 427, 261, 356, 262, 375, 263, + 422, 264, 600, 322, 265, 350, 495, 266, 351, 352, + 353, 304, 305, 354, 355, 458, 232, 267, 232, 458, + 268, 409, 537, 626, 356, 422, 269, 595, 306, 78, + 582, 455, 451, 270, 588, 421, 271, 422, 68, 553, + 71, 374, 47, 437, 553, 307, 78, 616, 233, 493, + 233, 272, 422, 273, 442, 274, 644, 314, 315, 230, + 231, 275, 558, 559, 276, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 277, 579, 278, 279, 280, 303, 526, 281, + 330, 645, 282, 283, -35, 239, 212, 238, 553, 284, + 285, 234, 286, 234, 471, 472, 473, 474, 475, 379, + 230, 231, 543, 554, 287, 654, 476, 477, 288, 308, + 619, -36, 549, 622, -37, 316, 335, 235, 321, 235, + 326, 331, 337, 530, 527, 524, 421, 362, 363, 68, + 367, 71, 213, 47, 214, 232, 207, 368, 637, 370, + 9, 380, 382, 586, 399, 401, 404, 642, 405, 339, + 544, 340, 341, 342, 343, 344, 345, 551, 406, 494, + 375, 411, 648, -248, 416, 417, 434, 233, 322, 424, + 322, 552, 239, 495, 238, 7, 435, 471, 472, 473, + 474, 475, 433, 473, 474, 475, 439, 445, 446, 476, + 477, 447, 606, 476, 477, 212, 480, 554, 517, 481, + 611, 484, 554, 374, 485, 375, 230, 231, 486, 487, + 639, 528, 488, 641, 489, 346, 490, 375, 18, 508, + 234, 492, 502, 505, 360, 506, 507, 509, 4, 512, + 513, 21, 22, 23, 514, 515, 525, 516, 518, 519, + 25, 232, 520, 522, 19, 533, 235, 539, 374, 540, + 547, 546, 548, 560, 375, 5, 554, 6, 578, 581, + 374, 347, 593, 7, 8, 594, 232, 9, 596, 604, + 628, 9, 10, 233, 632, 614, 621, 623, 28, 625, + 375, 11, 30, 12, 633, 636, 236, 638, 643, 13, + 14, 348, 15, 655, 649, 661, 16, 374, 233, 17, + 237, 45, 656, 200, 349, 421, 18, 385, 68, 534, + 71, 541, 47, 19, 292, 591, 660, 20, 532, 21, + 22, 23, 24, 374, 53, 209, 234, 646, 25, 4, + 350, 59, 62, 351, 352, 353, 309, 381, 354, 355, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, + 0, 234, 235, 0, 0, 0, 5, 0, 6, 0, + 26, 0, 0, 0, 7, 27, 28, 29, 9, 0, + 30, 0, 31, 10, 0, 0, 32, 235, 0, 0, + 0, 0, 0, 33, 12, 34, 0, 35, 0, 0, + 13, 14, 236, 15, 0, 36, 37, 16, 0, 0, + 17, 0, 0, 0, 0, 0, 237, 18, 0, 0, + 0, 0, 0, 0, 19, 0, 0, 551, 20, 0, + 21, 22, 23, 0, 38, 0, 0, 0, 322, 25, + 301, 552, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, 0, - 5, 30, 6, 31, 0, 0, 0, 204, 7, 0, - 0, 0, 9, 0, 0, 0, 205, 0, 35, 456, - 457, 458, 459, 460, 461, 462, 36, 37, 12, 0, - 0, 0, 0, 0, 201, 14, 0, 15, 346, 0, - 0, 16, 0, 339, 17, 340, 341, 342, 343, 344, - 345, 18, 0, 0, 0, 38, 0, 0, 0, 0, - 0, 528, 20, 0, 21, 22, 23, 0, 0, 0, - 0, 0, 0, 25, 0, 0, 339, 0, 340, 341, - 342, 343, 344, 345, 347, 0, 0, 0, 0, 0, + 5, 30, 6, 31, 456, 457, 458, 32, 7, 461, + 462, 0, 9, 0, 33, 0, 34, 10, 35, 0, + 0, 0, 0, 0, 0, 0, 36, 37, 12, 0, + 0, 0, 0, 0, 13, 14, 0, 15, 0, 0, + 0, 16, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 18, 0, 0, 0, 38, 0, 0, 19, 0, + 0, 419, 20, 0, 21, 22, 23, 0, 0, 0, + 0, 0, 0, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 0, 0, 0, 346, - 27, 28, 29, 0, 348, 30, 0, 31, 0, 0, - 0, 204, 0, 0, 0, 0, 0, 349, 0, 0, - 205, 0, 35, 469, 470, 471, 472, 473, 474, 475, - 36, 37, 346, 0, 0, 0, 0, 476, 477, 0, - 0, 0, 0, 350, 0, 347, 351, 352, 353, 0, - 0, 354, 355, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 356, 0, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 0, 0, 348, 0, 0, 347, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 349, 0, - 0, 0, 0, 0, 0, 476, 477, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 348, 0, - 0, 0, 0, 0, 350, 0, 0, 351, 352, 426, - 0, 349, 354, 355, 0, 0, 0, 0, 0, 0, - 0, 427, 4, 356, 0, 0, 0, 0, 0, 0, - 291, 0, 0, 0, 0, 0, 0, 350, 0, 0, - 351, 352, 353, 0, 0, 354, 355, 0, 0, 5, - 0, 6, 0, 0, 536, 0, 356, 7, 8, 0, - 0, 9, 0, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 0, 6, 0, 26, 0, 0, 0, 7, + 27, 28, 29, 9, 0, 30, 0, 31, 10, 0, + 0, 32, 0, 0, 0, 0, 0, 0, 33, 12, + 34, 0, 35, 0, 0, 13, 14, 0, 15, 0, + 36, 37, 16, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 18, 0, 0, 0, 0, 0, 0, 19, + 0, 0, 0, 20, 0, 21, 22, 23, 0, 38, + 0, 0, 0, 0, 25, 535, 469, 470, 471, 472, + 473, 474, 475, 0, 0, 0, 0, 0, 4, 0, + 476, 477, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0, 27, 28, 29, 0, 5, 30, 6, 31, 0, + 0, 0, 32, 7, 0, 0, 0, 9, 0, 33, + 0, 34, 0, 35, 456, 457, 458, 459, 460, 461, + 462, 36, 37, 12, 0, 0, 0, 0, 0, 201, + 14, 0, 15, 0, 0, 0, 16, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, + 38, 0, 0, 0, 0, 0, 627, 20, 0, 21, + 22, 23, 0, 0, 0, 0, 0, 0, 25, 0, + 456, 457, 458, 459, 460, 461, 462, 0, 0, 0, + 0, 339, 4, 340, 341, 342, 343, 344, 345, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 0, 27, 28, 29, 0, 5, + 30, 6, 31, 0, 0, 0, 204, 7, 0, 0, + 0, 9, 0, 0, 0, 205, 0, 35, 0, 0, + 0, 0, 0, 0, 0, 36, 37, 12, 0, 0, + 0, 0, 0, 201, 14, 0, 15, 346, 0, 0, + 16, 0, 0, 17, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 38, 0, 0, 0, 0, 0, + 529, 20, 0, 21, 22, 23, 0, 0, 0, 0, + 0, 0, 25, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 347, 0, 0, 0, 0, 0, 0, + 476, 477, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, + 28, 29, 0, 348, 30, 4, 31, 0, 0, 0, + 204, 0, 0, 291, 0, 0, 349, 0, 0, 205, + 0, 35, 469, 470, 471, 472, 473, 474, 475, 36, + 37, 0, 5, 0, 6, 0, 476, 477, 0, 0, + 7, 8, 350, 0, 9, 351, 352, 353, 0, 10, + 354, 355, 0, 0, 0, 0, 0, 0, 11, 0, + 12, 356, 0, 0, 0, 0, 13, 14, 0, 15, + 0, 0, 0, 16, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, + 19, 292, 0, 0, 20, 0, 21, 22, 23, 24, + 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 26, 0, 0, + 0, 0, 27, 28, 29, 0, 0, 30, 0, 31, + 0, 0, 0, 32, 0, 0, 0, 0, 0, 5, + 33, 6, 34, 0, 35, 0, 0, 7, 8, 0, + 0, 9, 36, 37, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, 13, 14, 0, 15, 0, 0, 0, - 16, 0, 0, 17, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 19, 292, 0, + 16, 38, 0, 17, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 20, 0, 21, 22, 23, 24, 0, 0, 0, - 0, 465, 25, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 0, 0, 0, 0, 0, 0, 0, - 476, 477, 0, 0, 0, 491, 0, 0, 0, 4, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, 0, 0, 30, 0, 31, 0, 0, 0, 32, 0, 0, 0, 0, 0, 5, 33, 6, 34, - 0, 35, 0, 0, 7, 8, 0, 0, 9, 36, - 37, 0, 0, 10, 0, 0, 0, 0, 0, 0, - 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, - 13, 14, 0, 15, 0, 0, 0, 16, 38, 0, + 0, 35, 0, 232, 7, 0, 0, 0, 9, 36, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 201, 14, 0, 15, 0, 233, 0, 16, 38, 0, 17, 0, 0, 0, 0, 0, 0, 18, 0, 0, - 0, 0, 0, 0, 19, 0, 0, 0, 20, 0, - 21, 22, 23, 24, 0, 0, 0, 0, 0, 25, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, + 21, 22, 23, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, 0, - 0, 30, 0, 31, 0, 0, 0, 32, 0, 0, - 0, 0, 0, 5, 33, 6, 34, 0, 35, 0, - 232, 7, 0, 0, 0, 9, 36, 37, 0, 0, + 0, 30, 0, 31, 235, 0, 0, 204, 0, 0, + 0, 0, 5, 0, 6, 0, 205, 0, 35, 232, + 7, 0, 0, 0, 9, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 12, 0, 0, 0, 0, 0, 201, 14, 0, - 15, 0, 233, 0, 16, 38, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 0, 21, 22, 23, - 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 12, 0, 0, 0, 584, 0, 201, 14, 0, 15, + 0, 233, 0, 16, 0, 38, 17, 4, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 599, 21, 22, 23, 0, + 0, 0, 0, 0, 5, 25, 6, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 0, 26, 201, 14, + 0, 15, 27, 28, 29, 16, 0, 30, 17, 31, + 235, 0, 0, 204, 0, 18, 0, 0, 0, 0, + 0, 0, 205, 0, 35, 0, 20, 0, 21, 22, + 23, 4, 36, 37, 0, 0, 0, 25, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 0, 0, 0, + 609, 0, 0, 0, 0, 0, 0, 0, 5, 0, + 6, 38, 0, 0, 0, 0, 7, 0, 0, 26, + 9, 0, 0, 0, 27, 28, 29, 0, 0, 30, + 0, 31, 0, 0, 0, 204, 12, 0, 0, 0, + 0, 0, 201, 14, 205, 15, 35, 0, 0, 16, + 0, 0, 17, 0, 36, 37, 0, 0, 0, 18, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, + 20, 0, 21, 22, 23, 0, 0, 0, 0, 0, + 0, 25, 0, 38, 0, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, 0, 0, 26, 0, - 0, 0, 0, 27, 28, 29, 0, 0, 30, 0, - 31, 235, 0, 0, 204, 0, 0, 0, 0, 5, - 0, 6, 0, 205, 0, 35, 232, 7, 0, 0, - 0, 9, 0, 36, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, - 0, 583, 0, 201, 14, 0, 15, 0, 233, 0, - 16, 0, 38, 17, 4, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 598, 21, 22, 23, 0, 0, 0, 0, - 0, 5, 25, 6, 0, 0, 0, 0, 0, 7, - 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 0, 234, 0, 0, 0, 0, 0, 0, 0, 12, - 0, 0, 0, 0, 26, 201, 14, 0, 15, 27, - 28, 29, 16, 0, 30, 17, 31, 235, 0, 0, - 204, 0, 18, 0, 0, 0, 0, 0, 0, 205, - 0, 35, 0, 20, 0, 21, 22, 23, 4, 36, - 37, 0, 0, 0, 25, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 0, 0, 0, 608, 0, 0, - 0, 0, 0, 0, 0, 5, 0, 6, 38, 0, - 0, 0, 0, 7, 0, 0, 26, 9, 0, 0, - 0, 27, 28, 29, 0, 0, 30, 0, 31, 0, - 0, 0, 204, 12, 0, 0, 0, 0, 0, 201, - 14, 205, 15, 35, 0, 0, 16, 0, 0, 17, - 0, 36, 37, 0, 0, 0, 18, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 0, 20, 0, 21, - 22, 23, 0, 0, 0, 0, 0, 0, 25, 0, - 38, 0, 456, 457, 458, 459, 460, 461, 462, 463, + 0, 0, 0, 26, 0, 0, 0, 0, 27, 28, + 29, 0, 0, 30, 0, 31, 0, 0, 0, 204, + 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, + 35, 0, 0, 0, 0, 0, 0, 0, 36, 37, + 0, 0, 0, 0, 0, 465, 0, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, + 0, 0, 0, 0, 476, 477, 0, 38, 0, 491, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 456, 457, 458, 459, 460, 461, 462, - 26, 464, 0, 0, 0, 27, 28, 29, 0, 0, - 30, 0, 31, 0, 0, 0, 204, 456, 457, 458, - 459, 460, 461, 462, 0, 205, 0, 35, 0, 0, - 0, 0, 0, 0, 0, 36, 37, 0, 0, 0, - 0, 0, 465, 0, 466, 467, 468, 469, 470, 471, + 456, 457, 458, 459, 460, 461, 462, 465, 0, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 456, + 457, 458, 459, 460, 461, 462, 476, 477, 0, 0, + 0, 511, 465, 0, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, 0, 0, - 0, 476, 477, 0, 38, 0, 511, 456, 457, 458, + 0, 476, 477, 0, 0, 0, 550, 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 456, 457, 458, 459, 460, 461, 462, 463, 464, 0, 0, 0, - 0, 0, 0, 0, 0, 456, 457, 458, 459, 460, - 461, 462, 0, 0, 465, 0, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 0, 0, 0, 476, 477, 0, 0, 0, 549, 465, + 0, 0, 0, 0, 0, 0, 0, 456, 457, 458, + 459, 460, 461, 462, 0, 464, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 465, 0, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, + 0, 0, 0, 0, 0, 0, 476, 477, 538, 465, 0, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, 0, 0, 0, 476, 477, - 617, 0, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 0, 0, 0, 0, 0, 0, 0, 476, - 477, 0, 0, 0, 0, 0, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 0, 0, 0, 476, 477, 0, 0, 0, 0, 0, + 618, 468, 469, 470, 471, 472, 473, 474, 475, 0, + 0, 0, 0, 0, 0, 0, 476, 477, 0, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, + 0, 0, 0, 0, 0, 476, 477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 465, 616, 466, 467, 468, 469, + 0, 0, 0, 0, 465, 617, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, 0, 0, 0, 476, 477, 465, 0, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 4, 0, 0, - 0, 0, 0, 0, 476, 477, 468, 469, 470, 471, - 472, 473, 474, 475, 0, 0, 0, 0, 0, 0, - 0, 476, 477, 0, 5, 0, 6, 0, 0, 0, - 0, 0, 7, 8, 0, 0, 9, 0, 0, 0, + 469, 470, 471, 472, 473, 474, 475, 0, 4, 0, + 0, 0, 0, 0, 476, 477, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, + 0, 0, 0, 476, 477, 5, 0, 6, 0, 0, + 0, 0, 0, 7, 8, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 12, 0, 0, 0, 0, 0, 201, 14, - 0, 15, 0, 0, 0, 16, 0, 0, 17, 4, - 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 21, 22, - 23, 24, 0, 0, 202, 0, 5, 25, 6, 0, - 0, 203, 0, 0, 7, 0, 0, 0, 9, 0, + 0, 11, 0, 12, 0, 0, 0, 0, 0, 201, + 14, 0, 15, 0, 0, 0, 16, 0, 0, 17, + 4, 0, 0, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, + 22, 23, 24, 0, 0, 202, 0, 5, 25, 6, + 0, 0, 203, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 0, 26, - 201, 14, 0, 15, 27, 28, 29, 16, 0, 30, - 17, 31, 0, 0, 0, 204, 0, 18, 0, 0, - 0, 0, 0, 0, 205, 0, 35, 0, 20, 0, - 21, 22, 23, 4, 36, 37, 0, 0, 0, 25, + 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, + 26, 201, 14, 0, 15, 27, 28, 29, 16, 0, + 30, 17, 31, 0, 0, 0, 204, 0, 18, 0, + 0, 0, 0, 0, 0, 205, 0, 35, 0, 20, + 0, 21, 22, 23, 4, 36, 37, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 0, 6, 0, 0, 0, 0, 0, 7, 0, - 0, 26, 0, 0, 0, 0, 27, 28, 29, 0, - 0, 30, 0, 31, 0, 0, 0, 204, 12, 0, - 0, 0, 0, 0, 201, 14, 205, 0, 35, 0, - 0, 16, 0, 0, 17, 0, 36, 37, 0, 0, - 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 21, 22, 23, 0, 0, 0, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, + 0, 5, 0, 6, 0, 0, 0, 0, 0, 7, + 0, 0, 26, 0, 0, 0, 0, 27, 28, 29, + 0, 0, 30, 0, 31, 0, 0, 0, 204, 12, + 0, 0, 0, 0, 0, 201, 14, 205, 0, 35, + 0, 0, 16, 0, 0, 17, 0, 36, 37, 0, + 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, 22, 23, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 28, 29, 0, 0, 30, 0, 0, 0, 0, - 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, - 205, 0, 35, 0, 0, 0, 0, 0, 0, 0, - 36, 37, 96, 0, 97, 98, 99, 0, 100, 101, - 0, 102, 0, 0, 103, 0, 104, 0, 0, 0, - 105, 106, 0, 107, 108, 109, 110, 0, 111, 112, - 113, 114, 115, 116, 117, 118, 0, 119, 0, 120, - 121, 122, 123, 124, 0, 0, 125, 0, 0, 0, - 126, 0, 127, 128, 0, 129, 130, 131, 132, 133, - 134, 0, 135, 136, 137, 138, 139, 140, 0, 0, - 141, 0, 0, 142, 0, 0, 0, 0, 143, 144, - 0, 145, 146, 0, 147, 148, 0, 0, 149, 150, - 151, 152, 153, 154, 0, 155, 156, 157, 158, 159, - 160, 161, 0, 162, 163, 0, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 0, 0, 0, 177, 0, 0, 178, 0, 0, 179, - 180, 0, 0, 181, 182, 183, 184, 0, 0, 185, - 0, 186, 0, 187, 188, 189, 190, 191, 192, 193, - 0, 0, 194 + 0, 27, 28, 29, 0, 0, 30, 0, 0, 0, + 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, + 0, 205, 0, 35, 0, 0, 0, 0, 0, 0, + 0, 36, 37, 96, 0, 97, 98, 99, 0, 100, + 101, 0, 102, 0, 0, 103, 0, 104, 0, 0, + 0, 105, 106, 0, 107, 108, 109, 110, 0, 111, + 112, 113, 114, 115, 116, 117, 118, 0, 119, 0, + 120, 121, 122, 123, 124, 0, 0, 125, 0, 0, + 0, 126, 0, 127, 128, 0, 129, 130, 131, 132, + 133, 134, 0, 135, 136, 137, 138, 139, 140, 0, + 0, 141, 0, 0, 142, 0, 0, 0, 0, 143, + 144, 0, 145, 146, 0, 147, 148, 0, 0, 149, + 150, 151, 152, 153, 154, 0, 155, 156, 157, 158, + 159, 160, 161, 0, 162, 163, 0, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, + 176, 0, 0, 0, 177, 0, 0, 178, 0, 0, + 179, 180, 0, 0, 181, 182, 183, 184, 0, 0, + 185, 0, 186, 0, 187, 188, 189, 190, 191, 192, + 193, 0, 0, 194 }; #define yypact_value_is_default(yystate) \ - ((yystate) == (-509)) + ((yystate) == (-519)) #define yytable_value_is_error(yytable_value) \ YYID (0) static const yytype_int16 yycheck[] = { - 2, 66, 2, 2, 2, 301, 33, 271, 2, 318, - 264, 263, 316, 267, 46, 269, 67, 38, 272, 66, - 241, 289, 46, 277, 237, 238, 107, 37, 3, 4, - 63, 64, 65, 495, 542, 86, 69, 15, 57, 98, - 50, 254, 548, 2, 494, 179, 46, 553, 46, 70, - 64, 65, 46, 131, 153, 69, 153, 135, 179, 91, - 2, 153, 179, 38, 200, 179, 202, 126, 43, 321, - 204, 32, 200, 34, 3, 4, 3, 4, 206, 98, - 201, 13, 14, 15, 162, 0, 179, 204, 202, 551, - 3, 4, 179, 3, 4, 70, 3, 4, 203, 43, - 550, 607, 123, 202, 46, 318, 205, 95, 205, 38, - 15, 204, 408, 205, 43, 312, 200, 204, 8, 200, - 203, 629, 206, 419, 68, 38, 588, 15, 149, 200, - 200, 38, 205, 583, 29, 206, 404, 205, 335, 336, - 35, 70, 202, 200, 202, 205, 203, 212, 123, 93, - 202, 8, 614, 205, 11, 181, 260, 70, 608, 263, - 202, 200, 202, 70, 203, 212, 270, 25, 189, 273, - 28, 202, 237, 238, 149, 279, 280, 200, 8, 200, - 203, 435, 203, 174, 175, 176, 177, 178, 205, 254, - 237, 238, 136, 202, 123, 219, 206, 199, 200, 199, - 200, 199, 200, 250, 148, 199, 200, 254, 3, 4, - 123, 258, 245, 202, 189, 202, 123, 321, 322, 202, - 149, 199, 200, 202, 478, 200, 439, 278, 203, 533, - 281, 245, 283, 284, 455, 202, 149, 288, 534, 271, - 199, 200, 149, 204, 205, 205, 350, 351, 352, 353, - 354, 355, 356, 318, 508, 187, 188, 189, 190, 191, - 189, 3, 4, 3, 4, 3, 4, 199, 200, 271, - 205, 318, 202, 582, 203, 539, 189, 3, 4, 203, - 501, 203, 189, 310, 189, 190, 191, 200, 3, 4, - 203, 323, 3, 4, 199, 200, 203, 593, 607, 187, - 188, 189, 190, 191, 203, 332, 3, 4, 3, 4, - 619, 199, 200, 526, 493, 317, 203, 317, 497, 317, - 203, 323, 426, 317, 356, 634, 203, 548, 3, 4, - 626, 203, 553, 203, 336, 556, 203, 203, 203, 203, - 203, 203, 374, 203, 203, 3, 207, 203, 203, 203, - 203, 203, 456, 457, 203, 459, 460, 461, 462, 463, + 2, 46, 66, 2, 66, 2, 263, 2, 2, 264, + 301, 241, 267, 271, 269, 318, 316, 272, 237, 238, + 37, 289, 277, 46, 33, 543, 107, 43, 494, 15, + 2, 495, 153, 50, 67, 254, 179, 63, 64, 65, + 64, 65, 153, 69, 153, 69, 91, 46, 2, 46, + 179, 46, 68, 86, 57, 549, 0, 32, 131, 34, + 554, 204, 135, 203, 321, 200, 200, 200, 200, 98, + 203, 206, 206, 179, 206, 204, 3, 93, 5, 6, + 7, 8, 9, 10, 205, 551, 3, 4, 552, 162, + 179, 202, 46, 179, 205, 98, 205, 126, 204, 318, + 312, 202, 95, 204, 3, 179, 5, 6, 7, 8, + 9, 10, 630, 8, 608, 204, 202, 408, 584, 200, + 136, 38, 200, 335, 336, 589, 43, 201, 419, 29, + 202, 202, 148, 205, 205, 35, 404, 174, 175, 176, + 177, 178, 69, 609, 8, 203, 260, 11, 212, 263, + 212, 615, 200, 70, 200, 203, 270, 203, 25, 273, + 200, 28, 202, 3, 4, 279, 280, 3, 4, 205, + 69, 3, 4, 237, 238, 237, 238, 3, 4, 8, + 435, 3, 4, 3, 4, 205, 250, 202, 115, 206, + 254, 202, 254, 181, 258, 202, 219, 199, 200, 205, + 199, 200, 199, 200, 199, 200, 123, 321, 322, 205, + 13, 14, 15, 199, 200, 202, 115, 202, 145, 245, + 439, 245, 202, 478, 202, 455, 271, 199, 200, 204, + 205, 158, 149, 202, 534, 202, 350, 351, 352, 353, + 354, 355, 356, 202, 535, 278, 145, 202, 281, 205, + 283, 284, 203, 508, 318, 288, 318, 184, 203, 158, + 187, 188, 189, 3, 4, 192, 193, 3, 4, 271, + 203, 501, 189, 203, 201, 203, 203, 203, 323, 203, + 583, 203, 540, 200, 203, 184, 203, 203, 187, 188, + 189, 3, 4, 192, 193, 15, 38, 203, 38, 15, + 203, 310, 201, 594, 203, 608, 203, 526, 3, 4, + 493, 356, 426, 203, 497, 317, 203, 620, 317, 549, + 317, 323, 317, 332, 554, 3, 4, 557, 70, 374, + 70, 203, 635, 203, 336, 203, 627, 3, 4, 3, + 4, 203, 456, 457, 203, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 203, 477, 439, 627, 203, 203, 203, 38, - 203, 413, 203, 203, 43, 203, 607, 434, 203, 421, - 455, 203, 439, 202, 205, 649, 202, 202, 205, 503, - 204, 39, 204, 582, 203, 437, 585, 8, 8, 8, - 409, 70, 8, 415, 8, 447, 418, 8, 418, 8, - 418, 421, 8, 421, 418, 5, 8, 421, 200, 203, - 495, 610, 202, 181, 205, 202, 205, 437, 204, 207, - 619, 206, 179, 179, 82, 204, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 634, 203, 95, 96, 97, - 204, 526, 179, 495, 123, 204, 104, 8, 89, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 199, 526, - 204, 204, 204, 548, 204, 204, 551, 181, 553, 179, - 149, 204, 204, 495, 204, 204, 204, 529, 545, 4, - 204, 204, 204, 202, 142, 206, 204, 539, 146, 613, - 202, 204, 616, 202, 3, 3, 8, 204, 5, 551, - 202, 202, 205, 627, 204, 204, 31, 204, 33, 181, - 189, 204, 204, 204, 39, 40, 204, 539, 43, 204, - 204, 200, 607, 48, 203, 181, 181, 202, 44, 551, - 2, 503, 57, 434, 59, 655, 588, 2, 2, 2, - 65, 66, 46, 68, 212, 279, 417, 72, 415, 275, - 75, -1, -1, 629, -1, -1, -1, 82, -1, -1, - -1, -1, 614, -1, 89, 90, 588, -1, 93, -1, - 95, 96, 97, 98, 596, -1, 596, -1, 596, 104, - 4, -1, 596, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 614, 180, -1, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, -1, -1, 31, -1, 33, - -1, 136, 199, 200, 201, 39, 141, 142, 143, 43, - -1, 146, -1, 148, 48, -1, -1, 152, -1, -1, - -1, -1, -1, -1, 159, 59, 161, -1, 163, -1, - -1, 65, 66, -1, 68, -1, 171, 172, 72, -1, - -1, 75, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, 89, -1, -1, -1, 93, - -1, 95, 96, 97, -1, 200, -1, -1, -1, -1, - 104, 206, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 136, -1, -1, -1, -1, 141, 142, 143, - -1, 31, 146, 33, 148, 13, 14, 15, 152, 39, - 18, 19, -1, 43, -1, 159, -1, 161, 48, 163, - -1, -1, -1, -1, -1, -1, -1, 171, 172, 59, - -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, - -1, -1, 72, -1, -1, 75, -1, -1, -1, -1, - -1, -1, 82, -1, -1, -1, 200, -1, -1, 89, - -1, -1, 206, 93, -1, 95, 96, 97, -1, -1, - -1, -1, -1, -1, 104, 4, -1, -1, -1, -1, - -1, -1, -1, -1, 3, -1, 5, 6, 7, 8, - 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 31, -1, 33, -1, 136, -1, -1, -1, - 39, 141, 142, 143, 43, -1, 146, -1, 148, 48, - -1, -1, 152, -1, -1, -1, -1, -1, -1, 159, - 59, 161, -1, 163, -1, -1, 65, 66, -1, 68, - -1, 171, 172, 72, -1, -1, 75, -1, -1, -1, - 69, -1, -1, 82, -1, -1, -1, -1, -1, -1, - 89, -1, -1, -1, 93, -1, 95, 96, 97, -1, - 200, -1, -1, -1, -1, 104, 206, 185, 186, 187, - 188, 189, 190, 191, -1, -1, -1, -1, -1, 4, - -1, 199, 200, -1, -1, -1, 115, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, - -1, -1, 141, 142, 143, -1, 31, 146, 33, 148, - -1, -1, -1, 152, 39, -1, 145, -1, 43, -1, - 159, -1, 161, -1, 163, -1, -1, -1, -1, 158, - -1, -1, 171, 172, 59, -1, -1, -1, -1, -1, - 65, 66, -1, 68, -1, -1, -1, 72, -1, -1, - 75, -1, -1, -1, -1, 184, -1, 82, 187, 188, - 189, 200, -1, 192, 193, -1, -1, 206, 93, -1, - 95, 96, 97, -1, 203, -1, -1, -1, -1, 104, - -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 474, 475, 203, 477, 203, 203, 203, 3, 413, 203, + 434, 628, 203, 203, 202, 439, 421, 439, 608, 203, + 203, 123, 203, 123, 187, 188, 189, 190, 191, 503, + 3, 4, 437, 455, 203, 650, 199, 200, 203, 205, + 583, 202, 447, 586, 202, 205, 203, 149, 207, 149, + 204, 204, 8, 415, 413, 409, 418, 8, 8, 418, + 8, 418, 421, 418, 421, 38, 421, 8, 611, 8, + 43, 8, 8, 495, 5, 8, 200, 620, 203, 3, + 437, 5, 6, 7, 8, 9, 10, 189, 202, 189, + 495, 181, 635, 205, 202, 205, 179, 70, 200, 204, + 200, 203, 526, 203, 526, 39, 207, 187, 188, 189, + 190, 191, 206, 189, 190, 191, 179, 204, 204, 199, + 200, 203, 546, 199, 200, 530, 204, 549, 199, 204, + 552, 204, 554, 495, 204, 540, 3, 4, 204, 204, + 614, 202, 204, 617, 204, 69, 204, 552, 82, 179, + 123, 204, 204, 204, 628, 204, 204, 204, 4, 204, + 204, 95, 96, 97, 204, 204, 181, 204, 204, 204, + 104, 38, 204, 8, 89, 206, 149, 204, 540, 179, + 202, 204, 202, 3, 589, 31, 608, 33, 3, 8, + 552, 115, 5, 39, 40, 204, 38, 43, 202, 202, + 181, 43, 48, 70, 205, 204, 204, 204, 142, 204, + 615, 57, 146, 59, 204, 204, 189, 204, 204, 65, + 66, 145, 68, 181, 204, 202, 72, 589, 70, 75, + 203, 2, 181, 44, 158, 597, 82, 279, 597, 417, + 597, 434, 597, 89, 90, 503, 656, 93, 415, 95, + 96, 97, 98, 615, 2, 46, 123, 630, 104, 4, + 184, 2, 2, 187, 188, 189, 212, 275, 192, 193, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 203, + -1, 123, 149, -1, -1, -1, 31, -1, 33, -1, + 136, -1, -1, -1, 39, 141, 142, 143, 43, -1, + 146, -1, 148, 48, -1, -1, 152, 149, -1, -1, + -1, -1, -1, 159, 59, 161, -1, 163, -1, -1, + 65, 66, 189, 68, -1, 171, 172, 72, -1, -1, + 75, -1, -1, -1, -1, -1, 203, 82, -1, -1, + -1, -1, -1, -1, 89, -1, -1, 189, 93, -1, + 95, 96, 97, -1, 200, -1, -1, -1, 200, 104, + 206, 203, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, 143, -1, - 31, 146, 33, 148, -1, -1, -1, 152, 39, -1, - -1, -1, 43, -1, -1, -1, 161, -1, 163, 13, - 14, 15, 16, 17, 18, 19, 171, 172, 59, -1, - -1, -1, -1, -1, 65, 66, -1, 68, 69, -1, - -1, 72, -1, 3, 75, 5, 6, 7, 8, 9, - 10, 82, -1, -1, -1, 200, -1, -1, -1, -1, + 31, 146, 33, 148, 13, 14, 15, 152, 39, 18, + 19, -1, 43, -1, 159, -1, 161, 48, 163, -1, + -1, -1, -1, -1, -1, -1, 171, 172, 59, -1, + -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, + -1, 72, -1, -1, 75, -1, -1, -1, -1, -1, + -1, 82, -1, -1, -1, 200, -1, -1, 89, -1, -1, 206, 93, -1, 95, 96, 97, -1, -1, -1, - -1, -1, -1, 104, -1, -1, 3, -1, 5, 6, - 7, 8, 9, 10, 115, -1, -1, -1, -1, -1, + -1, -1, -1, 104, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 136, -1, -1, -1, 69, - 141, 142, 143, -1, 145, 146, -1, 148, -1, -1, - -1, 152, -1, -1, -1, -1, -1, 158, -1, -1, - 161, -1, 163, 185, 186, 187, 188, 189, 190, 191, - 171, 172, 69, -1, -1, -1, -1, 199, 200, -1, - -1, -1, -1, 184, -1, 115, 187, 188, 189, -1, - -1, 192, 193, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 203, -1, 13, 14, 15, 16, 17, 18, - 19, 20, 21, -1, -1, 145, -1, -1, 115, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 158, -1, - -1, -1, -1, -1, -1, 199, 200, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, - -1, -1, -1, -1, 184, -1, -1, 187, 188, 189, - -1, 158, 192, 193, -1, -1, -1, -1, -1, -1, - -1, 201, 4, 203, -1, -1, -1, -1, -1, -1, - 12, -1, -1, -1, -1, -1, -1, 184, -1, -1, - 187, 188, 189, -1, -1, 192, 193, -1, -1, 31, - -1, 33, -1, -1, 201, -1, 203, 39, 40, -1, - -1, 43, -1, -1, -1, -1, 48, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 31, -1, 33, -1, 136, -1, -1, -1, 39, + 141, 142, 143, 43, -1, 146, -1, 148, 48, -1, + -1, 152, -1, -1, -1, -1, -1, -1, 159, 59, + 161, -1, 163, -1, -1, 65, 66, -1, 68, -1, + 171, 172, 72, -1, -1, 75, -1, -1, -1, -1, + -1, -1, 82, -1, -1, -1, -1, -1, -1, 89, + -1, -1, -1, 93, -1, 95, 96, 97, -1, 200, + -1, -1, -1, -1, 104, 206, 185, 186, 187, 188, + 189, 190, 191, -1, -1, -1, -1, -1, 4, -1, + 199, 200, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, + -1, 141, 142, 143, -1, 31, 146, 33, 148, -1, + -1, -1, 152, 39, -1, -1, -1, 43, -1, 159, + -1, 161, -1, 163, 13, 14, 15, 16, 17, 18, + 19, 171, 172, 59, -1, -1, -1, -1, -1, 65, + 66, -1, 68, -1, -1, -1, 72, -1, -1, 75, + -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, + 200, -1, -1, -1, -1, -1, 206, 93, -1, 95, + 96, 97, -1, -1, -1, -1, -1, -1, 104, -1, + 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 136, -1, -1, -1, -1, 141, 142, 143, -1, 31, + 146, 33, 148, -1, -1, -1, 152, 39, -1, -1, + -1, 43, -1, -1, -1, 161, -1, 163, -1, -1, + -1, -1, -1, -1, -1, 171, 172, 59, -1, -1, + -1, -1, -1, 65, 66, -1, 68, 69, -1, -1, + 72, -1, -1, 75, -1, -1, -1, -1, -1, -1, + 82, -1, -1, -1, 200, -1, -1, -1, -1, -1, + 206, 93, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, 104, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 115, -1, -1, -1, -1, -1, -1, + 199, 200, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, + 142, 143, -1, 145, 146, 4, 148, -1, -1, -1, + 152, -1, -1, 12, -1, -1, 158, -1, -1, 161, + -1, 163, 185, 186, 187, 188, 189, 190, 191, 171, + 172, -1, 31, -1, 33, -1, 199, 200, -1, -1, + 39, 40, 184, -1, 43, 187, 188, 189, -1, 48, + 192, 193, -1, -1, -1, -1, -1, -1, 57, -1, + 59, 203, -1, -1, -1, -1, 65, 66, -1, 68, + -1, -1, -1, 72, -1, -1, 75, -1, -1, -1, + -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, + 89, 90, -1, -1, 93, -1, 95, 96, 97, 98, + -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4, -1, -1, -1, -1, 136, -1, -1, + -1, -1, 141, 142, 143, -1, -1, 146, -1, 148, + -1, -1, -1, 152, -1, -1, -1, -1, -1, 31, + 159, 33, 161, -1, 163, -1, -1, 39, 40, -1, + -1, 43, 171, 172, -1, -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, 59, -1, -1, -1, -1, -1, 65, 66, -1, 68, -1, -1, -1, - 72, -1, -1, 75, -1, -1, -1, -1, -1, -1, - 82, -1, -1, -1, -1, -1, -1, 89, 90, -1, + 72, 200, -1, 75, -1, -1, -1, -1, -1, -1, + 82, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, 93, -1, 95, 96, 97, 98, -1, -1, -1, - -1, 180, 104, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, -1, -1, -1, -1, -1, -1, -1, - 199, 200, -1, -1, -1, 204, -1, -1, -1, 4, + -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, 143, -1, -1, 146, -1, 148, -1, -1, -1, 152, -1, -1, -1, -1, -1, 31, 159, 33, 161, - -1, 163, -1, -1, 39, 40, -1, -1, 43, 171, - 172, -1, -1, 48, -1, -1, -1, -1, -1, -1, - -1, -1, 57, -1, 59, -1, -1, -1, -1, -1, - 65, 66, -1, 68, -1, -1, -1, 72, 200, -1, + -1, 163, -1, 38, 39, -1, -1, -1, 43, 171, + 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 65, 66, -1, 68, -1, 70, -1, 72, 200, -1, 75, -1, -1, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, -1, 89, -1, -1, -1, 93, -1, - 95, 96, 97, 98, -1, -1, -1, -1, -1, 104, + -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, 143, -1, - -1, 146, -1, 148, -1, -1, -1, 152, -1, -1, - -1, -1, -1, 31, 159, 33, 161, -1, 163, -1, - 38, 39, -1, -1, -1, 43, 171, 172, -1, -1, + -1, 146, -1, 148, 149, -1, -1, 152, -1, -1, + -1, -1, 31, -1, 33, -1, 161, -1, 163, 38, + 39, -1, -1, -1, 43, -1, 171, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, 66, -1, - 68, -1, 70, -1, 72, 200, -1, 75, -1, -1, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, -1, 95, 96, 97, - -1, -1, -1, -1, -1, -1, 104, -1, -1, -1, + 59, -1, -1, -1, 189, -1, 65, 66, -1, 68, + -1, 70, -1, 72, -1, 200, 75, 4, -1, -1, + -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 22, 95, 96, 97, -1, + -1, -1, -1, -1, 31, 104, 33, -1, -1, -1, + -1, -1, 39, -1, -1, -1, 43, -1, -1, -1, + -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, 136, 65, 66, + -1, 68, 141, 142, 143, 72, -1, 146, 75, 148, + 149, -1, -1, 152, -1, 82, -1, -1, -1, -1, + -1, -1, 161, -1, 163, -1, 93, -1, 95, 96, + 97, 4, 171, 172, -1, -1, -1, 104, 13, 14, + 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, + 189, -1, -1, -1, -1, -1, -1, -1, 31, -1, + 33, 200, -1, -1, -1, -1, 39, -1, -1, 136, + 43, -1, -1, -1, 141, 142, 143, -1, -1, 146, + -1, 148, -1, -1, -1, 152, 59, -1, -1, -1, + -1, -1, 65, 66, 161, 68, 163, -1, -1, 72, + -1, -1, 75, -1, 171, 172, -1, -1, -1, 82, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + 93, -1, 95, 96, 97, -1, -1, -1, -1, -1, + -1, 104, -1, 200, -1, 13, 14, 15, 16, 17, + 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, - -1, -1, 4, -1, -1, -1, -1, -1, 136, -1, - -1, -1, -1, 141, 142, 143, -1, -1, 146, -1, - 148, 149, -1, -1, 152, -1, -1, -1, -1, 31, - -1, 33, -1, 161, -1, 163, 38, 39, -1, -1, - -1, 43, -1, 171, 172, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, 189, -1, 65, 66, -1, 68, -1, 70, -1, - 72, -1, 200, 75, 4, -1, -1, -1, -1, -1, - 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 93, 22, 95, 96, 97, -1, -1, -1, -1, - -1, 31, 104, 33, -1, -1, -1, -1, -1, 39, - -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, - -1, 123, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, 136, 65, 66, -1, 68, 141, - 142, 143, 72, -1, 146, 75, 148, 149, -1, -1, - 152, -1, 82, -1, -1, -1, -1, -1, -1, 161, - -1, 163, -1, 93, -1, 95, 96, 97, 4, 171, - 172, -1, -1, -1, 104, 13, 14, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, 189, -1, -1, - -1, -1, -1, -1, -1, 31, -1, 33, 200, -1, - -1, -1, -1, 39, -1, -1, 136, 43, -1, -1, - -1, 141, 142, 143, -1, -1, 146, -1, 148, -1, - -1, -1, 152, 59, -1, -1, -1, -1, -1, 65, - 66, 161, 68, 163, -1, -1, 72, -1, -1, 75, - -1, 171, 172, -1, -1, -1, 82, 13, 14, 15, - 16, 17, 18, 19, 20, 21, -1, 93, -1, 95, - 96, 97, -1, -1, -1, -1, -1, -1, 104, -1, - 200, -1, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, 136, -1, -1, -1, -1, 141, 142, + 143, -1, -1, 146, -1, 148, -1, -1, -1, 152, + -1, -1, -1, -1, -1, -1, -1, -1, 161, -1, + 163, -1, -1, -1, -1, -1, -1, -1, 171, 172, + -1, -1, -1, -1, -1, 180, -1, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, -1, -1, -1, + -1, -1, -1, -1, 199, 200, -1, 200, -1, 204, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 13, 14, 15, 16, 17, 18, 19, - 136, 21, -1, -1, -1, 141, 142, 143, -1, -1, - 146, -1, 148, -1, -1, -1, 152, 13, 14, 15, - 16, 17, 18, 19, -1, 161, -1, 163, -1, -1, - -1, -1, -1, -1, -1, 171, 172, -1, -1, -1, - -1, -1, 180, -1, 182, 183, 184, 185, 186, 187, + 13, 14, 15, 16, 17, 18, 19, 180, -1, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 13, + 14, 15, 16, 17, 18, 19, 199, 200, -1, -1, + -1, 204, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, -1, -1, - -1, 199, 200, -1, 200, -1, 204, 13, 14, 15, + -1, 199, 200, -1, -1, -1, 204, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, -1, 13, 14, 15, 16, 17, - 18, 19, -1, -1, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, - -1, -1, -1, 199, 200, -1, -1, -1, 204, 180, + -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, + 16, 17, 18, 19, -1, 21, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 180, -1, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, -1, + -1, -1, -1, -1, -1, -1, 199, 200, 201, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, -1, -1, -1, 199, 200, - 201, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, -1, -1, -1, -1, -1, -1, -1, 199, - 200, -1, -1, -1, -1, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, - -1, -1, -1, 199, 200, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 201, 184, 185, 186, 187, 188, 189, 190, 191, -1, + -1, -1, -1, -1, -1, -1, 199, 200, -1, 183, + 184, 185, 186, 187, 188, 189, 190, 191, -1, -1, + -1, -1, -1, -1, -1, 199, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, -1, -1, -1, 199, 200, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 4, -1, -1, - -1, -1, -1, -1, 199, 200, 184, 185, 186, 187, - 188, 189, 190, 191, -1, -1, -1, -1, -1, -1, - -1, 199, 200, -1, 31, -1, 33, -1, -1, -1, - -1, -1, 39, 40, -1, -1, 43, -1, -1, -1, + 185, 186, 187, 188, 189, 190, 191, -1, 4, -1, + -1, -1, -1, -1, 199, 200, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, + -1, -1, -1, 199, 200, 31, -1, 33, -1, -1, + -1, -1, -1, 39, 40, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 57, -1, 59, -1, -1, -1, -1, -1, 65, 66, - -1, 68, -1, -1, -1, 72, -1, -1, 75, 4, - -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, -1, 95, 96, - 97, 98, -1, -1, 101, -1, 31, 104, 33, -1, - -1, 108, -1, -1, 39, -1, -1, -1, 43, -1, + -1, 57, -1, 59, -1, -1, -1, -1, -1, 65, + 66, -1, 68, -1, -1, -1, 72, -1, -1, 75, + 4, -1, -1, -1, -1, -1, 82, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, -1, 95, + 96, 97, 98, -1, -1, 101, -1, 31, 104, 33, + -1, -1, 108, -1, -1, 39, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, 136, - 65, 66, -1, 68, 141, 142, 143, 72, -1, 146, - 75, 148, -1, -1, -1, 152, -1, 82, -1, -1, - -1, -1, -1, -1, 161, -1, 163, -1, 93, -1, - 95, 96, 97, 4, 171, 172, -1, -1, -1, 104, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + 136, 65, 66, -1, 68, 141, 142, 143, 72, -1, + 146, 75, 148, -1, -1, -1, 152, -1, 82, -1, + -1, -1, -1, -1, -1, 161, -1, 163, -1, 93, + -1, 95, 96, 97, 4, 171, 172, -1, -1, -1, + 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 31, -1, 33, -1, -1, -1, -1, -1, 39, -1, - -1, 136, -1, -1, -1, -1, 141, 142, 143, -1, - -1, 146, -1, 148, -1, -1, -1, 152, 59, -1, - -1, -1, -1, -1, 65, 66, 161, -1, 163, -1, - -1, 72, -1, -1, 75, -1, 171, 172, -1, -1, - -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 95, 96, 97, -1, -1, -1, - -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, + -1, 31, -1, 33, -1, -1, -1, -1, -1, 39, + -1, -1, 136, -1, -1, -1, -1, 141, 142, 143, + -1, -1, 146, -1, 148, -1, -1, -1, 152, 59, + -1, -1, -1, -1, -1, 65, 66, 161, -1, 163, + -1, -1, 72, -1, -1, 75, -1, 171, 172, -1, + -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 95, 96, 97, -1, -1, + -1, -1, -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 141, 142, 143, -1, -1, 146, -1, -1, -1, -1, - -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, - 161, -1, 163, -1, -1, -1, -1, -1, -1, -1, - 171, 172, 23, -1, 25, 26, 27, -1, 29, 30, - -1, 32, -1, -1, 35, -1, 37, -1, -1, -1, - 41, 42, -1, 44, 45, 46, 47, -1, 49, 50, - 51, 52, 53, 54, 55, 56, -1, 58, -1, 60, - 61, 62, 63, 64, -1, -1, 67, -1, -1, -1, - 71, -1, 73, 74, -1, 76, 77, 78, 79, 80, - 81, -1, 83, 84, 85, 86, 87, 88, -1, -1, - 91, -1, -1, 94, -1, -1, -1, -1, 99, 100, - -1, 102, 103, -1, 105, 106, -1, -1, 109, 110, - 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, - 121, 122, -1, 124, 125, -1, 127, 128, 129, 130, - 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, - -1, -1, -1, 144, -1, -1, 147, -1, -1, 150, - 151, -1, -1, 154, 155, 156, 157, -1, -1, 160, - -1, 162, -1, 164, 165, 166, 167, 168, 169, 170, - -1, -1, 173 + -1, 141, 142, 143, -1, -1, 146, -1, -1, -1, + -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, + -1, 161, -1, 163, -1, -1, -1, -1, -1, -1, + -1, 171, 172, 23, -1, 25, 26, 27, -1, 29, + 30, -1, 32, -1, -1, 35, -1, 37, -1, -1, + -1, 41, 42, -1, 44, 45, 46, 47, -1, 49, + 50, 51, 52, 53, 54, 55, 56, -1, 58, -1, + 60, 61, 62, 63, 64, -1, -1, 67, -1, -1, + -1, 71, -1, 73, 74, -1, 76, 77, 78, 79, + 80, 81, -1, 83, 84, 85, 86, 87, 88, -1, + -1, 91, -1, -1, 94, -1, -1, -1, -1, 99, + 100, -1, 102, 103, -1, 105, 106, -1, -1, 109, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, -1, 124, 125, -1, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, 137, 138, 139, + 140, -1, -1, -1, 144, -1, -1, 147, -1, -1, + 150, 151, -1, -1, 154, 155, 156, 157, -1, -1, + 160, -1, 162, -1, 164, 165, 166, 167, 168, 169, + 170, -1, -1, 173 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1971,21 +1969,21 @@ static const yytype_uint16 yystos[] = 204, 204, 204, 283, 189, 203, 227, 234, 257, 292, 294, 295, 204, 179, 204, 204, 204, 204, 179, 204, 204, 204, 204, 204, 204, 204, 204, 199, 204, 204, - 204, 232, 8, 213, 275, 181, 283, 202, 206, 229, - 253, 254, 206, 218, 206, 213, 201, 201, 204, 179, - 239, 245, 283, 306, 286, 204, 202, 202, 283, 204, - 189, 203, 227, 234, 288, 290, 291, 243, 243, 3, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 3, 243, 245, - 8, 294, 282, 189, 223, 234, 293, 294, 203, 227, - 242, 245, 5, 204, 286, 202, 212, 213, 22, 226, - 292, 298, 299, 202, 255, 257, 290, 282, 189, 223, - 234, 289, 290, 204, 203, 227, 181, 201, 294, 282, - 204, 294, 204, 223, 204, 213, 206, 181, 297, 179, - 202, 205, 204, 290, 282, 204, 294, 204, 243, 223, - 243, 294, 204, 213, 246, 298, 235, 294, 204, 37, - 50, 206, 236, 245, 181, 181, 202, 251, 252, 251, - 202 + 204, 232, 8, 213, 275, 181, 283, 303, 202, 206, + 229, 253, 254, 206, 218, 206, 213, 201, 201, 204, + 179, 239, 245, 283, 306, 286, 204, 202, 202, 283, + 204, 189, 203, 227, 234, 288, 290, 291, 243, 243, + 3, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 3, 243, + 245, 8, 294, 282, 189, 223, 234, 293, 294, 203, + 227, 242, 245, 5, 204, 286, 202, 212, 213, 22, + 226, 292, 298, 299, 202, 255, 257, 290, 282, 189, + 223, 234, 289, 290, 204, 203, 227, 181, 201, 294, + 282, 204, 294, 204, 223, 204, 213, 206, 181, 297, + 179, 202, 205, 204, 290, 282, 204, 294, 204, 243, + 223, 243, 294, 204, 213, 246, 298, 235, 294, 204, + 37, 50, 206, 236, 245, 181, 181, 202, 251, 252, + 251, 202 }; #define yyerrok (yyerrstatus = 0) @@ -4498,7 +4496,17 @@ yyreduce: case 241: /* Line 1806 of yacc.c */ -#line 745 "parser.y" +#line 743 "parser.y" + { var_t *v = make_var(NULL); + v->type = (yyvsp[(2) - (2)].type); v->attrs = (yyvsp[(1) - (2)].attr_list); + (yyval.var) = v; + } + break; + + case 242: + +/* Line 1806 of yacc.c */ +#line 749 "parser.y" { (yyval.var) = (yyvsp[(1) - (1)].var); if (type_get_type((yyval.var)->type) != TYPE_FUNCTION) error_loc("only methods may be declared inside the methods section of a dispinterface\n"); @@ -4506,203 +4514,203 @@ yyreduce: } break; - case 242: - -/* Line 1806 of yacc.c */ -#line 754 "parser.y" - { (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); - free((yyvsp[(3) - (3)].declarator)); - } - break; - case 243: /* Line 1806 of yacc.c */ -#line 757 "parser.y" - { (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), FALSE); - free((yyvsp[(2) - (2)].declarator)); +#line 758 "parser.y" + { (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); + free((yyvsp[(3) - (3)].declarator)); } break; case 244: /* Line 1806 of yacc.c */ -#line 762 "parser.y" - { (yyval.var) = NULL; } +#line 761 "parser.y" + { (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), FALSE); + free((yyvsp[(2) - (2)].declarator)); + } break; - case 246: + case 245: /* Line 1806 of yacc.c */ #line 766 "parser.y" - { (yyval.str) = NULL; } + { (yyval.var) = NULL; } break; case 247: /* Line 1806 of yacc.c */ -#line 767 "parser.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); } +#line 770 "parser.y" + { (yyval.str) = NULL; } break; case 248: /* Line 1806 of yacc.c */ -#line 768 "parser.y" +#line 771 "parser.y" { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 249: /* Line 1806 of yacc.c */ -#line 771 "parser.y" - { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); } +#line 772 "parser.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 250: /* Line 1806 of yacc.c */ -#line 773 "parser.y" +#line 775 "parser.y" { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); } break; case 251: /* Line 1806 of yacc.c */ -#line 776 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } +#line 777 "parser.y" + { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); } break; case 252: /* Line 1806 of yacc.c */ -#line 777 "parser.y" +#line 780 "parser.y" { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; - case 254: + case 253: /* Line 1806 of yacc.c */ -#line 779 "parser.y" - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); } +#line 781 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 255: /* Line 1806 of yacc.c */ -#line 780 "parser.y" - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); } +#line 783 "parser.y" + { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); } break; case 256: /* Line 1806 of yacc.c */ -#line 781 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); } +#line 784 "parser.y" + { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); } break; case 257: /* Line 1806 of yacc.c */ -#line 782 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } +#line 785 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); } break; case 258: -/* Line 1806 of yacc.c */ -#line 783 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 259: - -/* Line 1806 of yacc.c */ -#line 784 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 260: - -/* Line 1806 of yacc.c */ -#line 785 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } - break; - - case 261: - /* Line 1806 of yacc.c */ #line 786 "parser.y" { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; - case 264: + case 259: /* Line 1806 of yacc.c */ -#line 793 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); } +#line 787 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } + break; + + case 260: + +/* Line 1806 of yacc.c */ +#line 788 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } + break; + + case 261: + +/* Line 1806 of yacc.c */ +#line 789 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } + break; + + case 262: + +/* Line 1806 of yacc.c */ +#line 790 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 265: /* Line 1806 of yacc.c */ -#line 794 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); } +#line 797 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); } break; case 266: /* Line 1806 of yacc.c */ -#line 795 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); } +#line 798 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); } break; case 267: /* Line 1806 of yacc.c */ -#line 796 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); } +#line 799 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); } break; case 268: /* Line 1806 of yacc.c */ -#line 797 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); } +#line 800 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); } break; case 269: /* Line 1806 of yacc.c */ -#line 798 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); } +#line 801 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); } break; case 270: /* Line 1806 of yacc.c */ -#line 799 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); } +#line 802 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); } break; case 271: /* Line 1806 of yacc.c */ -#line 800 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); } +#line 803 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); } break; case 272: /* Line 1806 of yacc.c */ -#line 803 "parser.y" - { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); } +#line 804 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); } break; case 273: /* Line 1806 of yacc.c */ -#line 804 "parser.y" +#line 807 "parser.y" + { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); } + break; + + case 274: + +/* Line 1806 of yacc.c */ +#line 808 "parser.y" { (yyval.type) = find_type((yyvsp[(2) - (2)].str), 0); if (type_get_type_detect_alias((yyval.type)) != TYPE_COCLASS) error_loc("%s was not declared a coclass at %s:%d\n", @@ -4711,62 +4719,62 @@ yyreduce: } break; - case 274: + case 275: /* Line 1806 of yacc.c */ -#line 812 "parser.y" +#line 816 "parser.y" { (yyval.type) = (yyvsp[(2) - (2)].type); check_def((yyval.type)); (yyval.type)->attrs = check_coclass_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); } break; - case 275: - -/* Line 1806 of yacc.c */ -#line 819 "parser.y" - { (yyval.type) = type_coclass_define((yyvsp[(1) - (5)].type), (yyvsp[(3) - (5)].ifref_list)); } - break; - case 276: /* Line 1806 of yacc.c */ -#line 822 "parser.y" - { (yyval.ifref_list) = NULL; } +#line 823 "parser.y" + { (yyval.type) = type_coclass_define((yyvsp[(1) - (5)].type), (yyvsp[(3) - (5)].ifref_list)); } break; case 277: /* Line 1806 of yacc.c */ -#line 823 "parser.y" - { (yyval.ifref_list) = append_ifref( (yyvsp[(1) - (2)].ifref_list), (yyvsp[(2) - (2)].ifref) ); } +#line 826 "parser.y" + { (yyval.ifref_list) = NULL; } break; case 278: /* Line 1806 of yacc.c */ #line 827 "parser.y" - { (yyval.ifref) = make_ifref((yyvsp[(2) - (2)].type)); (yyval.ifref)->attrs = (yyvsp[(1) - (2)].attr_list); } + { (yyval.ifref_list) = append_ifref( (yyvsp[(1) - (2)].ifref_list), (yyvsp[(2) - (2)].ifref) ); } break; case 279: /* Line 1806 of yacc.c */ -#line 830 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } +#line 831 "parser.y" + { (yyval.ifref) = make_ifref((yyvsp[(2) - (2)].type)); (yyval.ifref)->attrs = (yyvsp[(1) - (2)].attr_list); } break; case 280: /* Line 1806 of yacc.c */ -#line 831 "parser.y" +#line 834 "parser.y" { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } break; case 281: /* Line 1806 of yacc.c */ -#line 834 "parser.y" +#line 835 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } + break; + + case 282: + +/* Line 1806 of yacc.c */ +#line 838 "parser.y" { attr_t *attrs; (yyval.type) = (yyvsp[(2) - (2)].type); check_def((yyval.type)); @@ -4776,41 +4784,32 @@ yyreduce: } break; - case 282: - -/* Line 1806 of yacc.c */ -#line 843 "parser.y" - { (yyval.var_list) = NULL; } - break; - case 283: -/* Line 1806 of yacc.c */ -#line 844 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); } - break; - - case 284: - /* Line 1806 of yacc.c */ #line 847 "parser.y" { (yyval.var_list) = NULL; } break; - case 285: + case 284: /* Line 1806 of yacc.c */ #line 848 "parser.y" { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); } break; + case 285: + +/* Line 1806 of yacc.c */ +#line 851 "parser.y" + { (yyval.var_list) = NULL; } + break; + case 286: /* Line 1806 of yacc.c */ -#line 854 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_dispinterface_define((yyval.type), (yyvsp[(3) - (5)].var_list), (yyvsp[(4) - (5)].var_list)); - } +#line 852 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); } break; case 287: @@ -4818,42 +4817,51 @@ yyreduce: /* Line 1806 of yacc.c */ #line 858 "parser.y" { (yyval.type) = (yyvsp[(1) - (5)].type); - type_dispinterface_define_from_iface((yyval.type), (yyvsp[(3) - (5)].type)); + type_dispinterface_define((yyval.type), (yyvsp[(3) - (5)].var_list), (yyvsp[(4) - (5)].var_list)); } break; case 288: /* Line 1806 of yacc.c */ -#line 863 "parser.y" - { (yyval.type) = NULL; } +#line 862 "parser.y" + { (yyval.type) = (yyvsp[(1) - (5)].type); + type_dispinterface_define_from_iface((yyval.type), (yyvsp[(3) - (5)].type)); + } break; case 289: /* Line 1806 of yacc.c */ -#line 864 "parser.y" - { (yyval.type) = find_type_or_error2((yyvsp[(2) - (2)].str), 0); } +#line 867 "parser.y" + { (yyval.type) = NULL; } break; case 290: /* Line 1806 of yacc.c */ -#line 867 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } +#line 868 "parser.y" + { (yyval.type) = find_type_or_error2((yyvsp[(2) - (2)].str), 0); } break; case 291: /* Line 1806 of yacc.c */ -#line 868 "parser.y" +#line 871 "parser.y" { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } break; case 292: /* Line 1806 of yacc.c */ -#line 871 "parser.y" +#line 872 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } + break; + + case 293: + +/* Line 1806 of yacc.c */ +#line 875 "parser.y" { (yyval.ifinfo).interface = (yyvsp[(2) - (2)].type); (yyval.ifinfo).old_pointer_default = pointer_default; if (is_attr((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT)) @@ -4864,23 +4872,13 @@ yyreduce: } break; - case 293: - -/* Line 1806 of yacc.c */ -#line 882 "parser.y" - { (yyval.type) = (yyvsp[(1) - (6)].ifinfo).interface; - type_interface_define((yyval.type), (yyvsp[(2) - (6)].type), (yyvsp[(4) - (6)].stmt_list)); - pointer_default = (yyvsp[(1) - (6)].ifinfo).old_pointer_default; - } - break; - case 294: /* Line 1806 of yacc.c */ -#line 890 "parser.y" - { (yyval.type) = (yyvsp[(1) - (8)].ifinfo).interface; - type_interface_define((yyval.type), find_type_or_error2((yyvsp[(3) - (8)].str), 0), (yyvsp[(6) - (8)].stmt_list)); - pointer_default = (yyvsp[(1) - (8)].ifinfo).old_pointer_default; +#line 886 "parser.y" + { (yyval.type) = (yyvsp[(1) - (6)].ifinfo).interface; + type_interface_define((yyval.type), (yyvsp[(2) - (6)].type), (yyvsp[(4) - (6)].stmt_list)); + pointer_default = (yyvsp[(1) - (6)].ifinfo).old_pointer_default; } break; @@ -4888,7 +4886,10 @@ yyreduce: /* Line 1806 of yacc.c */ #line 894 "parser.y" - { (yyval.type) = (yyvsp[(1) - (2)].type); } + { (yyval.type) = (yyvsp[(1) - (8)].ifinfo).interface; + type_interface_define((yyval.type), find_type_or_error2((yyvsp[(3) - (8)].str), 0), (yyvsp[(6) - (8)].stmt_list)); + pointer_default = (yyvsp[(1) - (8)].ifinfo).old_pointer_default; + } break; case 296: @@ -4901,253 +4902,250 @@ yyreduce: case 297: /* Line 1806 of yacc.c */ -#line 899 "parser.y" +#line 902 "parser.y" { (yyval.type) = (yyvsp[(1) - (2)].type); } break; case 298: /* Line 1806 of yacc.c */ -#line 902 "parser.y" - { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); } +#line 903 "parser.y" + { (yyval.type) = (yyvsp[(1) - (2)].type); } break; case 299: /* Line 1806 of yacc.c */ -#line 903 "parser.y" +#line 906 "parser.y" { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); } break; case 300: /* Line 1806 of yacc.c */ -#line 906 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); - (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); - } +#line 907 "parser.y" + { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); } break; case 301: /* Line 1806 of yacc.c */ -#line 912 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list)); +#line 910 "parser.y" + { (yyval.type) = (yyvsp[(2) - (2)].type); + (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); } break; case 302: /* Line 1806 of yacc.c */ -#line 918 "parser.y" - { (yyval.stgclass) = STG_EXTERN; } +#line 916 "parser.y" + { (yyval.type) = (yyvsp[(1) - (5)].type); + type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list)); + } break; case 303: /* Line 1806 of yacc.c */ -#line 919 "parser.y" - { (yyval.stgclass) = STG_STATIC; } +#line 922 "parser.y" + { (yyval.stgclass) = STG_EXTERN; } break; case 304: /* Line 1806 of yacc.c */ -#line 920 "parser.y" - { (yyval.stgclass) = STG_REGISTER; } +#line 923 "parser.y" + { (yyval.stgclass) = STG_STATIC; } break; case 305: /* Line 1806 of yacc.c */ #line 924 "parser.y" - { (yyval.attr) = make_attr(ATTR_INLINE); } + { (yyval.stgclass) = STG_REGISTER; } break; case 306: /* Line 1806 of yacc.c */ #line 928 "parser.y" - { (yyval.attr) = make_attr(ATTR_CONST); } + { (yyval.attr) = make_attr(ATTR_INLINE); } break; case 307: /* Line 1806 of yacc.c */ -#line 931 "parser.y" - { (yyval.attr_list) = NULL; } +#line 932 "parser.y" + { (yyval.attr) = make_attr(ATTR_CONST); } break; case 308: /* Line 1806 of yacc.c */ -#line 932 "parser.y" - { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); } +#line 935 "parser.y" + { (yyval.attr_list) = NULL; } break; case 309: /* Line 1806 of yacc.c */ -#line 935 "parser.y" - { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); } +#line 936 "parser.y" + { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); } break; case 310: /* Line 1806 of yacc.c */ -#line 937 "parser.y" - { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); } +#line 939 "parser.y" + { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); } break; case 311: /* Line 1806 of yacc.c */ -#line 940 "parser.y" - { (yyval.declspec) = NULL; } +#line 941 "parser.y" + { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); } break; - case 313: + case 312: /* Line 1806 of yacc.c */ -#line 945 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); } +#line 944 "parser.y" + { (yyval.declspec) = NULL; } break; case 314: /* Line 1806 of yacc.c */ -#line 946 "parser.y" +#line 949 "parser.y" { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); } break; case 315: /* Line 1806 of yacc.c */ -#line 947 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); } +#line 950 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); } break; case 316: /* Line 1806 of yacc.c */ -#line 952 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } +#line 951 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); } break; case 317: /* Line 1806 of yacc.c */ -#line 953 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } +#line 956 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } break; - case 319: + case 318: /* Line 1806 of yacc.c */ -#line 959 "parser.y" - { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); } +#line 957 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); + else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } break; case 320: /* Line 1806 of yacc.c */ -#line 960 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } +#line 963 "parser.y" + { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); } break; case 321: /* Line 1806 of yacc.c */ -#line 961 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } +#line 964 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } break; case 322: /* Line 1806 of yacc.c */ -#line 962 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); - (yyval.declarator)->type = NULL; - } +#line 965 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } break; case 323: /* Line 1806 of yacc.c */ -#line 971 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } +#line 966 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); + (yyval.declarator)->type = NULL; + } break; case 324: /* Line 1806 of yacc.c */ -#line 972 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } +#line 975 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } break; - case 326: + case 325: /* Line 1806 of yacc.c */ -#line 980 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } +#line 976 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); + else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } break; case 327: /* Line 1806 of yacc.c */ -#line 981 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } +#line 984 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } break; case 328: /* Line 1806 of yacc.c */ -#line 986 "parser.y" - { (yyval.declarator) = make_declarator(NULL); } +#line 985 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); + else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } break; - case 330: + case 329: /* Line 1806 of yacc.c */ -#line 992 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } +#line 990 "parser.y" + { (yyval.declarator) = make_declarator(NULL); } break; case 331: /* Line 1806 of yacc.c */ -#line 993 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } +#line 996 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } break; case 332: /* Line 1806 of yacc.c */ -#line 994 "parser.y" - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); } +#line 997 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } break; case 333: /* Line 1806 of yacc.c */ -#line 996 "parser.y" - { (yyval.declarator) = make_declarator(NULL); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); - (yyval.declarator)->type = NULL; - } +#line 998 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); } break; case 334: /* Line 1806 of yacc.c */ -#line 1001 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); +#line 1000 "parser.y" + { (yyval.declarator) = make_declarator(NULL); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); (yyval.declarator)->type = NULL; } break; @@ -5155,82 +5153,82 @@ yyreduce: case 335: /* Line 1806 of yacc.c */ -#line 1010 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } +#line 1005 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); + (yyval.declarator)->type = NULL; + } break; case 336: /* Line 1806 of yacc.c */ -#line 1011 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } +#line 1014 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } break; - case 338: + case 337: /* Line 1806 of yacc.c */ -#line 1018 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } +#line 1015 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } break; case 339: /* Line 1806 of yacc.c */ -#line 1019 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } +#line 1022 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } break; case 340: /* Line 1806 of yacc.c */ #line 1023 "parser.y" - { (yyval.declarator) = make_declarator(NULL); } + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } break; - case 342: + case 341: /* Line 1806 of yacc.c */ -#line 1031 "parser.y" - { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); } +#line 1027 "parser.y" + { (yyval.declarator) = make_declarator(NULL); } break; case 343: /* Line 1806 of yacc.c */ -#line 1032 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } +#line 1035 "parser.y" + { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); } break; case 344: /* Line 1806 of yacc.c */ -#line 1033 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } +#line 1036 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } break; case 345: /* Line 1806 of yacc.c */ -#line 1034 "parser.y" - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); } +#line 1037 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } break; case 346: /* Line 1806 of yacc.c */ -#line 1036 "parser.y" - { (yyval.declarator) = make_declarator(NULL); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); - (yyval.declarator)->type = NULL; - } +#line 1038 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); } break; case 347: /* Line 1806 of yacc.c */ -#line 1041 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); +#line 1040 "parser.y" + { (yyval.declarator) = make_declarator(NULL); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); (yyval.declarator)->type = NULL; } break; @@ -5238,243 +5236,253 @@ yyreduce: case 348: /* Line 1806 of yacc.c */ -#line 1048 "parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); } +#line 1045 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); + (yyval.declarator)->type = NULL; + } break; case 349: /* Line 1806 of yacc.c */ -#line 1049 "parser.y" - { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); } +#line 1052 "parser.y" + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); } break; case 350: /* Line 1806 of yacc.c */ -#line 1052 "parser.y" - { (yyval.expr) = NULL; } +#line 1053 "parser.y" + { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); } break; case 351: /* Line 1806 of yacc.c */ -#line 1053 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (2)].expr); } +#line 1056 "parser.y" + { (yyval.expr) = NULL; } break; case 352: /* Line 1806 of yacc.c */ -#line 1056 "parser.y" +#line 1057 "parser.y" + { (yyval.expr) = (yyvsp[(2) - (2)].expr); } + break; + + case 353: + +/* Line 1806 of yacc.c */ +#line 1060 "parser.y" { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->bits = (yyvsp[(2) - (2)].expr); if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) error_loc("unnamed fields are not allowed\n"); } break; - case 353: - -/* Line 1806 of yacc.c */ -#line 1063 "parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); } - break; - case 354: /* Line 1806 of yacc.c */ -#line 1065 "parser.y" - { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); } +#line 1067 "parser.y" + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); } break; case 355: /* Line 1806 of yacc.c */ #line 1069 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); } + { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); } break; case 356: /* Line 1806 of yacc.c */ -#line 1070 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); } +#line 1073 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); } break; case 357: /* Line 1806 of yacc.c */ #line 1074 "parser.y" - { (yyval.num) = THREADING_APARTMENT; } + { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); } break; case 358: /* Line 1806 of yacc.c */ -#line 1075 "parser.y" - { (yyval.num) = THREADING_NEUTRAL; } +#line 1078 "parser.y" + { (yyval.num) = THREADING_APARTMENT; } break; case 359: /* Line 1806 of yacc.c */ -#line 1076 "parser.y" - { (yyval.num) = THREADING_SINGLE; } +#line 1079 "parser.y" + { (yyval.num) = THREADING_NEUTRAL; } break; case 360: /* Line 1806 of yacc.c */ -#line 1077 "parser.y" - { (yyval.num) = THREADING_FREE; } +#line 1080 "parser.y" + { (yyval.num) = THREADING_SINGLE; } break; case 361: /* Line 1806 of yacc.c */ -#line 1078 "parser.y" - { (yyval.num) = THREADING_BOTH; } +#line 1081 "parser.y" + { (yyval.num) = THREADING_FREE; } break; case 362: /* Line 1806 of yacc.c */ #line 1082 "parser.y" - { (yyval.num) = RPC_FC_RP; } + { (yyval.num) = THREADING_BOTH; } break; case 363: /* Line 1806 of yacc.c */ -#line 1083 "parser.y" - { (yyval.num) = RPC_FC_UP; } +#line 1086 "parser.y" + { (yyval.num) = RPC_FC_RP; } break; case 364: /* Line 1806 of yacc.c */ -#line 1084 "parser.y" - { (yyval.num) = RPC_FC_FP; } +#line 1087 "parser.y" + { (yyval.num) = RPC_FC_UP; } break; case 365: /* Line 1806 of yacc.c */ -#line 1087 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } +#line 1088 "parser.y" + { (yyval.num) = RPC_FC_FP; } break; case 366: /* Line 1806 of yacc.c */ -#line 1090 "parser.y" - { (yyval.type) = type_new_void(); } +#line 1091 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } break; case 367: /* Line 1806 of yacc.c */ -#line 1091 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } +#line 1094 "parser.y" + { (yyval.type) = type_new_void(); } break; case 368: /* Line 1806 of yacc.c */ -#line 1092 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); } +#line 1095 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 369: /* Line 1806 of yacc.c */ -#line 1093 "parser.y" +#line 1096 "parser.y" { (yyval.type) = (yyvsp[(1) - (1)].type); } break; case 370: /* Line 1806 of yacc.c */ -#line 1094 "parser.y" - { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); } +#line 1097 "parser.y" + { (yyval.type) = (yyvsp[(1) - (1)].type); } break; case 371: /* Line 1806 of yacc.c */ -#line 1095 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); } +#line 1098 "parser.y" + { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); } break; case 372: /* Line 1806 of yacc.c */ -#line 1096 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); } +#line 1099 "parser.y" + { (yyval.type) = (yyvsp[(1) - (1)].type); } break; case 373: /* Line 1806 of yacc.c */ -#line 1097 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); } +#line 1100 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); } break; case 374: /* Line 1806 of yacc.c */ -#line 1098 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); } +#line 1101 "parser.y" + { (yyval.type) = (yyvsp[(1) - (1)].type); } break; case 375: /* Line 1806 of yacc.c */ -#line 1099 "parser.y" - { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); } +#line 1102 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); } break; case 376: /* Line 1806 of yacc.c */ #line 1103 "parser.y" - { reg_typedefs((yyvsp[(3) - (4)].declspec), (yyvsp[(4) - (4)].declarator_list), check_typedef_attrs((yyvsp[(2) - (4)].attr_list))); - (yyval.statement) = make_statement_typedef((yyvsp[(4) - (4)].declarator_list)); - } + { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); } break; case 377: /* Line 1806 of yacc.c */ -#line 1109 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } +#line 1107 "parser.y" + { reg_typedefs((yyvsp[(3) - (4)].declspec), (yyvsp[(4) - (4)].declarator_list), check_typedef_attrs((yyvsp[(2) - (4)].attr_list))); + (yyval.statement) = make_statement_typedef((yyvsp[(4) - (4)].declarator_list)); + } break; case 378: /* Line 1806 of yacc.c */ -#line 1112 "parser.y" - { (yyval.type) = type_new_encapsulated_union((yyvsp[(2) - (10)].str), (yyvsp[(5) - (10)].var), (yyvsp[(7) - (10)].var), (yyvsp[(9) - (10)].var_list)); } +#line 1113 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } break; case 379: /* Line 1806 of yacc.c */ #line 1116 "parser.y" - { (yyval.num) = MAKEVERSION((yyvsp[(1) - (1)].num), 0); } + { (yyval.type) = type_new_encapsulated_union((yyvsp[(2) - (10)].str), (yyvsp[(5) - (10)].var), (yyvsp[(7) - (10)].var), (yyvsp[(9) - (10)].var_list)); } break; case 380: /* Line 1806 of yacc.c */ -#line 1117 "parser.y" +#line 1120 "parser.y" + { (yyval.num) = MAKEVERSION((yyvsp[(1) - (1)].num), 0); } + break; + + case 381: + +/* Line 1806 of yacc.c */ +#line 1121 "parser.y" { (yyval.num) = MAKEVERSION((yyvsp[(1) - (3)].num), (yyvsp[(3) - (3)].num)); } break; /* Line 1806 of yacc.c */ -#line 5478 "parser.tab.c" +#line 5486 "parser.tab.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5705,7 +5713,7 @@ yyreturn: /* Line 2067 of yacc.c */ -#line 1120 "parser.y" +#line 1124 "parser.y" static void decl_builtin_basic(const char *name, enum type_basic_type type) diff --git a/reactos/tools/widl/parser.y b/reactos/tools/widl/parser.y index 03543838275..20a74c36e9e 100644 --- a/reactos/tools/widl/parser.y +++ b/reactos/tools/widl/parser.y @@ -740,6 +740,10 @@ s_field: m_attributes decl_spec declarator { $$ = declare_var(check_field_attrs $2, $3, FALSE); free($3); } + | m_attributes structdef { var_t *v = make_var(NULL); + v->type = $2; v->attrs = $1; + $$ = v; + } ; funcdef: declaration { $$ = $1; diff --git a/reactos/tools/widl/widl.c b/reactos/tools/widl/widl.c index 88d2d78b940..fc3d0d97862 100644 --- a/reactos/tools/widl/widl.c +++ b/reactos/tools/widl/widl.c @@ -56,6 +56,7 @@ static const char usage[] = " -d n Set debug level to 'n'\n" " -D id[=val] Define preprocessor identifier id=val\n" " -E Preprocess only\n" +" --help Display this help and exit\n" " -h Generate headers\n" " -H file Name of header file (default is infile.h)\n" " -I path Set include search dir to path (multiple -I allowed)\n" @@ -128,7 +129,6 @@ char *server_token; char *regscript_name; char *regscript_token; static char *idfile_name; -static char *idfile_token; char *temp_name; const char *prefix_client = ""; const char *prefix_server = ""; @@ -150,6 +150,7 @@ enum { PREFIX_ALL_OPTION, PREFIX_CLIENT_OPTION, PREFIX_SERVER_OPTION, + PRINT_HELP, WIN32_OPTION, WIN64_OPTION, WIN32_ALIGN_OPTION, @@ -161,6 +162,7 @@ static const char short_options[] = static const struct option long_options[] = { { "dlldata", 1, NULL, DLLDATA_OPTION }, { "dlldata-only", 0, NULL, DLLDATA_ONLY_OPTION }, + { "help", 0, NULL, PRINT_HELP }, { "local-stubs", 1, NULL, LOCAL_STUBS_OPTION }, { "oldnames", 0, NULL, OLDNAMES_OPTION }, { "output", 0, NULL, 'o' }, @@ -198,7 +200,7 @@ static char *make_token(const char *name) token = xstrdup(name); for (i=0; token[i]; i++) { if (!isalnum(token[i])) token[i] = '_'; - else token[i] = toupper(token[i]); + else token[i] = tolower(token[i]); } return token; } @@ -465,8 +467,6 @@ void write_id_data(const statement_list_t *stmts) { if (!do_idfile) return; - idfile_token = make_token(idfile_name); - idfile = fopen(idfile_name, "w"); if (! idfile) { error("Could not open %s for output\n", idfile_name); @@ -529,6 +529,9 @@ int main(int argc,char *argv[]) case PREFIX_SERVER_OPTION: prefix_server = xstrdup(optarg); break; + case PRINT_HELP: + fprintf(stderr, "%s", usage); + return 0; case WIN32_OPTION: do_win32 = 1; do_win64 = 0; @@ -640,6 +643,10 @@ int main(int argc,char *argv[]) } } +#ifdef DEFAULT_INCLUDE_DIR + wpp_add_include_path(DEFAULT_INCLUDE_DIR); +#endif + if(do_everything) { set_everything(TRUE); }