Correctly handle NOT operator in window style definitions. Modified: trunk/reactos/tools/wrc/parser.y Modified: trunk/reactos/tools/wrc/y.tab.c Modified: trunk/reactos/tools/wrc/y.tab.h _____
Modified: trunk/reactos/tools/wrc/parser.y --- trunk/reactos/tools/wrc/parser.y 2005-06-04 19:21:15 UTC (rev 15787) +++ trunk/reactos/tools/wrc/parser.y 2005-06-04 19:44:50 UTC (rev 15788) @@ -345,7 +345,7 @@
%type <lan> opt_language %type <chars> opt_characts %type <ver> opt_version -%type <num> expr xpr +%type <num> expr xpr xpr_no_not %type <iptr> e_expr %type <tlbar> toolbar %type <tlbarItems> toolbar_items @@ -1002,8 +1002,8 @@ style : style '|' style { $$ = new_style($1->or_mask | $3->or_mask, $1->and_mask | $3->and_mask); free($1); free($3);} | '(' style ')' { $$ = $2; } - | xpr { $$ = new_style($1, 0); } - | tNOT xpr { $$ = new_style(0, $2); } + | xpr_no_not { $$ = new_style($1, 0); } + | tNOT xpr_no_not { $$ = new_style(0, $2); } ;
ctlclass @@ -1823,18 +1823,22 @@ expr : xpr { $$ = ($1); } ;
-xpr : xpr '+' xpr { $$ = ($1) + ($3); } - | xpr '-' xpr { $$ = ($1) - ($3); } - | xpr '|' xpr { $$ = ($1) | ($3); } - | xpr '&' xpr { $$ = ($1) & ($3); } - | xpr '*' xpr { $$ = ($1) * ($3); } - | xpr '/' xpr { $$ = ($1) / ($3); } - | xpr '^' xpr { $$ = ($1) ^ ($3); } - | '~' xpr { $$ = ~($2); } - | '-' xpr %prec pUPM { $$ = -($2); } - | '+' xpr %prec pUPM { $$ = $2; } - | '(' xpr ')' { $$ = $2; } - | any_num { $$ = $1; } +xpr_no_not : xpr '+' xpr { $$ = ($1) + ($3); } + | xpr '-' xpr { $$ = ($1) - ($3); } + | xpr '|' xpr { $$ = ($1) | ($3); } + | xpr '&' xpr { $$ = ($1) & ($3); } + | xpr '*' xpr { $$ = ($1) * ($3); } + | xpr '/' xpr { $$ = ($1) / ($3); } + | xpr '^' xpr { $$ = ($1) ^ ($3); } + | '~' xpr { $$ = ~($2); } + | '-' xpr %prec pUPM { $$ = -($2); } + | '+' xpr %prec pUPM { $$ = $2; } + | '(' xpr ')' { $$ = $2; } + | any_num { $$ = $1; } + ; + + +xpr : xpr_no_not { $$ = ($1); } | tNOT any_num { $$ = ~($2); } ;
_____
Modified: trunk/reactos/tools/wrc/y.tab.c --- trunk/reactos/tools/wrc/y.tab.c 2005-06-04 19:21:15 UTC (rev 15787) +++ trunk/reactos/tools/wrc/y.tab.c 2005-06-04 19:44:50 UTC (rev 15788) @@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 1.875b. */ +/* A Bison parser, made by GNU Bison 1.875. */
/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -523,7 +523,7 @@ ani_any_t *ani; } YYSTYPE; /* Line 191 of yacc.c. */ -#line 527 "y.tab.c" +#line 526 "y.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -535,7 +535,7 @@
/* Line 214 of yacc.c. */ -#line 539 "y.tab.c" +#line 538 "y.tab.c"
#if ! defined (yyoverflow) || YYERROR_VERBOSE
@@ -634,16 +634,16 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 669 +#define YYLAST 738
/* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 96 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 82 +#define YYNNTS 83 /* YYNRULES -- Number of rules. */ -#define YYNRULES 256 +#define YYNRULES 257 /* YYNRULES -- Number of states. */ -#define YYNSTATES 570 +#define YYNSTATES 571
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -721,7 +721,7 @@ 876, 879, 884, 887, 890, 895, 897, 899, 902, 904, 907, 909, 913, 917, 922, 926, 931, 935, 937, 939, 940, 942, 944, 948, 952, 956, 960, 964, 968, 972, - 975, 978, 981, 985, 987, 990, 992 + 975, 978, 981, 985, 987, 989, 992, 994 };
/* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -821,12 +821,12 @@ 154, 9, -1, 172, 154, 4, -1, 172, 154, 87, 4, -1, 172, 154, 5, -1, 172, 154, 87, 5, -1, 172, 154, 6, -1, 105, -1, 171, -1, -1, - 175, -1, 176, -1, 176, 86, 176, -1, 176, 87, - 176, -1, 176, 83, 176, -1, 176, 85, 176, -1, - 176, 88, 176, -1, 176, 89, 176, -1, 176, 84, - 176, -1, 90, 176, -1, 87, 176, -1, 86, 176, - -1, 94, 176, 95, -1, 177, -1, 91, 177, -1, - 4, -1, 5, -1 + 175, -1, 177, -1, 177, 86, 177, -1, 177, 87, + 177, -1, 177, 83, 177, -1, 177, 85, 177, -1, + 177, 88, 177, -1, 177, 89, 177, -1, 177, 84, + 177, -1, 90, 177, -1, 87, 177, -1, 86, 177, + -1, 94, 177, 95, -1, 178, -1, 176, -1, 91, + 178, -1, 4, -1, 5, -1 };
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -857,7 +857,7 @@ 1747, 1765, 1772, 1776, 1780, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1810, 1811, 1818, 1819, 1823, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, - 1834, 1835, 1836, 1837, 1838, 1841, 1842 + 1834, 1835, 1836, 1837, 1841, 1842, 1845, 1846 }; #endif
@@ -897,7 +897,8 @@ "ver_block", "ver_values", "ver_value", "ver_words", "toolbar", "toolbar_items", "loadmemopts", "lamo", "lama", "opt_lvc", "opt_language", "opt_characts", "opt_version", "raw_data", - "raw_elements", "file_raw", "e_expr", "expr", "xpr", "any_num", 0 + "raw_elements", "file_raw", "e_expr", "expr", "xpr_no_not", "xpr", + "any_num", 0 }; #endif
@@ -947,7 +948,7 @@ 167, 168, 169, 170, 171, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 173, 174, 174, 175, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 177, 177 + 176, 176, 176, 176, 177, 177, 178, 178 };
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -978,7 +979,7 @@ 2, 4, 2, 2, 4, 1, 1, 2, 1, 2, 1, 3, 3, 4, 3, 4, 3, 1, 1, 0, 1, 1, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 3, 1, 2, 1, 1 + 2, 2, 3, 1, 1, 2, 1, 1 };
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -986,302 +987,318 @@ means the default is an error. */ static const unsigned short yydefact[] = { - 3, 0, 2, 1, 5, 255, 256, 11, 207, 9, - 0, 0, 0, 0, 0, 4, 8, 0, 11, 241, - 253, 0, 217, 0, 251, 250, 249, 254, 0, 180, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 7, 17, 18, 24, 22, - 23, 27, 28, 21, 30, 207, 16, 19, 20, 25, - 26, 31, 29, 213, 216, 212, 214, 210, 215, 211, - 208, 209, 179, 0, 252, 0, 6, 244, 248, 245, - 242, 243, 246, 247, 217, 217, 217, 0, 0, 217, - 217, 217, 217, 185, 217, 217, 217, 0, 217, 217, - 0, 0, 0, 218, 219, 220, 0, 178, 182, 0, - 34, 33, 32, 237, 0, 238, 35, 36, 0, 0, - 0, 0, 40, 41, 0, 38, 39, 37, 0, 42, - 43, 222, 223, 0, 10, 183, 0, 47, 0, 0, - 0, 152, 150, 165, 163, 0, 0, 0, 0, 0, - 0, 0, 193, 0, 0, 181, 0, 226, 228, 230, - 225, 0, 182, 0, 0, 0, 0, 0, 0, 189, - 190, 191, 188, 192, 0, 217, 221, 0, 46, 0, - 227, 229, 224, 0, 0, 0, 0, 0, 151, 0, - 0, 164, 0, 0, 0, 184, 194, 0, 0, 0, - 232, 234, 236, 231, 0, 0, 0, 182, 154, 182, - 169, 167, 173, 0, 0, 0, 204, 50, 50, 233, - 235, 0, 0, 0, 0, 0, 239, 166, 239, 0, - 0, 0, 196, 0, 0, 48, 49, 61, 145, 182, - 155, 182, 182, 182, 182, 182, 182, 0, 170, 0, - 174, 168, 0, 0, 0, 206, 0, 203, 56, 55, - 57, 58, 59, 54, 51, 52, 0, 0, 109, 153, - 158, 157, 160, 161, 162, 159, 239, 239, 0, 0, - 0, 195, 198, 197, 205, 0, 0, 0, 0, 0, - 0, 0, 71, 65, 68, 69, 70, 146, 0, 182, - 240, 0, 175, 186, 187, 0, 53, 13, 67, 12, - 0, 15, 14, 66, 64, 0, 0, 63, 104, 62, - 0, 0, 0, 0, 0, 0, 0, 120, 113, 114, - 117, 118, 119, 183, 171, 239, 0, 0, 105, 253, + 3, 0, 2, 1, 5, 256, 257, 11, 207, 9, + 0, 0, 0, 0, 0, 4, 8, 0, 11, 254, + 241, 253, 0, 217, 0, 251, 250, 249, 255, 0, + 180, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 45, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 7, 17, 18, 24, + 22, 23, 27, 28, 21, 30, 207, 16, 19, 20, + 25, 26, 31, 29, 213, 216, 212, 214, 210, 215, + 211, 208, 209, 179, 0, 252, 0, 6, 244, 248, + 245, 242, 243, 246, 247, 217, 217, 217, 0, 0, + 217, 217, 217, 217, 185, 217, 217, 217, 0, 217, + 217, 0, 0, 0, 218, 219, 220, 0, 178, 182, + 0, 34, 33, 32, 237, 0, 238, 35, 36, 0, + 0, 0, 0, 40, 41, 0, 38, 39, 37, 0, + 42, 43, 222, 223, 0, 10, 183, 0, 47, 0, + 0, 0, 152, 150, 165, 163, 0, 0, 0, 0, + 0, 0, 0, 193, 0, 0, 181, 0, 226, 228, + 230, 225, 0, 182, 0, 0, 0, 0, 0, 0, + 189, 190, 191, 188, 192, 0, 217, 221, 0, 46, + 0, 227, 229, 224, 0, 0, 0, 0, 0, 151, + 0, 0, 164, 0, 0, 0, 184, 194, 0, 0, + 0, 232, 234, 236, 231, 0, 0, 0, 182, 154, + 182, 169, 167, 173, 0, 0, 0, 204, 50, 50, + 233, 235, 0, 0, 0, 0, 0, 239, 166, 239, + 0, 0, 0, 196, 0, 0, 48, 49, 61, 145, + 182, 155, 182, 182, 182, 182, 182, 182, 0, 170, + 0, 174, 168, 0, 0, 0, 206, 0, 203, 56, + 55, 57, 58, 59, 54, 51, 52, 0, 0, 109, + 153, 158, 157, 160, 161, 162, 159, 239, 239, 0, + 0, 0, 195, 198, 197, 205, 0, 0, 0, 0, + 0, 0, 0, 71, 65, 68, 69, 70, 146, 0, + 182, 240, 0, 175, 186, 187, 0, 53, 13, 67, + 12, 0, 15, 14, 66, 64, 0, 0, 63, 104, + 0, 62, 0, 0, 0, 0, 0, 0, 0, 120, + 113, 114, 117, 118, 119, 183, 171, 239, 0, 0, + 105, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 60, 116, 0, 115, 112, 111, 110, 0, + 172, 0, 176, 199, 200, 201, 98, 103, 102, 182, + 182, 82, 84, 85, 77, 78, 80, 81, 83, 79, + 75, 0, 74, 76, 182, 72, 73, 88, 87, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 60, 116, 0, 115, 112, 111, 110, 0, 172, - 0, 176, 199, 200, 201, 98, 103, 102, 182, 182, - 82, 84, 85, 77, 78, 80, 81, 83, 79, 75, - 0, 74, 76, 182, 72, 73, 88, 87, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, + 0, 0, 0, 0, 0, 0, 98, 182, 182, 131, + 133, 134, 126, 127, 129, 130, 132, 128, 124, 0, + 123, 125, 182, 121, 122, 137, 136, 135, 177, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, - 0, 0, 0, 0, 0, 98, 182, 182, 131, 133, - 134, 126, 127, 129, 130, 132, 128, 124, 0, 123, - 125, 182, 121, 122, 137, 136, 135, 177, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 107, 0, 106, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148, 0, 0, 0, 0, 92, 0, 0, - 0, 0, 147, 0, 0, 0, 0, 0, 89, 0, - 0, 0, 149, 92, 0, 0, 0, 0, 0, 99, - 0, 138, 0, 0, 0, 0, 0, 0, 91, 0, - 0, 99, 0, 93, 99, 100, 0, 0, 145, 0, - 0, 90, 0, 0, 99, 143, 0, 94, 101, 0, - 145, 142, 144, 0, 0, 0, 143, 0, 95, 97, - 141, 0, 0, 143, 96, 0, 140, 145, 143, 139 + 0, 107, 0, 106, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 0, 0, 0, 0, 92, 0, + 0, 0, 0, 147, 0, 0, 0, 0, 0, 89, + 0, 0, 0, 149, 92, 0, 0, 0, 0, 0, + 99, 0, 138, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 99, 0, 93, 99, 100, 0, 0, 145, + 0, 0, 90, 0, 0, 99, 143, 0, 94, 101, + 0, 145, 142, 144, 0, 0, 0, 143, 0, 95, + 97, 141, 0, 0, 143, 96, 0, 140, 145, 143, + 139 };
/* YYDEFGOTO[NTERM-NUM]. */ static const short yydefgoto[] = { - -1, 1, 2, 15, 23, 21, 322, 323, 55, 123, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 166, 245, 274, 275, 67, 276, 330, 390, 399, - 508, 404, 303, 528, 327, 481, 68, 308, 378, 452, - 438, 447, 551, 278, 339, 502, 69, 152, 175, 234, - 70, 154, 176, 237, 239, 16, 17, 85, 235, 71, - 134, 184, 206, 264, 293, 383, 72, 243, 22, 80, - 81, 124, 113, 114, 115, 125, 172, 126, 257, 319, - 19, 20 + -1, 1, 2, 15, 24, 22, 323, 324, 56, 124, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 167, 246, 275, 276, 68, 277, 332, 391, 400, + 509, 405, 304, 529, 328, 482, 69, 309, 379, 453, + 439, 448, 552, 279, 341, 503, 70, 153, 176, 235, + 71, 155, 177, 238, 240, 16, 17, 86, 236, 72, + 135, 185, 207, 265, 294, 384, 73, 244, 23, 81, + 82, 125, 114, 115, 116, 126, 173, 127, 258, 320, + 19, 20, 21 };
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -399 +#define YYPACT_NINF -487 static const short yypact[] = { - -399, 11, 13, -399, -399, -399, -399, -399, -399, -399, - 207, 207, 207, 37, 207, -399, -399, -66, -399, 351, - -399, 363, 612, 207, -399, -399, -399, -399, 564, -399, - 363, 207, 207, 207, 207, 207, 207, 207, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, 361, -46, -399, 108, -399, 445, 469, 311, - 49, 49, -399, -399, 612, 282, 282, 33, 33, 612, - 612, 282, 282, 612, 282, 282, 282, 33, 282, 282, - 207, 207, 207, -399, -399, -399, 207, -399, -15, 38, - -399, -399, -399, -399, 182, -399, -399, -399, 1, 28, - 236, 243, -399, -399, 448, -399, -399, -399, 42, -399, - -399, -399, -399, 51, -399, -399, 75, -399, 58, 207, - 207, -399, -399, -399, -399, 207, 207, 207, 207, 207, - 207, 207, -399, 207, 207, -399, 87, -399, -399, -399, - -399, 138, -21, 70, 74, -62, 41, 98, 103, -399, - -399, -399, -399, -399, 30, -399, -399, 115, -399, 117, - -399, -399, -399, 64, 207, 207, -1, 209, -399, 0, - 213, -399, 207, 207, 222, -399, -399, 268, 207, 207, - -399, -399, -399, -399, 167, 123, 142, -15, -399, -57, - 144, -399, 151, 159, 168, 100, -399, 170, 170, -399, - -399, 207, 207, 207, 194, 178, 207, -399, 207, 200, - 207, 207, -399, 60, 500, -399, -399, -399, 190, 276, - -399, 398, 398, 398, 398, 398, 398, 198, 217, 224, - 217, -399, 231, 234, -33, -399, 207, -399, -399, -399, - -399, -399, -399, -399, 249, -399, 332, 207, -399, -399, - -399, -399, -399, -399, -399, -399, 207, 207, 207, 207, - 296, -399, -399, -399, -399, 500, 127, 207, 39, 305, - 228, 228, -399, -399, -399, -399, -399, -399, 343, 419, - -399, 256, 217, -399, -399, 259, -399, -399, -399, -399, - 261, -399, -399, -399, -399, 207, 228, 246, 351, 246, - 563, 127, 207, 39, 354, 228, 228, -399, -399, -399, - -399, -399, -399, 207, -399, 207, 179, 360, 445, -399, - 93, 564, 228, 39, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 207, 207, 207, 39, 207, 362, 362, - 362, -399, -399, 266, -399, -399, 246, 246, 581, -399, - 278, 217, -399, 290, -399, -399, -399, -399, -15, -15, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - 294, -399, -399, -15, -399, -399, -399, -399, -399, 382, - 39, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 207, 207, 207, 39, 207, 383, 383, 383, -399, 207, - 207, 207, 207, 207, 207, 317, -15, -15, -399, -399, - -399, -399, -399, -399, -399, -399, -399, -399, 321, -399, - -399, -15, -399, -399, -399, -399, -399, -399, -399, 322, - 333, 349, 350, 207, 207, 207, 207, 207, 207, 207, - 207, 218, 377, 387, 396, 397, 399, 402, 403, 404, - -399, 405, -399, 207, 207, 207, 207, 218, 207, 207, - 207, 228, 411, 413, 417, 432, 446, 447, 449, 455, - 165, 207, -399, 207, 207, 207, 228, 207, -399, 207, - 207, 207, -399, 447, 456, 459, 166, 468, 478, 479, - 480, -399, 207, 207, 207, 207, 207, 228, -399, 207, - 482, 479, 486, 487, 479, 174, 488, 207, 190, 207, - 228, -399, 228, 207, 479, 353, 490, 188, 246, 491, - 190, -399, -399, 207, 228, 207, 353, 538, 246, 539, - -399, 207, 228, 86, 246, 228, -399, 189, 353, -399 + -487, 6, 43, -487, -487, -487, -487, -487, -487, -487, + 30, 30, 30, 215, 30, -487, -487, -60, -487, -487, + 636, -487, 434, 675, 30, -487, -487, -487, -487, 623, + -487, 434, 30, 30, 30, 30, 30, 30, 30, -487, + -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, + -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, + -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, + -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, + -487, -487, -487, 310, -62, -487, 131, -487, 563, 195, + 232, 213, 213, -487, -487, 675, 533, 533, 87, 87, + 675, 675, 533, 533, 675, 533, 533, 533, 87, 533, + 533, 30, 30, 30, -487, -487, -487, 30, -487, -48, + 136, -487, -487, -487, -487, 163, -487, -487, -487, -44, + -25, 199, 231, -487, -487, 410, -487, -487, -487, -3, + -487, -487, -487, -487, 5, -487, -487, 67, -487, 21, + 30, 30, -487, -487, -487, -487, 30, 30, 30, 30, + 30, 30, 30, -487, 30, 30, -487, 89, -487, -487, + -487, -487, 334, -19, 26, 32, 259, 284, 34, 38, + -487, -487, -487, -487, -487, -24, -487, -487, 57, -487, + 68, -487, -487, -487, 60, 30, 30, -4, 161, -487, + 3, 176, -487, 30, 30, 191, -487, -487, 308, 30, + 30, -487, -487, -487, -487, 356, 113, 116, -48, -487, + -70, 118, -487, 135, 140, 143, 144, -487, 145, 145, + -487, -487, 30, 30, 30, 168, 278, 30, -487, 30, + 173, 30, 30, -487, 47, 512, -487, -487, -487, 167, + 171, -487, 71, 71, 71, 71, 71, 71, 185, 200, + 210, 200, -487, 217, 220, -29, -487, 30, -487, -487, + -487, -487, -487, -487, -487, 243, -487, 354, 30, -487, + -487, -487, -487, -487, -487, -487, -487, 30, 30, 30, + 30, 251, -487, -487, -487, -487, 512, 164, 30, 293, + 318, 312, 312, -487, -487, -487, -487, -487, -487, 514, + 254, -487, 261, 200, -487, -487, 274, -487, -487, -487, + -487, 283, -487, -487, -487, -487, 30, 312, 294, 649, + 636, 294, 572, 164, 30, 293, 338, 312, 312, -487, + -487, -487, -487, -487, -487, 30, -487, 30, 262, 372, + 649, -487, 17, 312, 293, 375, 375, 375, 375, 375, + 375, 375, 375, 375, 30, 30, 30, 293, 30, 375, + 375, 375, -487, -487, 289, -487, -487, 294, 294, 590, + -487, 292, 200, -487, 298, -487, -487, -487, -487, -48, + -48, -487, -487, -487, -487, -487, -487, -487, -487, -487, + -487, 299, -487, -487, -48, -487, -487, -487, -487, -487, + 380, 293, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 30, 30, 30, 293, 30, 389, 389, 389, -487, + 30, 30, 30, 30, 30, 30, 307, -48, -48, -487, + -487, -487, -487, -487, -487, -487, -487, -487, -487, 316, + -487, -487, -48, -487, -487, -487, -487, -487, -487, -487, + 317, 329, 332, 333, 30, 30, 30, 30, 30, 30, + 30, 30, 303, 342, 347, 349, 350, 361, 365, 366, + 367, -487, 368, -487, 30, 30, 30, 30, 303, 30, + 30, 30, 312, 378, 379, 381, 398, 399, 400, 401, + 402, -72, 30, -487, 30, 30, 30, 312, 30, -487, + 30, 30, 30, -487, 400, 404, 405, -16, 406, 408, + 412, 414, -487, 30, 30, 30, 30, 30, 312, -487, + 30, 420, 412, 421, 422, 412, 39, 424, 30, 167, + 30, 312, -487, 312, 30, 412, 344, 425, 112, 294, + 426, 167, -487, -487, 30, 312, 30, 344, 427, 294, + 433, -487, 30, 312, 25, 294, 312, -487, 121, 344, + -487 };
/* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -399, -399, -399, -399, -399, 426, -292, -163, 508, -399, - -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, - -399, -399, 248, -399, 335, -399, -399, -399, 208, 44, - 121, -399, 346, -291, -286, 153, -399, -399, -399, -399, - 210, 53, -381, -398, -399, -399, -399, 421, -399, -227, - -399, 418, -399, -399, -399, -399, -399, -399, -111, -399, - -399, -399, 392, -399, -399, -399, -399, -399, 406, -399, - -399, -20, -273, -211, -148, -359, -399, 537, -228, -2, - 20, -12 + -487, -487, -487, -487, -487, 383, -278, -182, 374, -487, + -487, -487, -487, -487, -487, -487, -487, -487, -487, -487, + -487, -487, 182, -487, 100, -487, -487, -487, 304, -95, + -87, -487, 218, -431, -251, -15, -487, -487, -487, -487, + 263, 14, -486, -469, -487, -487, -487, 295, -487, -66, + -487, 291, -487, -487, -487, -487, -487, -487, -115, -487, + -487, -487, 268, -487, -487, -487, -487, -487, 591, -487, + -487, -20, -253, -249, -248, -354, -487, 595, -234, -2, + -294, 4, -12 };
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -241 +#define YYTABLE_NINF -255 static const short yytable[] = { - 18, 27, 82, 304, 318, 217, 220, 146, 204, 290, - 259, 3, 196, 197, 29, 329, 4, 5, 6, 198, - 7, 83, 279, -156, 280, 281, 282, 283, 284, 285, - 24, 25, 26, 8, 28, 340, 145, 5, 6, 372, - 350, 5, 6, 5, 6, 321, 317, 116, 291, 376, - 377, 87, 88, 89, 90, 91, 92, 93, 309, 311, - 192, 193, 167, 168, 169, 305, 387, 170, 210, 211, - 212, 204, 145, 213, 119, 218, 221, 9, 145, 130, - 131, 165, 344, 118, 73, 74, 75, 76, 77, 78, - 79, 5, 6, 187, 149, 128, 129, 341, 110, 10, - 11, 111, 112, 12, 13, 138, 233, 14, 141, 142, - 143, 205, 5, 6, 144, 199, 200, 380, 147, 10, - 11, 150, 201, 12, 13, 10, 11, 14, 306, 12, - 13, 5, 6, 14, 317, 163, 265, 36, 37, 266, - 545, 267, 190, 191, 164, 171, -217, 173, 174, -217, - -217, 214, 556, 177, 178, 179, 180, 181, 182, 183, - 342, 185, 186, 194, 189, 207, -217, 195, 188, 568, - 374, 229, 230, 10, 11, 560, 352, 12, 13, 565, - 242, 14, 566, 5, 6, 382, 552, 569, 386, 117, - 388, 202, 215, 216, 10, 11, 203, 552, 12, 13, - 223, 224, 14, 403, 552, 500, 227, 228, 208, 552, - 209, 5, 6, 10, 11, 219, 231, 12, 13, 222, - 516, 14, 5, 6, 480, 251, 252, 253, 225, 247, - 248, 249, 5, 6, 258, 232, 260, 236, 262, 263, - 538, 535, 110, 541, 238, 111, 112, 436, 352, 352, - 254, 255, 240, 550, 547, 256, 548, 352, 511, 524, - 451, 241, 148, 244, 294, 10, 11, 542, 558, 12, - 13, 352, 352, 14, 151, 307, 564, 431, 432, 567, - 153, 554, 277, 277, 310, 312, 313, 314, 120, 121, - 122, 286, 434, 10, 11, 320, 110, 12, 13, 111, - 112, 14, 315, 110, 10, 11, 111, 112, 12, 13, - -240, 324, 14, 349, 10, 11, 151, 287, 12, 325, - 328, 328, 326, 153, 288, 464, 465, 289, 110, 352, - 373, 111, 112, 73, 74, 75, 76, 77, 78, 79, - 467, 379, 295, 381, 384, 348, 351, 296, 226, 345, - -156, -156, 346, 297, 347, 328, 328, -156, 331, 409, - 375, 400, 400, 400, 332, 400, 385, 38, 389, 145, - 39, 429, 328, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 430, 50, 51, 52, 433, 435, 437, - 298, 299, 110, 300, 301, 111, 112, 34, 35, 36, - 37, 333, 334, 110, 335, 336, 111, 112, 401, 402, - 463, 405, 302, -217, 466, 468, -217, -217, 448, 448, - 448, 110, 448, 337, 111, 112, 469, 457, 458, 459, - 460, 461, 462, -217, 31, 32, 33, 34, 35, 36, - 37, 53, 470, 471, 30, 54, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 472, 473, 474, 475, 476, 477, 478, 479, 482, - 483, 109, -156, -156, 449, 450, 246, 453, -156, -156, - 484, 492, 493, 494, 495, 482, 497, 498, 499, 485, - 486, 145, 487, -156, -156, 488, 489, 490, 491, 512, - -156, 513, 514, 515, 501, 517, 503, 518, 519, 520, - 504, 328, 343, 155, 156, 157, 158, 159, 160, 161, - 530, 531, 532, 533, 534, 505, 328, 536, 162, 32, - 33, 34, 35, 36, 37, 544, 268, 546, 86, 506, - 507, 549, 509, 269, 270, 271, 272, 328, 510, 522, - 273, 557, 523, 559, 33, 34, 35, 36, 37, 563, - 328, 525, 328, 391, 392, 393, 394, 395, 396, 397, - 398, 526, 527, 529, 328, 537, 406, 407, 408, 539, - 540, 543, 328, 553, 555, 328, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 439, 440, 441, 442, 443, 444, 445, 446, - 316, 561, 562, 127, 521, 454, 455, 456, 132, 133, - 496, 135, 136, 137, 371, 139, 140, 31, 32, 33, - 34, 35, 36, 37, 338, 250, 292, 261, 0, 84, - 0, 0, 428, 73, 74, 75, 76, 77, 78, 79 + 18, 28, 218, 83, 147, 260, 3, 329, 329, 221, + -156, 353, 205, 291, 25, 26, 27, 205, 29, 319, + 30, 512, 84, 146, 305, 168, 169, 170, 306, 307, + 171, 117, 350, 329, 5, 6, 88, 89, 90, 91, + 92, 93, 94, 329, 329, 146, 4, 5, 6, 150, + 7, 331, 292, 310, 312, 373, 342, 206, 194, 329, + 343, 344, 193, 8, 211, 212, 213, 353, 151, 214, + 546, 561, 219, 166, 146, 120, 352, 525, 567, 222, + 131, 132, 557, 570, 119, -217, 377, 378, -217, -217, + 164, 5, 6, 5, 6, 188, 129, 130, 165, 569, + 353, 539, 388, 234, 542, -217, 139, 9, 172, 142, + 143, 144, 387, 381, 551, 145, 10, 11, 566, 195, + 12, 13, 353, 266, 14, 196, 267, 203, 268, 10, + 11, 204, 543, 12, 13, 5, 6, 14, 74, 75, + 76, 77, 78, 79, 80, -156, -156, 215, 174, 175, + 209, -156, -156, 375, 178, 179, 180, 181, 182, 183, + 184, 210, 186, 187, 146, 190, 208, 220, 5, 6, + 189, 318, 389, 10, 11, 10, 11, 12, 13, 12, + 13, 14, 223, 14, 280, 404, 281, 282, 283, 284, + 285, 286, 553, 216, 217, 353, 111, 226, 329, 112, + 113, 224, 225, 553, 353, 555, 232, 228, 229, 233, + 553, 237, 118, 329, 278, 553, 148, 10, 11, 5, + 6, 12, 13, 111, 243, 14, 112, 113, 239, 437, + 248, 249, 250, 241, 329, 259, 242, 261, 245, 263, + 264, 501, 452, 149, 346, -156, -156, 329, 152, 329, + 10, 11, -156, 154, 12, 13, 517, 316, 14, 111, + 278, 329, 112, 113, 146, 295, 5, 6, 383, 329, + 402, 403, 329, 406, 432, 433, 308, 536, 287, 152, + 34, 35, 36, 37, 38, 311, 313, 314, 315, 435, + 548, 111, 549, -240, 112, 113, 321, 5, 6, 322, + 318, 37, 38, 288, 559, 330, 330, 5, 6, 481, + 289, 154, 565, 290, 351, 568, 5, 6, 35, 36, + 37, 38, 465, 466, 325, 252, 253, 254, -156, -156, + 330, 29, 374, 197, 198, -156, 296, 468, 191, 192, + 199, 330, 330, 380, 376, 382, 385, 345, 10, 11, + 255, 256, 12, 13, 347, 257, 14, 330, 200, 201, + 230, 231, 401, 401, 401, 202, 401, 348, 111, 297, + 111, 112, 113, 112, 113, 298, 349, 353, 386, 10, + 11, 390, 410, 12, 13, 430, 436, 14, 227, 10, + 11, 431, 434, 12, 13, 438, 317, 14, 10, 11, + 464, 31, 12, 326, -217, 87, 327, -217, -217, 467, + 469, 247, 299, 300, 111, 301, 302, 112, 113, 449, + 449, 449, 470, 449, -217, 471, 472, 522, 458, 459, + 460, 461, 462, 463, 303, 484, 450, 451, 39, 454, + 485, 40, 486, 487, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 488, 51, 52, 53, 489, 490, + 491, 492, 473, 474, 475, 476, 477, 478, 479, 480, + 483, 502, 504, 497, 505, 156, 157, 158, 159, 160, + 161, 162, 493, 494, 495, 496, 483, 498, 499, 500, + 163, 506, 507, 508, 510, 511, 330, 523, 524, 526, + 513, 527, 514, 515, 516, 528, 518, 530, 519, 520, + 521, 330, 54, 538, 540, 541, 55, 544, 554, 556, + 562, 531, 532, 533, 534, 535, 563, 340, 537, 333, + 251, 262, 330, 293, 0, 334, 545, 0, 547, 121, + 122, 123, 550, 0, 0, 330, 0, 330, 269, 0, + 0, 0, 558, 0, 560, 270, 271, 272, 273, 330, + 564, 0, 274, 0, 0, 0, 0, 330, 0, 0, + 330, 0, 335, 336, 111, 337, 338, 112, 113, 0, + 0, 0, 0, 0, 74, 75, 76, 77, 78, 79, + 80, 0, 0, 0, 339, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 0, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 33, 34, 35, + 36, 37, 38, 372, 0, 0, 0, 110, 0, 0, + 392, 393, 394, 395, 396, 397, 398, 399, 0, 0, + 0, 429, 0, 407, 408, 409, 440, 441, 442, 443, + 444, 445, 446, 447, 0, 0, 0, 0, 0, 455, + 456, 457, 128, 0, 0, 0, 0, 133, 134, 0, + 136, 137, 138, 0, 140, 141, 32, 33, 34, 35, + 36, 37, 38, 0, 0, 0, 0, 0, 85, 32, + 33, 34, 35, 36, 37, 38, 74, 75, 76, 77, + 78, 79, 80, -254, -254, -254, -254, -254, -254 };
static const short yycheck[] = { - 2, 13, 22, 276, 296, 6, 6, 118, 41, 42, - 238, 0, 74, 75, 80, 301, 3, 4, 5, 81, - 7, 23, 249, 80, 251, 252, 253, 254, 255, 256, - 10, 11, 12, 20, 14, 308, 93, 4, 5, 331, - 326, 4, 5, 4, 5, 6, 7, 93, 81, 335, - 336, 31, 32, 33, 34, 35, 36, 37, 286, 287, - 81, 172, 4, 5, 6, 276, 352, 9, 4, 5, - 6, 41, 93, 9, 94, 76, 76, 64, 93, 99, - 100, 6, 309, 85, 51, 52, 53, 54, 55, 56, - 57, 4, 5, 6, 93, 97, 98, 308, 60, 86, - 87, 63, 64, 90, 91, 107, 217, 94, 110, 111, - 112, 81, 4, 5, 116, 74, 75, 345, 80, 86, - 87, 93, 81, 90, 91, 86, 87, 94, 276, 90, - 91, 4, 5, 94, 7, 93, 76, 88, 89, 79, - 538, 81, 4, 5, 93, 87, 60, 149, 150, 63, - 64, 87, 550, 155, 156, 157, 158, 159, 160, 161, - 308, 163, 164, 93, 166, 185, 80, 93, 81, 567, - 333, 4, 5, 86, 87, 556, 83, 90, 91, 93, - 80, 94, 563, 4, 5, 6, 545, 568, 95, 81, - 353, 93, 194, 195, 86, 87, 93, 556, 90, 91, - 202, 203, 94, 366, 563, 491, 208, 209, 93, 568, - 93, 4, 5, 86, 87, 6, 93, 90, 91, 6, - 506, 94, 4, 5, 6, 47, 48, 49, 6, 231, - 232, 233, 4, 5, 236, 93, 238, 93, 240, 241, - 531, 527, 60, 534, 93, 63, 64, 410, 83, 83, - 72, 73, 93, 544, 540, 77, 542, 83, 93, 93, - 423, 93, 80, 93, 266, 86, 87, 93, 554, 90, - 91, 83, 83, 94, 80, 277, 562, 388, 389, 565, - 80, 93, 93, 93, 286, 287, 288, 289, 6, 7, - 8, 93, 403, 86, 87, 297, 60, 90, 91, 63, - 64, 94, 6, 60, 86, 87, 63, 64, 90, 91, - 93, 6, 94, 325, 86, 87, 80, 93, 90, 91, - 300, 301, 94, 80, 93, 436, 437, 93, 60, 83, - 332, 63, 64, 51, 52, 53, 54, 55, 56, 57, - 451, 343, 93, 345, 346, 325, 326, 15, 80, 93, - 74, 75, 93, 21, 93, 335, 336, 81, 15, 93, - 6, 363, 364, 365, 21, 367, 6, 4, 6, 93, - 7, 93, 352, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 93, 21, 22, 23, 93, 6, 6, - 58, 59, 60, 61, 62, 63, 64, 86, 87, 88, - 89, 58, 59, 60, 61, 62, 63, 64, 364, 365, - 93, 367, 80, 60, 93, 93, 63, 64, 420, 421, - 422, 60, 424, 80, 63, 64, 93, 429, 430, 431, - 432, 433, 434, 80, 83, 84, 85, 86, 87, 88, - 89, 78, 93, 93, 18, 82, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 93, 65, 74, 75, 421, 422, 228, 424, 80, 81, - 93, 483, 484, 485, 486, 487, 488, 489, 490, 93, - 93, 93, 93, 74, 75, 93, 93, 93, 93, 501, - 81, 503, 504, 505, 93, 507, 93, 509, 510, 511, - 93, 491, 93, 65, 66, 67, 68, 69, 70, 71, - 522, 523, 524, 525, 526, 93, 506, 529, 80, 84, - 85, 86, 87, 88, 89, 537, 36, 539, 30, 93, - 93, 543, 93, 43, 44, 45, 46, 527, 93, 93, - 50, 553, 93, 555, 85, 86, 87, 88, 89, 561, - 540, 93, 542, 355, 356, 357, 358, 359, 360, 361, - 362, 93, 93, 93, 554, 93, 368, 369, 370, 93, - 93, 93, 562, 93, 93, 565, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 412, 413, 414, 415, 416, 417, 418, 419, - 295, 93, 93, 96, 513, 425, 426, 427, 101, 102, - 487, 104, 105, 106, 81, 108, 109, 83, 84, 85, - 86, 87, 88, 89, 308, 234, 264, 239, -1, 95, - -1, -1, 81, 51, 52, 53, 54, 55, 56, 57 + 2, 13, 6, 23, 119, 239, 0, 301, 302, 6, + 80, 83, 41, 42, 10, 11, 12, 41, 14, 297, + 80, 93, 24, 93, 277, 4, 5, 6, 277, 277, + 9, 93, 326, 327, 4, 5, 32, 33, 34, 35, + 36, 37, 38, 337, 338, 93, 3, 4, 5, 93, + 7, 302, 81, 287, 288, 333, 309, 81, 173, 353, + 309, 309, 81, 20, 4, 5, 6, 83, 93, 9, + 539, 557, 76, 6, 93, 95, 327, 93, 564, 76, + 100, 101, 551, 569, 86, 60, 337, 338, 63, 64, + 93, 4, 5, 4, 5, 6, 98, 99, 93, 568, + 83, 532, 353, 218, 535, 80, 108, 64, 87, 111, + 112, 113, 95, 347, 545, 117, 86, 87, 93, 93, + 90, 91, 83, 76, 94, 93, 79, 93, 81, 86, + 87, 93, 93, 90, 91, 4, 5, 94, 51, 52, + 53, 54, 55, 56, 57, 74, 75, 87, 150, 151, + 93, 80, 81, 335, 156, 157, 158, 159, 160, 161, + 162, 93, 164, 165, 93, 167, 186, 6, 4, 5, + 81, 7, 354, 86, 87, 86, 87, 90, 91, 90, + 91, 94, 6, 94, 250, 367, 252, 253, 254, 255, + 256, 257, 546, 195, 196, 83, 60, 6, 492, 63, + 64, 203, 204, 557, 83, 93, 93, 209, 210, 93, + 564, 93, 81, 507, 93, 569, 80, 86, 87, 4, + 5, 90, 91, 60, 80, 94, 63, 64, 93, 411, + 232, 233, 234, 93, 528, 237, 93, 239, 93, 241, + 242, 492, 424, 80, 310, 74, 75, 541, 80, 543, + 86, 87, 81, 80, 90, 91, 507, 6, 94, 60, + 93, 555, 63, 64, 93, 267, 4, 5, 6, 563, + 365, 366, 566, 368, 389, 390, 278, 528, 93, 80, + 85, 86, 87, 88, 89, 287, 288, 289, 290, 404, + 541, 60, 543, 93, 63, 64, 298, 4, 5, 6, + 7, 88, 89, 93, 555, 301, 302, 4, 5, 6, + 93, 80, 563, 93, 326, 566, 4, 5, 86, 87, + 88, 89, 437, 438, 6, 47, 48, 49, 74, 75, + 326, 327, 334, 74, 75, 81, 93, 452, 4, 5, + 81, 337, 338, 345, 6, 347, 348, 93, 86, 87, + 72, 73, 90, 91, 93, 77, 94, 353, 74, 75, + 4, 5, 364, 365, 366, 81, 368, 93, 60, 15, + 60, 63, 64, 63, 64, 21, 93, 83, 6, 86, + 87, 6, 93, 90, 91, 93, 6, 94, 80, 86, + 87, 93, 93, 90, 91, 6, 296, 94, 86, 87, + 93, 18, 90, 91, 60, 31, 94, 63, 64, 93, + 93, 229, 58, 59, 60, 61, 62, 63, 64, 421, + 422, 423, 93, 425, 80, 93, 93, 514, 430, 431, + 432, 433, 434, 435, 80, 93, 422, 423, 4, 425, + 93, 7, 93, 93, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 93, 21, 22, 23, 93, 93, + 93, 93, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 93, 93, 488, 93, 65, 66, 67, 68, 69, + 70, 71, 484, 485, 486, 487, 488, 489, 490, 491, + 80, 93, 93, 93, 93, 93, 492, 93, 93, 93, + 502, 93, 504, 505, 506, 93, 508, 93, 510, 511, + 512, 507, 78, 93, 93, 93, 82, 93, 93, 93, + 93, 523, 524, 525, 526, 527, 93, 309, 530, 15, + 235, 240, 528, 265, -1, 21, 538, -1, 540, 6, + 7, 8, 544, -1, -1, 541, -1, 543, 36, -1, + -1, -1, 554, -1, 556, 43, 44, 45, 46, 555, + 562, -1, 50, -1, -1, -1, -1, 563, -1, -1, + 566, -1, 58, 59, 60, 61, 62, 63, 64, -1, + -1, -1, -1, -1, 51, 52, 53, 54, 55, 56, + 57, -1, -1, -1, 80, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 84, 85, 86, + 87, 88, 89, 81, -1, -1, -1, 66, -1, -1, + 356, 357, 358, 359, 360, 361, 362, 363, -1, -1, + -1, 81, -1, 369, 370, 371, 413, 414, 415, 416, + 417, 418, 419, 420, -1, -1, -1, -1, -1, 426, + 427, 428, 97, -1, -1, -1, -1, 102, 103, -1, + 105, 106, 107, -1, 109, 110, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, 95, 83, + 84, 85, 86, 87, 88, 89, 51, 52, 53, 54, + 55, 56, 57, 84, 85, 86, 87, 88, 89 };
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1290,61 +1307,62 @@ { 0, 97, 98, 0, 3, 4, 5, 7, 20, 64, 86, 87, 90, 91, 94, 99, 151, 152, 175, 176, - 177, 101, 164, 100, 176, 176, 176, 177, 176, 80, - 101, 83, 84, 85, 86, 87, 88, 89, 4, 7, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 21, 22, 23, 78, 82, 104, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 121, 132, 142, - 146, 155, 162, 51, 52, 53, 54, 55, 56, 57, - 165, 166, 167, 175, 95, 153, 104, 176, 176, 176, - 176, 176, 176, 176, 164, 164, 164, 164, 164, 164, + 177, 178, 101, 164, 100, 177, 177, 177, 178, 177, + 80, 101, 83, 84, 85, 86, 87, 88, 89, 4, + 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 21, 22, 23, 78, 82, 104, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 121, 132, + 142, 146, 155, 162, 51, 52, 53, 54, 55, 56, + 57, 165, 166, 167, 175, 95, 153, 104, 177, 177, + 177, 177, 177, 177, 177, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 60, 63, 64, 168, 169, 170, 93, 81, 175, 167, - 6, 7, 8, 105, 167, 171, 173, 173, 175, 175, - 167, 167, 173, 173, 156, 173, 173, 173, 175, 173, - 173, 175, 175, 175, 175, 93, 154, 80, 80, 93, - 93, 80, 143, 80, 147, 65, 66, 67, 68, 69, - 70, 71, 80, 93, 93, 6, 117, 4, 5, 6, - 9, 87, 172, 175, 175, 144, 148, 175, 175, 175, - 175, 175, 175, 175, 157, 175, 175, 6, 81, 175, - 4, 5, 81, 154, 93, 93, 74, 75, 81, 74, - 75, 81, 93, 93, 41, 81, 158, 167, 93, 93, - 4, 5, 6, 9, 87, 175, 175, 6, 76, 6, - 6, 76, 6, 175, 175, 6, 80, 175, 175, 4, - 5, 93, 93, 154, 145, 154, 93, 149, 93, 150, - 93, 93, 80, 163, 93, 118, 118, 175, 175, 175, - 143, 47, 48, 49, 72, 73, 77, 174, 175, 174, - 175, 147, 175, 175, 159, 76, 79, 81, 36, 43, - 44, 45, 46, 50, 119, 120, 122, 93, 139, 145, - 145, 145, 145, 145, 145, 145, 93, 93, 93, 93, - 42, 81, 158, 160, 175, 93, 15, 21, 58, 59, - 61, 62, 80, 128, 168, 169, 170, 175, 133, 174, - 175, 174, 175, 175, 175, 6, 120, 7, 102, 175, - 175, 6, 102, 103, 6, 91, 94, 130, 176, 130, - 123, 15, 21, 58, 59, 61, 62, 80, 128, 140, - 168, 169, 170, 93, 145, 93, 93, 93, 176, 177, - 130, 176, 83, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 81, 102, 175, 103, 6, 130, 130, 134, 175, - 174, 175, 6, 161, 175, 6, 95, 130, 103, 6, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 125, - 175, 125, 125, 103, 127, 125, 124, 124, 124, 93, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 81, 93, - 93, 154, 154, 93, 154, 6, 103, 6, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 137, 175, 137, - 137, 103, 135, 137, 136, 136, 136, 175, 175, 175, - 175, 175, 175, 93, 154, 154, 93, 154, 93, 93, - 93, 93, 175, 175, 175, 175, 175, 175, 175, 175, - 6, 131, 175, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 175, 175, 175, 175, 131, 175, 175, 175, - 130, 93, 141, 93, 93, 93, 93, 93, 126, 93, - 93, 93, 175, 175, 175, 175, 130, 175, 175, 175, - 175, 126, 93, 93, 93, 93, 93, 93, 129, 93, - 175, 175, 175, 175, 175, 130, 175, 93, 129, 93, - 93, 129, 93, 93, 175, 139, 175, 130, 130, 175, - 129, 138, 171, 93, 93, 93, 139, 175, 130, 175, - 138, 93, 93, 175, 130, 93, 138, 130, 139, 138 + 164, 60, 63, 64, 168, 169, 170, 93, 81, 175, + 167, 6, 7, 8, 105, 167, 171, 173, 173, 175, + 175, 167, 167, 173, 173, 156, 173, 173, 173, 175, + 173, 173, 175, 175, 175, 175, 93, 154, 80, 80, + 93, 93, 80, 143, 80, 147, 65, 66, 67, 68, + 69, 70, 71, 80, 93, 93, 6, 117, 4, 5, + 6, 9, 87, 172, 175, 175, 144, 148, 175, 175, + 175, 175, 175, 175, 175, 157, 175, 175, 6, 81, + 175, 4, 5, 81, 154, 93, 93, 74, 75, 81, + 74, 75, 81, 93, 93, 41, 81, 158, 167, 93, + 93, 4, 5, 6, 9, 87, 175, 175, 6, 76, + 6, 6, 76, 6, 175, 175, 6, 80, 175, 175, + 4, 5, 93, 93, 154, 145, 154, 93, 149, 93, + 150, 93, 93, 80, 163, 93, 118, 118, 175, 175, + 175, 143, 47, 48, 49, 72, 73, 77, 174, 175, + 174, 175, 147, 175, 175, 159, 76, 79, 81, 36, + 43, 44, 45, 46, 50, 119, 120, 122, 93, 139, + 145, 145, 145, 145, 145, 145, 145, 93, 93, 93, + 93, 42, 81, 158, 160, 175, 93, 15, 21, 58, + 59, 61, 62, 80, 128, 168, 169, 170, 175, 133, + 174, 175, 174, 175, 175, 175, 6, 120, 7, 102, + 175, 175, 6, 102, 103, 6, 91, 94, 130, 176, + 177, 130, 123, 15, 21, 58, 59, 61, 62, 80, + 128, 140, 168, 169, 170, 93, 145, 93, 93, 93, + 176, 178, 130, 83, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 81, 102, 175, 103, 6, 130, 130, 134, + 175, 174, 175, 6, 161, 175, 6, 95, 130, 103, + 6, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 125, 175, 125, 125, 103, 127, 125, 124, 124, 124, + 93, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 81, + 93, 93, 154, 154, 93, 154, 6, 103, 6, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 137, 175, + 137, 137, 103, 135, 137, 136, 136, 136, 175, 175, + 175, 175, 175, 175, 93, 154, 154, 93, 154, 93, + 93, 93, 93, 175, 175, 175, 175, 175, 175, 175, + 175, 6, 131, 175, 93, 93, 93, 93, 93, 93, + 93, 93, 93, 175, 175, 175, 175, 131, 175, 175, + 175, 130, 93, 141, 93, 93, 93, 93, 93, 126, + 93, 93, 93, 175, 175, 175, 175, 130, 175, 175, + 175, 175, 126, 93, 93, 93, 93, 93, 93, 129, + 93, 175, 175, 175, 175, 175, 130, 175, 93, 129, + 93, 93, 129, 93, 93, 175, 139, 175, 130, 130, + 175, 129, 138, 171, 93, 93, 93, 139, 175, 130, + 175, 138, 93, 93, 175, 130, 93, 138, 130, 139, + 138 };
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1372,7 +1390,6 @@ #define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1
- /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ @@ -1493,9 +1510,9 @@ #endif { int yyi; - unsigned int yylno = yyrline[yyrule]; + unsigned int yylineno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", - yyrule - 1, yylno); + yyrule - 1, yylineno); /* Print the symbols being reduced, and their result. */ for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); @@ -4107,25 +4124,30 @@ break;
case 254: -#line 1838 "parser.y" - { yyval.num = ~(yyvsp[0].num); ;} +#line 1841 "parser.y" + { yyval.num = (yyvsp[0].num); ;} break;
case 255: -#line 1841 "parser.y" - { yyval.num = yyvsp[0].num; ;} +#line 1842 "parser.y" + { yyval.num = ~(yyvsp[0].num); ;} break;
case 256: -#line 1842 "parser.y" +#line 1845 "parser.y" { yyval.num = yyvsp[0].num; ;} break;
+ case 257: +#line 1846 "parser.y" + { yyval.num = yyvsp[0].num; ;} + break;
+ }
-/* Line 999 of yacc.c. */ -#line 4129 "y.tab.c" +/* Line 991 of yacc.c. */ +#line 4150 "y.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -4166,33 +4188,18 @@ { YYSIZE_T yysize = 0; int yytype = YYTRANSLATE (yychar); - const char* yyprefix; char *yymsg; - int yyx; + int yyx, yycount;
+ yycount = 0; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 0; - - yyprefix = ", expecting "; - for (yyx = yyxbegin; yyx < yyxend; ++yyx) + for (yyx = yyn < 0 ? -yyn : 0; + yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); - yycount += 1; - if (yycount == 5) - { - yysize = 0; - break; - } - } - yysize += (sizeof ("syntax error, unexpected ") - + yystrlen (yytname[yytype])); + yysize += yystrlen (yytname[yyx]) + 15, yycount++; + yysize += yystrlen ("syntax error, unexpected ") + 1; + yysize += yystrlen (yytname[yytype]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { @@ -4201,13 +4208,16 @@
if (yycount < 5) { - yyprefix = ", expecting "; - for (yyx = yyxbegin; yyx < yyxend; ++yyx) + yycount = 0; + for (yyx = yyn < 0 ? -yyn : 0; + yyx < (int) (sizeof (yytname) / sizeof (char *)); + yyx++) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { - yyp = yystpcpy (yyp, yyprefix); + const char *yyq = ! yycount ? ", expecting " : " or "; + yyp = yystpcpy (yyp, yyq); yyp = yystpcpy (yyp, yytname[yyx]); - yyprefix = " or "; + yycount++; } } yyerror (yymsg); @@ -4251,13 +4261,28 @@
/* Else will try to reuse lookahead token after shifting the error [truncated at 1000 lines; 61 more skipped]