1 #ifndef lint 2 /* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */ 3 #endif 4 #define YYBYACC 1 5 #line 16 "perly.y" 6 #include "EXTERN.h" 7 #define PERL_IN_PERLY_C 8 #include "perl.h" 9 #ifdef EBCDIC 10 #undef YYDEBUG 11 #endif 12 #define dep() deprecate_old("\"do\" to call subroutines") 13 14 /* stuff included here to make perly_c.diff apply better */ 15 16 #define yydebug PL_yydebug 17 #define yynerrs PL_yynerrs 18 #define yyerrflag PL_yyerrflag 19 #define yychar PL_yychar 20 #define yyval PL_yyval 21 #define yylval PL_yylval 22 23 struct ysv { 24 short* yyss; 25 YYSTYPE* yyvs; 26 int oldyydebug; 27 int oldyynerrs; 28 int oldyyerrflag; 29 int oldyychar; 30 YYSTYPE oldyyval; 31 YYSTYPE oldyylval; 32 }; 33 34 static void yydestruct(pTHX_ void *ptr); 35 36 #line 51 "perly.y" 37 #if 0 /* get this from perly.h instead */ 38 #line 54 "perly.y" 39 typedef union { 40 I32 ival; 41 char *pval; 42 OP *opval; 43 GV *gvval; 44 } YYSTYPE; 45 #line 62 "perly.y" 46 #endif /* 0 */ 47 48 #ifdef USE_PURE_BISON 49 #define YYLEX_PARAM (&yychar) 50 #define yylex yylex_r 51 #endif 52 53 #line 54 "perly.c" 54 #define YYERRCODE 256 55 static short yylhs[] = { -1, 56 0, 9, 7, 6, 10, 8, 11, 11, 11, 12, 57 12, 12, 12, 25, 25, 25, 25, 25, 25, 25, 58 15, 15, 15, 14, 14, 43, 43, 13, 13, 13, 59 13, 13, 13, 13, 27, 27, 28, 28, 29, 30, 60 31, 32, 33, 54, 54, 1, 1, 1, 1, 1, 61 2, 39, 39, 47, 55, 3, 4, 5, 40, 41, 62 41, 45, 45, 45, 46, 46, 42, 42, 56, 56, 63 58, 57, 16, 16, 16, 26, 26, 26, 37, 37, 64 37, 37, 37, 37, 37, 37, 59, 37, 38, 38, 65 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 66 18, 50, 50, 50, 50, 50, 50, 50, 50, 50, 67 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 68 51, 51, 52, 52, 52, 52, 52, 53, 53, 53, 69 53, 53, 53, 17, 17, 17, 17, 17, 17, 17, 70 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 71 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 72 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 73 17, 17, 17, 17, 48, 48, 49, 49, 49, 49, 74 49, 34, 34, 35, 35, 35, 44, 24, 19, 20, 75 21, 22, 23, 36, 36, 36, 36, 76 }; 77 static short yylen[] = { 2, 78 2, 4, 0, 0, 4, 0, 0, 2, 2, 2, 79 1, 2, 3, 1, 1, 3, 3, 3, 3, 3, 80 0, 2, 6, 7, 7, 0, 2, 8, 8, 10, 81 9, 8, 11, 3, 0, 1, 0, 1, 1, 1, 82 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 83 4, 1, 0, 6, 6, 0, 0, 0, 1, 0, 84 1, 0, 2, 1, 2, 1, 1, 1, 3, 2, 85 0, 7, 3, 3, 1, 2, 3, 1, 3, 5, 86 6, 3, 3, 5, 2, 4, 0, 5, 1, 1, 87 5, 4, 5, 4, 5, 6, 5, 4, 5, 4, 88 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 89 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 90 2, 2, 3, 2, 4, 3, 5, 2, 2, 4, 91 5, 4, 5, 1, 1, 1, 1, 5, 2, 1, 92 2, 3, 2, 1, 1, 1, 1, 1, 1, 6, 93 5, 4, 5, 1, 1, 3, 4, 3, 1, 2, 94 2, 1, 2, 2, 2, 1, 3, 1, 3, 4, 95 4, 6, 1, 1, 3, 2, 3, 2, 1, 1, 96 1, 0, 1, 0, 1, 2, 1, 2, 2, 2, 97 2, 2, 2, 1, 1, 1, 1, 98 }; 99 static short yydefred[] = { 4, 100 0, 7, 0, 45, 58, 56, 0, 56, 56, 8, 101 46, 9, 11, 48, 0, 47, 49, 50, 0, 0, 102 0, 70, 71, 0, 14, 3, 173, 0, 0, 154, 103 0, 168, 0, 57, 57, 0, 0, 0, 0, 0, 104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106 0, 12, 0, 0, 0, 0, 0, 0, 0, 10, 107 0, 0, 0, 0, 0, 146, 148, 0, 0, 0, 108 0, 174, 140, 134, 135, 136, 137, 52, 0, 59, 109 0, 69, 0, 0, 7, 194, 197, 196, 195, 0, 110 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 111 3, 0, 0, 0, 0, 0, 163, 0, 0, 0, 112 0, 85, 0, 192, 0, 129, 0, 0, 0, 0, 113 0, 0, 0, 179, 181, 180, 0, 188, 0, 0, 114 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 115 189, 190, 191, 193, 0, 34, 0, 0, 0, 0, 116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117 0, 0, 0, 0, 0, 0, 0, 119, 120, 0, 118 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 119 0, 51, 61, 0, 0, 0, 0, 83, 0, 0, 120 87, 0, 0, 0, 0, 0, 0, 0, 3, 167, 121 169, 0, 0, 0, 0, 0, 0, 0, 126, 0, 122 158, 178, 0, 0, 175, 0, 0, 123, 27, 0, 123 0, 19, 0, 0, 0, 0, 73, 0, 0, 0, 124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125 0, 0, 89, 0, 0, 90, 0, 0, 101, 0, 126 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 127 0, 0, 0, 2, 0, 0, 171, 0, 0, 0, 128 42, 0, 43, 0, 0, 0, 0, 187, 0, 0, 129 36, 41, 0, 0, 0, 170, 186, 86, 0, 130, 130 0, 132, 0, 125, 177, 65, 0, 0, 0, 0, 131 98, 0, 0, 0, 0, 100, 94, 0, 92, 0, 132 152, 0, 157, 63, 68, 67, 55, 0, 54, 84, 133 0, 88, 127, 0, 0, 0, 0, 0, 0, 0, 134 0, 80, 131, 133, 151, 0, 0, 0, 99, 93, 135 0, 97, 95, 153, 91, 72, 172, 6, 0, 0, 136 0, 0, 0, 0, 0, 0, 150, 96, 81, 7, 137 28, 29, 0, 0, 24, 25, 0, 32, 0, 0, 138 0, 22, 0, 0, 0, 31, 5, 0, 30, 0, 139 0, 33, 0, 23, 140 }; 141 static short yydgoto[] = { 1, 142 10, 11, 20, 104, 19, 2, 95, 370, 98, 359, 143 3, 12, 13, 70, 375, 285, 72, 73, 74, 75, 144 76, 77, 78, 79, 291, 81, 292, 281, 283, 286, 145 294, 282, 284, 122, 214, 100, 82, 257, 89, 91, 146 194, 327, 156, 289, 271, 225, 14, 83, 137, 84, 147 85, 86, 87, 15, 16, 17, 18, 93, 278, 148 }; 149 static short yysindex[] = { 0, 150 0, 0, -132, 0, 0, 0, -51, 0, 0, 0, 151 0, 0, 0, 0, 650, 0, 0, 0, -239, -215, 152 5, 0, 0, -215, 0, 0, 0, -31, -31, 0, 153 -24, 0, 2181, 0, 0, 11, 16, 32, 46, -34, 154 2181, 49, 72, 76, 1017, 977, -31, 1081, 1348, -134, 155 2181, 85, -31, 2181, 2181, 2181, 2181, 2181, 2181, 1388, 156 1428, 0, 2181, 2181, -31, -31, -31, -31, -150, 0, 157 337, 849, -13, -58, -48, 0, 0, 8, 97, 92, 158 116, 0, 0, 0, 0, 0, 0, 0, 52, 0, 159 -97, 0, -75, -97, 0, 0, 0, 0, 0, 2181, 160 146, 2181, 395, 52, -97, 0, 0, 0, 0, 0, 161 0, 150, 849, 153, 1468, 977, 0, 395, 0, -58, 162 116, 0, 2181, 0, 157, 0, 395, -8, 83, -52, 163 2181, 395, 1528, 0, 0, 0, -89, 0, 116, 107, 164 107, 107, -104, -104, 123, -37, 0, -73, 107, 107, 165 0, 0, 0, 0, 52, 0, 2181, 2181, 2181, 2181, 166 2181, 2181, 2181, 2181, 2181, 2181, 2181, 2181, 2181, 2181, 167 2181, 2181, 2181, 2181, 2181, 2181, 2181, 0, 0, -12, 168 2181, 1735, 2181, 2181, 2181, 2181, 2181, 2181, 1795, 0, 169 2181, 0, 0, -64, -32, -64, 411, 0, 2181, 291, 170 0, -64, 2181, 2181, 2181, 2181, 187, 1854, 0, 0, 171 0, -29, 58, 189, 2181, 116, 1914, 2029, 0, 111, 172 0, 0, -26, -19, 0, 2181, 165, 0, 0, -241, 173 -241, 0, -241, -241, -241, -40, 0, 1618, 395, 1306, 174 185, 168, 849, 1235, 1129, 1169, 1268, 782, 235, 107, 175 107, 2181, 0, 2121, 2181, 0, 218, -46, 0, -3, 176 -68, 61, 106, 65, 108, 68, 0, 17, 849, 26, 177 -30, 2181, -30, 0, 236, 2181, 0, 2181, 52, -241, 178 0, 250, 0, 255, -241, 259, 260, 0, 248, 337, 179 0, 0, 262, 261, 2181, 0, 0, 0, 22, 0, 180 33, 0, 36, 0, 0, 0, 125, 2181, 2181, 71, 181 0, 50, 127, 2181, 182, 0, 0, 184, 0, 199, 182 0, 201, 0, 0, 0, 0, 0, 272, 0, 0, 183 354, 0, 0, 216, 216, 216, 216, 2181, 216, 2181, 184 301, 0, 0, 0, 0, 167, 2418, 228, 0, 0, 185 319, 0, 0, 0, 0, 0, 0, 0, -150, -150, 186 -123, -123, 322, -150, 308, 216, 0, 0, 0, 0, 187 0, 0, 216, 334, 0, 0, 216, 0, 1854, -150, 188 449, 0, 2181, -150, 340, 0, 0, 355, 0, 216, 189 216, 0, -123, 0, 190 }; 191 static short yyrindex[] = { 0, 192 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 193 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, 194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196 40, 455, 0, 0, 2367, 2469, 0, 0, 0, 0, 197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 199 3, 943, 2515, 2603, 2653, 0, 0, 2708, 2754, 0, 200 -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201 -33, 0, 0, -33, 0, 0, 0, 0, 0, 2469, 202 0, 0, 3919, 0, -102, 0, 0, 0, 0, 0, 203 0, 0, 3216, 0, 0, 359, 0, 3955, 526, 587, 204 2276, 0, 0, 0, 2801, 0, 3999, 2603, 0, 0, 205 2469, 4043, 0, 0, 0, 0, 2858, 0, 3225, 3461, 206 3527, 3588, 3352, 3399, 2908, 0, 0, 0, 3635, 3680, 207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211 2990, 0, 0, -28, 0, -28, 917, 0, 359, 0, 212 0, 295, 379, 0, 0, 0, 0, 370, 0, 0, 213 0, 0, 390, 0, 0, 3291, 0, 0, 0, 0, 214 0, 0, 0, 3056, 0, 0, 3113, 0, 0, 14, 215 35, 0, 55, 91, 117, 1991, 0, 4235, 4090, 1826, 216 3807, 3871, 3283, 0, -22, 4191, 4155, 4145, 1048, 3719, 217 3763, 0, 0, 0, 0, 0, 3163, 0, 0, 0, 218 0, 0, 0, 0, 0, 0, 0, 0, 4267, -10, 219 0, 375, 0, 0, 0, 0, 0, 2469, 0, 136, 220 0, 0, 0, 0, 400, 0, 0, 0, 0, 139, 221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223 0, 0, 0, 359, 0, 0, 0, 0, 0, 0, 224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 226 0, 0, 0, 0, 0, 0, 4080, 0, 0, 0, 227 0, 0, 0, 0, 0, 0, 0, 0, 119, 119, 228 179, 179, 0, 119, 0, 0, 0, 0, 0, 0, 229 0, 0, 0, 0, 0, 0, 0, 0, 415, 119, 230 917, 0, 0, 119, 0, 0, 0, 0, 0, 0, 231 0, 0, 179, 0, 232 }; 233 static short yygindex[] = { 0, 234 0, 0, 196, 425, 0, 0, -2, 0, 37, 634, 235 -94, 0, 0, 0, -323, -15, 2445, 0, 999, 414, 236 417, 0, 0, 0, 463, -43, 0, 0, 321, -198, 237 103, 147, 280, -91, -185, 1, 0, 0, 0, 464, 238 -44, 222, 338, 0, -179, 0, 0, 0, 0, 0, 239 0, 0, 0, 0, 0, 0, 0, 0, 0, 240 }; 241 #define YYTABLESIZE 4568 242 static short yytable[] = { 71, 243 197, 65, 121, 227, 65, 111, 220, 22, 198, 293, 244 139, 296, 315, 275, 305, 102, 273, 88, 113, 228, 245 60, 113, 279, 65, 317, 60, 182, 254, 325, 101, 246 62, 218, 185, 130, 75, 113, 113, 316, 376, 221, 247 113, 90, 187, 15, 146, 148, 123, 124, 64, 196, 248 106, 69, 75, 138, 18, 107, 121, 323, 162, 163, 249 202, 15, 342, 92, 184, 151, 152, 153, 154, 394, 250 113, 108, 18, 343, 186, 39, 344, 183, 255, 216, 251 159, 117, 185, 159, 126, 109, 75, 121, 114, 60, 252 349, 26, 26, 39, 62, 16, 341, 159, 159, 212, 253 213, 297, 159, 203, 204, 205, 206, 207, 208, 181, 254 252, 115, 64, 16, 184, 116, 215, 223, 26, 318, 255 65, 67, 131, 320, 133, 192, 322, 155, 351, 348, 256 188, 17, 159, 4, 5, 6, 189, 7, 8, 363, 257 201, 230, 231, 233, 234, 235, 236, 237, 66, 17, 258 190, 26, 373, 374, 26, 26, 26, 20, 26, 191, 259 26, 26, 193, 26, 9, 258, 260, 261, 262, 263, 260 264, 265, 266, 268, 26, 20, 38, 26, 21, 40, 261 328, 195, 26, 213, 388, 199, 332, 280, 231, 209, 262 231, 229, 290, 210, 38, 60, 217, 15, 319, 299, 263 321, 301, 303, 23, 24, 21, 295, 219, 224, 26, 264 307, 21, 180, 226, 21, 21, 21, 345, 21, 350, 265 21, 21, 65, 21, 272, 96, 162, 163, 121, 298, 266 97, 162, 163, 270, 121, 304, 310, 21, 312, 313, 267 306, 26, 21, 26, 26, 253, 1, 162, 163, 113, 268 113, 113, 113, 162, 163, 308, 113, 314, 113, 367, 269 163, 110, 162, 163, 60, 75, 75, 75, 75, 21, 270 162, 163, 75, 162, 163, 381, 330, 113, 113, 44, 271 113, 113, 44, 44, 44, 324, 44, 338, 44, 44, 272 334, 44, 346, 75, 75, 335, 162, 163, 213, 336, 273 337, 21, 339, 21, 21, 44, 352, 326, 353, 326, 274 44, 159, 159, 159, 159, 333, 162, 163, 159, 340, 275 159, 162, 163, 354, 280, 355, 159, 159, 159, 159, 276 356, 277, 162, 163, 276, 162, 163, 44, 358, 159, 277 159, 366, 159, 159, 159, 159, 159, 159, 159, 162, 278 163, 159, 368, 170, 159, 159, 159, 162, 163, 369, 279 162, 163, 377, 71, 162, 163, 379, 162, 163, 44, 280 162, 163, 44, 383, 26, 26, 26, 26, 26, 26, 281 390, 26, 26, 26, 26, 26, 26, 26, 26, 26, 282 26, 26, 26, 26, 357, 391, 53, 26, 26, 184, 283 26, 26, 26, 26, 26, 162, 163, 162, 163, 26, 284 26, 26, 26, 26, 26, 26, 170, 62, 177, 37, 285 26, 178, 179, 180, 162, 163, 162, 163, 35, 26, 286 185, 26, 26, 182, 21, 21, 21, 21, 21, 21, 287 40, 21, 21, 21, 21, 21, 21, 21, 21, 21, 288 21, 21, 21, 21, 37, 35, 167, 21, 21, 105, 289 21, 21, 21, 21, 21, 135, 162, 163, 136, 21, 290 21, 21, 21, 21, 21, 21, 176, 80, 232, 177, 291 21, 385, 178, 179, 180, 287, 365, 94, 0, 21, 292 0, 21, 21, 176, 329, 166, 177, 0, 166, 178, 293 179, 180, 44, 44, 44, 44, 44, 44, 0, 44, 294 44, 44, 166, 166, 0, 44, 0, 166, 44, 44, 295 44, 44, 0, 167, 168, 44, 44, 0, 44, 44, 296 44, 44, 44, 0, 0, 274, 0, 44, 44, 44, 297 44, 44, 44, 176, 0, 0, 177, 166, 44, 178, 298 179, 180, 0, 0, 0, 0, 0, 44, 194, 44, 299 44, 194, 194, 194, 0, 194, 173, 194, 194, 173, 300 194, 164, 0, 387, 0, 0, 0, 165, 166, 167, 301 168, 0, 0, 173, 173, 0, 0, 0, 173, 194, 302 0, 0, 0, 169, 171, 172, 173, 174, 175, 176, 303 0, 0, 177, 0, 0, 178, 179, 180, 157, 158, 304 159, 160, 0, 0, 0, 161, 194, 0, 173, 195, 305 0, 0, 195, 195, 195, 0, 195, 144, 195, 195, 306 144, 195, 0, 0, 164, 0, 162, 163, 0, 0, 307 165, 166, 167, 168, 144, 144, 0, 0, 0, 144, 308 195, 194, 0, 0, 0, 0, 169, 171, 172, 173, 309 174, 175, 176, 0, 0, 177, 0, 0, 178, 179, 310 180, 0, 0, 0, 0, 0, 4, 5, 6, 144, 311 7, 8, 55, 167, 168, 65, 67, 53, 0, 60, 312 0, 68, 64, 0, 63, 0, 371, 372, 0, 0, 313 0, 378, 175, 176, 0, 0, 177, 9, 62, 178, 314 179, 180, 195, 66, 4, 5, 6, 386, 7, 8, 315 0, 389, 0, 0, 0, 0, 166, 166, 166, 166, 316 0, 0, 0, 166, 0, 166, 0, 0, 0, 0, 317 61, 166, 166, 166, 166, 9, 0, 0, 0, 0, 318 0, 0, 0, 0, 166, 166, 0, 166, 166, 166, 319 166, 166, 166, 166, 0, 0, 166, 0, 0, 166, 320 166, 166, 26, 0, 0, 56, 0, 0, 0, 0, 321 0, 0, 194, 194, 194, 194, 194, 0, 194, 194, 322 194, 0, 0, 0, 194, 0, 0, 173, 173, 173, 323 173, 0, 0, 0, 173, 194, 173, 194, 194, 194, 324 194, 194, 173, 173, 173, 173, 194, 194, 194, 194, 325 194, 194, 0, 0, 0, 173, 173, 194, 173, 173, 326 173, 173, 173, 173, 173, 0, 194, 173, 194, 194, 327 173, 173, 173, 195, 195, 195, 195, 195, 0, 195, 328 195, 195, 0, 0, 0, 195, 0, 0, 144, 144, 329 144, 144, 0, 0, 0, 144, 195, 144, 195, 195, 330 195, 195, 195, 144, 144, 144, 144, 195, 195, 195, 331 195, 195, 195, 0, 0, 0, 144, 144, 195, 144, 332 144, 144, 144, 144, 144, 144, 0, 195, 144, 195, 333 195, 144, 144, 144, 0, 25, 27, 28, 29, 30, 334 31, 170, 32, 33, 34, 0, 0, 0, 35, 0, 335 0, 36, 37, 38, 39, 0, 0, 0, 40, 41, 336 0, 42, 43, 44, 45, 46, 0, 0, 0, 0, 337 47, 48, 49, 50, 51, 52, 0, 0, 0, 44, 338 0, 54, 44, 44, 44, 0, 44, 0, 44, 44, 339 57, 44, 58, 59, 0, 0, 0, 0, 360, 361, 340 362, 0, 364, 0, 0, 44, 0, 0, 0, 0, 341 44, 0, 0, 78, 0, 0, 78, 0, 0, 0, 342 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 343 78, 78, 0, 0, 0, 0, 382, 44, 0, 55, 344 384, 0, 65, 67, 53, 0, 60, 0, 68, 64, 345 0, 63, 0, 392, 393, 0, 99, 99, 0, 0, 346 0, 0, 0, 0, 0, 78, 0, 0, 112, 44, 347 66, 0, 44, 0, 120, 99, 128, 0, 0, 55, 348 134, 99, 65, 67, 53, 0, 60, 0, 68, 64, 349 0, 63, 0, 99, 99, 99, 99, 61, 165, 166, 350 167, 168, 0, 0, 0, 0, 0, 0, 0, 0, 351 66, 0, 0, 0, 0, 0, 0, 0, 106, 175, 352 176, 106, 0, 177, 0, 0, 178, 179, 180, 26, 353 0, 0, 56, 0, 0, 106, 106, 61, 0, 0, 354 106, 0, 0, 55, 120, 0, 65, 67, 53, 0, 355 60, 0, 68, 64, 0, 63, 0, 0, 0, 164, 356 0, 0, 0, 0, 0, 165, 166, 167, 168, 26, 357 106, 0, 56, 0, 66, 0, 0, 0, 0, 0, 358 0, 169, 171, 172, 173, 174, 175, 176, 0, 0, 359 177, 0, 0, 178, 179, 180, 0, 0, 0, 0, 360 0, 61, 44, 44, 44, 44, 44, 44, 256, 44, 361 44, 44, 0, 0, 0, 44, 0, 0, 44, 44, 362 44, 44, 0, 0, 0, 44, 44, 0, 44, 44, 363 44, 44, 44, 26, 0, 288, 56, 44, 44, 44, 364 44, 44, 44, 0, 78, 78, 78, 78, 44, 0, 365 0, 78, 0, 0, 0, 0, 0, 44, 0, 44, 366 44, 0, 0, 119, 28, 29, 30, 31, 97, 32, 367 33, 34, 78, 78, 0, 35, 0, 0, 0, 0, 368 0, 0, 0, 0, 0, 0, 41, 0, 42, 43, 369 44, 45, 46, 0, 0, 0, 0, 47, 48, 49, 370 50, 51, 52, 27, 28, 29, 30, 31, 54, 32, 371 33, 34, 0, 0, 0, 35, 0, 57, 0, 58, 372 59, 0, 309, 0, 0, 0, 41, 170, 42, 43, 373 44, 45, 46, 0, 0, 0, 0, 47, 48, 49, 374 50, 51, 52, 0, 0, 0, 0, 0, 54, 106, 375 106, 106, 106, 0, 0, 0, 106, 57, 106, 58, 376 59, 0, 0, 0, 106, 106, 0, 125, 28, 29, 377 30, 31, 0, 32, 33, 34, 0, 106, 106, 35, 378 106, 106, 106, 106, 106, 106, 0, 0, 0, 0, 379 41, 0, 42, 43, 44, 45, 46, 0, 0, 0, 380 0, 47, 48, 49, 50, 51, 52, 0, 0, 0, 381 55, 0, 54, 65, 67, 53, 0, 60, 0, 68, 382 64, 57, 63, 58, 59, 0, 0, 0, 0, 0, 383 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 384 0, 66, 0, 0, 0, 165, 166, 167, 168, 0, 385 55, 0, 0, 65, 67, 53, 0, 60, 145, 68, 386 64, 0, 63, 172, 173, 174, 175, 176, 61, 0, 387 177, 0, 0, 178, 179, 180, 0, 0, 0, 0, 388 0, 66, 0, 0, 0, 165, 166, 167, 168, 0, 389 55, 0, 0, 65, 67, 53, 0, 60, 0, 68, 390 64, 0, 63, 56, 173, 174, 175, 176, 61, 0, 391 177, 0, 0, 178, 179, 180, 0, 0, 0, 0, 392 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 393 55, 0, 0, 65, 67, 53, 0, 60, 211, 68, 394 64, 0, 63, 56, 0, 164, 0, 0, 61, 0, 395 147, 165, 166, 167, 168, 0, 0, 0, 0, 0, 396 0, 66, 0, 0, 0, 0, 0, 169, 171, 172, 397 173, 174, 175, 176, 0, 0, 177, 0, 0, 178, 398 179, 180, 0, 56, 165, 166, 167, 168, 61, 0, 399 55, 0, 0, 65, 67, 53, 0, 60, 222, 68, 400 64, 0, 63, 0, 174, 175, 176, 0, 0, 177, 401 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 402 0, 66, 165, 56, 167, 168, 0, 0, 0, 0, 403 0, 0, 0, 0, 27, 28, 29, 30, 31, 0, 404 32, 33, 34, 175, 176, 0, 35, 177, 61, 0, 405 178, 179, 180, 0, 0, 0, 0, 41, 0, 42, 406 43, 44, 45, 46, 0, 0, 0, 0, 47, 48, 407 49, 50, 51, 52, 27, 28, 29, 30, 31, 54, 408 32, 33, 34, 56, 0, 0, 35, 0, 57, 0, 409 58, 59, 0, 0, 0, 0, 0, 41, 0, 42, 410 43, 44, 45, 46, 0, 0, 0, 0, 47, 48, 411 49, 50, 51, 52, 27, 28, 29, 30, 31, 54, 412 32, 33, 34, 0, 0, 0, 35, 0, 57, 0, 413 58, 59, 0, 0, 0, 0, 0, 41, 0, 42, 414 43, 44, 45, 46, 0, 0, 0, 0, 47, 48, 415 49, 50, 51, 52, 27, 28, 29, 30, 31, 54, 416 32, 33, 34, 0, 0, 0, 35, 0, 57, 0, 417 58, 59, 0, 0, 0, 0, 0, 41, 0, 42, 418 43, 44, 45, 46, 0, 0, 0, 0, 47, 48, 419 49, 50, 51, 52, 0, 0, 0, 55, 0, 54, 420 65, 67, 53, 0, 60, 259, 68, 64, 57, 63, 421 58, 59, 0, 0, 27, 28, 29, 30, 31, 0, 422 32, 33, 34, 0, 0, 0, 35, 0, 66, 0, 423 0, 0, 0, 0, 0, 0, 0, 41, 0, 42, 424 43, 44, 45, 46, 0, 0, 0, 0, 47, 48, 425 49, 50, 51, 52, 0, 61, 0, 55, 0, 54, 426 65, 67, 53, 0, 60, 267, 68, 64, 57, 63, 427 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 428 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 429 56, 0, 0, 0, 0, 0, 108, 0, 0, 108, 430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 431 0, 0, 0, 108, 108, 61, 55, 0, 108, 65, 432 67, 53, 0, 60, 0, 68, 64, 0, 63, 0, 433 0, 0, 0, 0, 165, 166, 167, 168, 0, 0, 434 0, 0, 0, 0, 0, 0, 0, 66, 108, 0, 435 56, 171, 172, 173, 174, 175, 176, 0, 0, 177, 436 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 437 0, 0, 0, 0, 61, 0, 55, 0, 0, 65, 438 67, 53, 0, 60, 300, 68, 64, 0, 63, 0, 439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440 0, 0, 0, 0, 0, 0, 0, 66, 0, 56, 441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 442 0, 27, 28, 29, 30, 31, 0, 32, 33, 34, 443 0, 0, 0, 35, 61, 0, 0, 0, 0, 0, 444 0, 0, 0, 0, 41, 0, 42, 43, 44, 45, 445 46, 0, 0, 0, 0, 47, 48, 49, 50, 51, 446 52, 74, 0, 0, 74, 0, 54, 0, 0, 56, 447 0, 0, 0, 0, 0, 57, 0, 58, 59, 74, 448 0, 27, 28, 29, 30, 31, 0, 32, 33, 34, 449 0, 55, 0, 35, 65, 67, 53, 0, 60, 302, 450 68, 64, 0, 63, 41, 0, 42, 43, 44, 45, 451 46, 0, 0, 74, 0, 47, 48, 49, 50, 51, 452 52, 0, 66, 0, 0, 0, 54, 108, 108, 108, 453 108, 0, 0, 0, 108, 57, 108, 58, 59, 25, 454 27, 28, 29, 30, 31, 0, 32, 33, 34, 61, 455 0, 0, 35, 0, 0, 108, 108, 0, 108, 108, 456 108, 108, 108, 41, 0, 42, 43, 44, 45, 46, 457 0, 0, 0, 0, 47, 48, 49, 50, 51, 52, 458 0, 0, 0, 55, 56, 54, 65, 67, 53, 0, 459 60, 311, 68, 64, 57, 63, 58, 59, 0, 0, 460 27, 28, 29, 30, 31, 0, 32, 33, 34, 0, 461 0, 0, 35, 0, 66, 0, 0, 0, 0, 0, 462 0, 0, 0, 41, 0, 42, 43, 44, 45, 46, 463 0, 0, 0, 0, 47, 48, 49, 50, 51, 52, 464 0, 61, 0, 55, 0, 54, 65, 67, 53, 0, 465 60, 0, 68, 64, 57, 63, 58, 59, 0, 0, 466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 467 0, 0, 0, 0, 66, 0, 56, 0, 0, 0, 468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469 0, 0, 74, 74, 74, 74, 0, 0, 0, 74, 470 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 471 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 472 74, 32, 33, 34, 0, 0, 0, 35, 0, 0, 473 0, 0, 0, 0, 0, 0, 56, 0, 41, 0, 474 42, 43, 44, 45, 46, 0, 183, 0, 0, 47, 475 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, 476 54, 0, 0, 183, 183, 0, 0, 0, 183, 57, 477 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 480 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 481 30, 31, 0, 32, 33, 34, 0, 0, 0, 35, 482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 483 41, 0, 42, 43, 44, 45, 46, 162, 0, 0, 484 162, 47, 48, 49, 50, 51, 52, 0, 0, 0, 485 0, 0, 54, 0, 162, 162, 0, 0, 0, 162, 486 0, 57, 0, 58, 59, 0, 0, 27, 28, 29, 487 30, 31, 0, 32, 33, 34, 0, 0, 0, 35, 488 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 489 41, 0, 42, 43, 44, 45, 46, 0, 0, 0, 490 0, 47, 48, 49, 50, 51, 52, 103, 0, 0, 491 170, 0, 54, 0, 0, 113, 0, 0, 0, 118, 492 0, 57, 127, 58, 59, 132, 0, 0, 0, 140, 493 141, 142, 143, 144, 0, 0, 0, 149, 150, 182, 494 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 495 0, 0, 0, 0, 0, 0, 182, 182, 0, 0, 496 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 497 0, 0, 0, 0, 0, 0, 200, 183, 183, 183, 498 183, 0, 0, 0, 183, 149, 183, 0, 149, 0, 499 0, 182, 183, 183, 183, 183, 0, 0, 0, 0, 500 0, 0, 149, 149, 0, 183, 183, 149, 183, 183, 501 183, 183, 183, 183, 183, 0, 0, 183, 0, 0, 502 183, 183, 183, 0, 0, 0, 0, 0, 0, 0, 503 0, 0, 0, 0, 0, 0, 0, 149, 238, 239, 504 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 505 250, 251, 0, 0, 0, 0, 0, 0, 0, 0, 506 0, 0, 0, 0, 0, 269, 0, 0, 162, 162, 507 162, 162, 0, 144, 0, 162, 144, 162, 0, 0, 508 0, 0, 0, 162, 162, 162, 162, 0, 0, 0, 509 144, 144, 0, 0, 0, 144, 162, 162, 0, 162, 510 162, 162, 162, 162, 162, 162, 0, 0, 162, 0, 511 0, 162, 162, 162, 0, 0, 0, 0, 0, 0, 512 0, 0, 0, 147, 0, 144, 147, 0, 164, 0, 513 0, 0, 0, 0, 165, 166, 167, 168, 0, 0, 514 147, 147, 0, 0, 0, 147, 0, 0, 0, 0, 515 331, 171, 172, 173, 174, 175, 176, 0, 0, 177, 516 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 517 182, 182, 182, 182, 0, 147, 0, 182, 145, 182, 518 0, 145, 0, 347, 0, 182, 182, 182, 182, 0, 519 0, 0, 0, 0, 0, 145, 145, 0, 182, 182, 520 145, 182, 182, 182, 182, 182, 182, 182, 0, 0, 521 182, 0, 0, 182, 182, 182, 149, 149, 149, 149, 522 0, 0, 0, 149, 155, 149, 0, 155, 0, 0, 523 145, 149, 149, 149, 149, 0, 0, 0, 0, 0, 524 0, 155, 155, 0, 149, 149, 155, 149, 149, 149, 525 149, 149, 149, 149, 0, 0, 149, 0, 0, 149, 526 149, 149, 0, 0, 0, 0, 0, 0, 0, 0, 527 0, 173, 0, 0, 173, 0, 155, 0, 0, 0, 528 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 529 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 530 0, 0, 0, 0, 144, 144, 144, 144, 0, 0, 531 0, 144, 0, 144, 0, 0, 0, 0, 0, 144, 532 144, 144, 144, 173, 0, 0, 0, 0, 176, 0, 533 0, 176, 144, 144, 0, 144, 144, 144, 144, 144, 534 144, 144, 0, 0, 144, 176, 176, 144, 144, 144, 535 176, 0, 0, 0, 147, 147, 147, 147, 0, 0, 536 0, 147, 0, 147, 0, 0, 0, 0, 0, 147, 537 147, 147, 147, 0, 0, 0, 0, 0, 143, 0, 538 176, 143, 147, 147, 0, 147, 147, 147, 147, 147, 539 147, 147, 0, 0, 147, 143, 143, 147, 147, 147, 540 143, 0, 0, 0, 0, 0, 0, 0, 0, 145, 541 145, 145, 145, 0, 0, 0, 145, 0, 145, 0, 542 0, 0, 0, 0, 145, 145, 145, 145, 0, 0, 543 143, 0, 0, 0, 0, 0, 0, 145, 145, 0, 544 145, 145, 145, 145, 145, 145, 145, 0, 0, 145, 545 0, 0, 145, 145, 145, 155, 155, 155, 155, 0, 546 76, 0, 155, 76, 155, 0, 0, 0, 0, 0, 547 155, 155, 155, 155, 0, 0, 0, 76, 76, 0, 548 0, 0, 76, 155, 155, 0, 155, 155, 155, 155, 549 155, 155, 155, 0, 0, 155, 0, 0, 155, 155, 550 155, 0, 173, 173, 173, 173, 0, 0, 0, 173, 551 0, 173, 76, 0, 0, 0, 0, 173, 173, 173, 552 173, 0, 0, 0, 0, 0, 66, 0, 0, 66, 553 173, 173, 0, 173, 173, 173, 173, 173, 173, 173, 554 0, 0, 173, 66, 66, 173, 173, 173, 66, 0, 555 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 556 176, 176, 176, 0, 0, 0, 176, 0, 176, 0, 557 0, 0, 0, 0, 176, 176, 176, 176, 66, 0, 558 0, 0, 0, 142, 0, 0, 142, 176, 176, 0, 559 176, 176, 176, 176, 176, 176, 176, 0, 0, 176, 560 142, 142, 176, 176, 176, 142, 0, 0, 0, 143, 561 143, 143, 143, 0, 0, 0, 143, 0, 143, 0, 562 0, 0, 0, 0, 143, 143, 143, 143, 0, 0, 563 0, 0, 0, 82, 0, 142, 82, 143, 143, 0, 564 143, 143, 143, 143, 143, 143, 143, 0, 0, 143, 565 82, 82, 143, 143, 143, 82, 0, 0, 0, 0, 566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568 0, 0, 0, 0, 0, 82, 160, 0, 0, 160, 569 0, 76, 76, 76, 76, 161, 0, 0, 76, 0, 570 76, 0, 0, 160, 160, 0, 76, 76, 76, 76, 571 0, 0, 161, 161, 0, 0, 0, 161, 0, 76, 572 76, 0, 76, 76, 76, 76, 76, 76, 76, 0, 573 0, 76, 0, 0, 76, 76, 76, 0, 160, 0, 574 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 575 0, 0, 0, 102, 0, 0, 102, 66, 66, 66, 576 66, 79, 0, 0, 66, 0, 66, 0, 0, 0, 577 102, 102, 66, 66, 66, 66, 0, 0, 79, 79, 578 0, 0, 0, 79, 0, 66, 66, 0, 66, 66, 579 66, 66, 66, 66, 66, 0, 0, 66, 0, 0, 580 66, 66, 66, 0, 0, 102, 0, 0, 0, 0, 581 0, 0, 0, 79, 142, 142, 142, 142, 0, 0, 582 0, 142, 121, 142, 0, 121, 0, 0, 0, 142, 583 142, 142, 142, 0, 0, 0, 0, 0, 0, 121, 584 121, 0, 142, 142, 121, 142, 142, 142, 142, 142, 585 142, 142, 0, 0, 142, 0, 0, 142, 142, 142, 586 0, 0, 0, 0, 82, 82, 82, 82, 0, 122, 587 0, 82, 122, 82, 121, 0, 0, 0, 0, 82, 588 82, 82, 82, 0, 0, 0, 122, 122, 0, 0, 589 0, 122, 82, 82, 0, 82, 82, 82, 82, 82, 590 82, 82, 0, 0, 82, 0, 0, 82, 82, 82, 591 0, 0, 0, 0, 0, 0, 0, 160, 160, 160, 592 160, 122, 0, 0, 160, 0, 161, 161, 161, 161, 593 0, 117, 0, 161, 117, 161, 0, 0, 0, 0, 594 0, 161, 161, 161, 161, 160, 160, 0, 117, 117, 595 0, 0, 0, 117, 161, 161, 0, 161, 161, 161, 596 161, 161, 161, 161, 0, 0, 161, 0, 0, 161, 597 161, 161, 0, 0, 0, 0, 0, 0, 0, 0, 598 0, 0, 0, 117, 102, 102, 102, 102, 0, 0, 599 0, 102, 79, 79, 79, 79, 0, 118, 0, 79, 600 118, 79, 0, 0, 0, 0, 0, 79, 79, 79, 601 79, 0, 102, 102, 118, 118, 0, 0, 0, 118, 602 79, 79, 0, 79, 79, 79, 79, 79, 79, 79, 603 0, 0, 79, 0, 0, 79, 79, 79, 0, 0, 604 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 605 0, 0, 0, 121, 121, 121, 121, 0, 139, 0, 606 121, 139, 121, 0, 0, 0, 0, 0, 121, 121, 607 121, 121, 0, 0, 0, 139, 139, 0, 0, 0, 608 139, 121, 121, 0, 121, 121, 121, 121, 121, 121, 609 121, 0, 0, 121, 0, 0, 0, 0, 0, 0, 610 122, 122, 122, 122, 0, 115, 0, 122, 115, 122, 611 139, 0, 0, 0, 0, 122, 122, 122, 122, 0, 612 0, 0, 115, 115, 0, 0, 0, 115, 122, 122, 613 0, 122, 122, 122, 122, 122, 122, 122, 0, 0, 614 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 615 116, 0, 0, 116, 0, 0, 0, 115, 0, 0, 616 0, 0, 117, 117, 117, 117, 0, 116, 116, 117, 617 0, 117, 116, 0, 0, 0, 0, 117, 117, 117, 618 117, 0, 0, 0, 0, 0, 0, 0, 0, 114, 619 117, 117, 114, 117, 117, 117, 117, 117, 117, 117, 620 0, 0, 116, 0, 0, 0, 114, 114, 0, 0, 621 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, 622 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 623 118, 118, 0, 103, 0, 118, 103, 118, 0, 0, 624 0, 114, 0, 118, 118, 118, 118, 0, 0, 0, 625 103, 103, 0, 0, 0, 103, 118, 118, 0, 118, 626 118, 118, 118, 118, 118, 118, 0, 0, 0, 0, 627 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 628 104, 0, 0, 0, 0, 103, 0, 0, 0, 139, 629 139, 139, 139, 0, 104, 104, 139, 0, 139, 104, 630 0, 0, 0, 0, 139, 139, 139, 139, 0, 0, 631 0, 0, 0, 0, 0, 0, 0, 139, 139, 0, 632 139, 139, 139, 139, 139, 139, 139, 0, 0, 104, 633 0, 0, 0, 0, 0, 0, 115, 115, 115, 115, 634 0, 105, 0, 115, 105, 115, 0, 0, 0, 0, 635 0, 115, 115, 115, 115, 0, 0, 0, 105, 105, 636 0, 0, 0, 105, 115, 115, 0, 115, 115, 115, 637 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 638 0, 116, 116, 116, 116, 0, 0, 0, 116, 165, 639 116, 0, 165, 105, 0, 0, 116, 116, 116, 116, 640 0, 0, 0, 0, 0, 0, 165, 165, 0, 116, 641 116, 165, 116, 116, 116, 116, 116, 116, 116, 0, 642 114, 114, 114, 114, 0, 164, 0, 114, 164, 114, 643 0, 0, 0, 0, 0, 114, 114, 114, 114, 0, 644 0, 165, 164, 164, 0, 0, 0, 164, 114, 114, 645 0, 114, 114, 114, 114, 114, 114, 114, 0, 0, 646 0, 0, 0, 0, 103, 103, 103, 103, 0, 128, 647 0, 103, 128, 103, 0, 0, 0, 164, 0, 103, 648 103, 103, 103, 0, 0, 0, 128, 128, 0, 0, 649 0, 128, 103, 103, 0, 103, 103, 103, 103, 103, 650 103, 103, 0, 0, 0, 0, 0, 0, 104, 104, 651 104, 104, 0, 141, 0, 104, 141, 104, 0, 0, 652 0, 128, 0, 104, 104, 104, 104, 0, 0, 0, 653 141, 141, 0, 0, 0, 141, 104, 104, 0, 104, 654 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 655 138, 0, 0, 138, 0, 0, 0, 0, 0, 0, 656 107, 0, 0, 107, 0, 141, 0, 138, 138, 0, 657 0, 0, 105, 105, 105, 105, 0, 107, 107, 105, 658 0, 105, 107, 0, 0, 0, 0, 105, 105, 0, 659 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 660 105, 105, 138, 105, 105, 105, 105, 105, 105, 0, 661 0, 0, 107, 0, 0, 109, 0, 0, 109, 0, 662 165, 165, 165, 165, 0, 110, 0, 165, 110, 165, 663 0, 0, 109, 109, 0, 165, 165, 109, 0, 0, 664 0, 0, 110, 110, 0, 0, 0, 110, 165, 165, 665 0, 165, 165, 165, 165, 165, 164, 164, 164, 164, 666 0, 112, 0, 164, 112, 164, 0, 109, 0, 0, 667 0, 164, 164, 0, 0, 0, 0, 110, 112, 112, 668 0, 0, 0, 112, 164, 164, 0, 164, 164, 164, 669 164, 164, 0, 0, 0, 0, 0, 0, 0, 0, 670 128, 128, 128, 128, 0, 111, 0, 128, 111, 128, 671 0, 0, 0, 112, 0, 128, 128, 0, 0, 0, 672 0, 0, 111, 111, 0, 0, 0, 111, 128, 128, 673 0, 128, 128, 128, 128, 128, 0, 77, 0, 0, 674 77, 0, 0, 0, 141, 141, 141, 141, 0, 0, 675 0, 141, 0, 141, 77, 77, 0, 111, 0, 141, 676 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 677 0, 0, 141, 141, 0, 141, 141, 141, 141, 141, 678 0, 138, 138, 138, 138, 0, 0, 0, 138, 77, 679 0, 107, 107, 107, 107, 0, 0, 0, 107, 0, 680 107, 0, 0, 0, 0, 0, 0, 107, 0, 138, 681 138, 0, 138, 0, 0, 0, 0, 0, 0, 107, 682 107, 0, 107, 107, 107, 107, 107, 0, 0, 0, 683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684 0, 0, 0, 0, 0, 0, 109, 109, 109, 109, 685 0, 0, 0, 109, 0, 109, 110, 110, 110, 110, 686 0, 0, 0, 110, 0, 110, 0, 0, 0, 0, 687 0, 0, 0, 0, 109, 109, 0, 109, 109, 109, 688 109, 109, 0, 0, 110, 110, 0, 110, 110, 110, 689 110, 0, 112, 112, 112, 112, 0, 0, 0, 112, 690 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 692 112, 112, 0, 112, 112, 112, 0, 0, 0, 0, 693 0, 0, 0, 0, 0, 0, 111, 111, 111, 111, 694 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 696 0, 0, 0, 0, 111, 111, 0, 111, 77, 77, 697 77, 77, 0, 0, 0, 77, 0, 0, 0, 0, 698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 699 0, 0, 0, 0, 0, 0, 77, 77, 700 }; 701 static short yycheck[] = { 15, 702 95, 36, 46, 41, 36, 40, 59, 59, 100, 208, 703 54, 41, 59, 199, 41, 40, 196, 257, 41, 93, 704 123, 44, 202, 36, 93, 59, 40, 40, 59, 29, 705 59, 40, 91, 49, 41, 58, 59, 41, 362, 131, 706 63, 257, 91, 41, 60, 61, 46, 47, 59, 94, 707 40, 15, 59, 53, 41, 40, 100, 41, 300, 301, 708 105, 59, 41, 59, 123, 65, 66, 67, 68, 393, 709 93, 40, 59, 41, 123, 41, 41, 91, 91, 123, 710 41, 45, 91, 44, 48, 40, 93, 131, 40, 123, 711 41, 123, 123, 59, 123, 41, 295, 58, 59, 115, 712 116, 44, 63, 106, 107, 108, 109, 110, 111, 123, 713 123, 40, 123, 59, 123, 40, 116, 133, 0, 59, 714 36, 37, 257, 59, 40, 89, 59, 278, 314, 59, 715 123, 41, 93, 266, 267, 268, 40, 270, 271, 338, 716 104, 157, 158, 159, 160, 161, 162, 163, 64, 59, 717 59, 33, 276, 277, 36, 37, 38, 41, 40, 44, 718 42, 43, 260, 45, 297, 181, 182, 183, 184, 185, 719 186, 187, 188, 189, 123, 59, 41, 59, 0, 41, 720 272, 257, 64, 199, 383, 40, 278, 203, 204, 40, 721 206, 155, 208, 41, 59, 298, 40, 59, 93, 215, 722 93, 217, 218, 8, 9, 257, 209, 125, 298, 91, 723 226, 33, 317, 91, 36, 37, 38, 93, 40, 93, 724 42, 43, 36, 45, 257, 257, 300, 301, 272, 41, 725 262, 300, 301, 298, 278, 125, 252, 59, 254, 255, 726 260, 123, 64, 125, 126, 258, 0, 300, 301, 272, 727 273, 274, 275, 300, 301, 91, 279, 40, 281, 93, 728 301, 296, 300, 301, 298, 272, 273, 274, 275, 91, 729 300, 301, 279, 300, 301, 370, 41, 300, 301, 33, 730 303, 304, 36, 37, 38, 260, 40, 40, 42, 43, 731 41, 45, 308, 300, 301, 41, 300, 301, 314, 41, 732 41, 123, 41, 125, 126, 59, 125, 271, 125, 273, 733 64, 272, 273, 274, 275, 279, 300, 301, 279, 59, 734 281, 300, 301, 125, 340, 125, 287, 288, 289, 290, 735 59, 41, 300, 301, 44, 300, 301, 91, 123, 300, 736 301, 41, 303, 304, 305, 306, 307, 308, 309, 300, 737 301, 312, 125, 63, 315, 316, 317, 300, 301, 41, 738 300, 301, 41, 379, 300, 301, 59, 300, 301, 123, 739 300, 301, 126, 40, 256, 257, 258, 259, 260, 261, 740 41, 263, 264, 265, 266, 267, 268, 269, 270, 271, 741 272, 273, 274, 275, 41, 41, 123, 279, 280, 41, 742 282, 283, 284, 285, 286, 300, 301, 300, 301, 291, 743 292, 293, 294, 295, 296, 297, 63, 123, 312, 41, 744 302, 315, 316, 317, 300, 301, 300, 301, 59, 311, 745 41, 313, 314, 59, 256, 257, 258, 259, 260, 261, 746 41, 263, 264, 265, 266, 267, 268, 269, 270, 271, 747 272, 273, 274, 275, 59, 41, 289, 279, 280, 35, 748 282, 283, 284, 285, 286, 52, 300, 301, 52, 291, 749 292, 293, 294, 295, 296, 297, 309, 15, 158, 312, 750 302, 379, 315, 316, 317, 206, 340, 24, -1, 311, 751 -1, 313, 314, 309, 273, 41, 312, -1, 44, 315, 752 316, 317, 256, 257, 258, 259, 260, 261, -1, 263, 753 264, 265, 58, 59, -1, 269, -1, 63, 272, 273, 754 274, 275, -1, 289, 290, 279, 280, -1, 282, 283, 755 284, 285, 286, -1, -1, 125, -1, 291, 292, 293, 756 294, 295, 296, 309, -1, -1, 312, 93, 302, 315, 757 316, 317, -1, -1, -1, -1, -1, 311, 33, 313, 758 314, 36, 37, 38, -1, 40, 41, 42, 43, 44, 759 45, 281, -1, 125, -1, -1, -1, 287, 288, 289, 760 290, -1, -1, 58, 59, -1, -1, -1, 63, 64, 761 -1, -1, -1, 303, 304, 305, 306, 307, 308, 309, 762 -1, -1, 312, -1, -1, 315, 316, 317, 272, 273, 763 274, 275, -1, -1, -1, 279, 91, -1, 93, 33, 764 -1, -1, 36, 37, 38, -1, 40, 41, 42, 43, 765 44, 45, -1, -1, 281, -1, 300, 301, -1, -1, 766 287, 288, 289, 290, 58, 59, -1, -1, -1, 63, 767 64, 126, -1, -1, -1, -1, 303, 304, 305, 306, 768 307, 308, 309, -1, -1, 312, -1, -1, 315, 316, 769 317, -1, -1, -1, -1, -1, 266, 267, 268, 93, 770 270, 271, 33, 289, 290, 36, 37, 38, -1, 40, 771 -1, 42, 43, -1, 45, -1, 359, 360, -1, -1, 772 -1, 364, 308, 309, -1, -1, 312, 297, 59, 315, 773 316, 317, 126, 64, 266, 267, 268, 380, 270, 271, 774 -1, 384, -1, -1, -1, -1, 272, 273, 274, 275, 775 -1, -1, -1, 279, -1, 281, -1, -1, -1, -1, 776 91, 287, 288, 289, 290, 297, -1, -1, -1, -1, 777 -1, -1, -1, -1, 300, 301, -1, 303, 304, 305, 778 306, 307, 308, 309, -1, -1, 312, -1, -1, 315, 779 316, 317, 123, -1, -1, 126, -1, -1, -1, -1, 780 -1, -1, 257, 258, 259, 260, 261, -1, 263, 264, 781 265, -1, -1, -1, 269, -1, -1, 272, 273, 274, 782 275, -1, -1, -1, 279, 280, 281, 282, 283, 284, 783 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 784 295, 296, -1, -1, -1, 300, 301, 302, 303, 304, 785 305, 306, 307, 308, 309, -1, 311, 312, 313, 314, 786 315, 316, 317, 257, 258, 259, 260, 261, -1, 263, 787 264, 265, -1, -1, -1, 269, -1, -1, 272, 273, 788 274, 275, -1, -1, -1, 279, 280, 281, 282, 283, 789 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 790 294, 295, 296, -1, -1, -1, 300, 301, 302, 303, 791 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, 792 314, 315, 316, 317, -1, 256, 257, 258, 259, 260, 793 261, 63, 263, 264, 265, -1, -1, -1, 269, -1, 794 -1, 272, 273, 274, 275, -1, -1, -1, 279, 280, 795 -1, 282, 283, 284, 285, 286, -1, -1, -1, -1, 796 291, 292, 293, 294, 295, 296, -1, -1, -1, 33, 797 -1, 302, 36, 37, 38, -1, 40, -1, 42, 43, 798 311, 45, 313, 314, -1, -1, -1, -1, 335, 336, 799 337, -1, 339, -1, -1, 59, -1, -1, -1, -1, 800 64, -1, -1, 41, -1, -1, 44, -1, -1, -1, 801 -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, 802 58, 59, -1, -1, -1, -1, 373, 91, -1, 33, 803 377, -1, 36, 37, 38, -1, 40, -1, 42, 43, 804 -1, 45, -1, 390, 391, -1, 28, 29, -1, -1, 805 -1, -1, -1, -1, -1, 93, -1, -1, 40, 123, 806 64, -1, 126, -1, 46, 47, 48, -1, -1, 33, 807 52, 53, 36, 37, 38, -1, 40, -1, 42, 43, 808 -1, 45, -1, 65, 66, 67, 68, 91, 287, 288, 809 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, 810 64, -1, -1, -1, -1, -1, -1, -1, 41, 308, 811 309, 44, -1, 312, -1, -1, 315, 316, 317, 123, 812 -1, -1, 126, -1, -1, 58, 59, 91, -1, -1, 813 63, -1, -1, 33, 116, -1, 36, 37, 38, -1, 814 40, -1, 42, 43, -1, 45, -1, -1, -1, 281, 815 -1, -1, -1, -1, -1, 287, 288, 289, 290, 123, 816 93, -1, 126, -1, 64, -1, -1, -1, -1, -1, 817 -1, 303, 304, 305, 306, 307, 308, 309, -1, -1, 818 312, -1, -1, 315, 316, 317, -1, -1, -1, -1, 819 -1, 91, 256, 257, 258, 259, 260, 261, 180, 263, 820 264, 265, -1, -1, -1, 269, -1, -1, 272, 273, 821 274, 275, -1, -1, -1, 279, 280, -1, 282, 283, 822 284, 285, 286, 123, -1, 207, 126, 291, 292, 293, 823 294, 295, 296, -1, 272, 273, 274, 275, 302, -1, 824 -1, 279, -1, -1, -1, -1, -1, 311, -1, 313, 825 314, -1, -1, 257, 258, 259, 260, 261, 262, 263, 826 264, 265, 300, 301, -1, 269, -1, -1, -1, -1, 827 -1, -1, -1, -1, -1, -1, 280, -1, 282, 283, 828 284, 285, 286, -1, -1, -1, -1, 291, 292, 293, 829 294, 295, 296, 257, 258, 259, 260, 261, 302, 263, 830 264, 265, -1, -1, -1, 269, -1, 311, -1, 313, 831 314, -1, 58, -1, -1, -1, 280, 63, 282, 283, 832 284, 285, 286, -1, -1, -1, -1, 291, 292, 293, 833 294, 295, 296, -1, -1, -1, -1, -1, 302, 272, 834 273, 274, 275, -1, -1, -1, 279, 311, 281, 313, 835 314, -1, -1, -1, 287, 288, -1, 257, 258, 259, 836 260, 261, -1, 263, 264, 265, -1, 300, 301, 269, 837 303, 304, 305, 306, 307, 308, -1, -1, -1, -1, 838 280, -1, 282, 283, 284, 285, 286, -1, -1, -1, 839 -1, 291, 292, 293, 294, 295, 296, -1, -1, -1, 840 33, -1, 302, 36, 37, 38, -1, 40, -1, 42, 841 43, 311, 45, 313, 314, -1, -1, -1, -1, -1, 842 -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 843 -1, 64, -1, -1, -1, 287, 288, 289, 290, -1, 844 33, -1, -1, 36, 37, 38, -1, 40, 41, 42, 845 43, -1, 45, 305, 306, 307, 308, 309, 91, -1, 846 312, -1, -1, 315, 316, 317, -1, -1, -1, -1, 847 -1, 64, -1, -1, -1, 287, 288, 289, 290, -1, 848 33, -1, -1, 36, 37, 38, -1, 40, -1, 42, 849 43, -1, 45, 126, 306, 307, 308, 309, 91, -1, 850 312, -1, -1, 315, 316, 317, -1, -1, -1, -1, 851 -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, 852 33, -1, -1, 36, 37, 38, -1, 40, 41, 42, 853 43, -1, 45, 126, -1, 281, -1, -1, 91, -1, 854 93, 287, 288, 289, 290, -1, -1, -1, -1, -1, 855 -1, 64, -1, -1, -1, -1, -1, 303, 304, 305, 856 306, 307, 308, 309, -1, -1, 312, -1, -1, 315, 857 316, 317, -1, 126, 287, 288, 289, 290, 91, -1, 858 33, -1, -1, 36, 37, 38, -1, 40, 41, 42, 859 43, -1, 45, -1, 307, 308, 309, -1, -1, 312, 860 -1, -1, 315, 316, 317, -1, -1, -1, -1, -1, 861 -1, 64, 287, 126, 289, 290, -1, -1, -1, -1, 862 -1, -1, -1, -1, 257, 258, 259, 260, 261, -1, 863 263, 264, 265, 308, 309, -1, 269, 312, 91, -1, 864 315, 316, 317, -1, -1, -1, -1, 280, -1, 282, 865 283, 284, 285, 286, -1, -1, -1, -1, 291, 292, 866 293, 294, 295, 296, 257, 258, 259, 260, 261, 302, 867 263, 264, 265, 126, -1, -1, 269, -1, 311, -1, 868 313, 314, -1, -1, -1, -1, -1, 280, -1, 282, 869 283, 284, 285, 286, -1, -1, -1, -1, 291, 292, 870 293, 294, 295, 296, 257, 258, 259, 260, 261, 302, 871 263, 264, 265, -1, -1, -1, 269, -1, 311, -1, 872 313, 314, -1, -1, -1, -1, -1, 280, -1, 282, 873 283, 284, 285, 286, -1, -1, -1, -1, 291, 292, 874 293, 294, 295, 296, 257, 258, 259, 260, 261, 302, 875 263, 264, 265, -1, -1, -1, 269, -1, 311, -1, 876 313, 314, -1, -1, -1, -1, -1, 280, -1, 282, 877 283, 284, 285, 286, -1, -1, -1, -1, 291, 292, 878 293, 294, 295, 296, -1, -1, -1, 33, -1, 302, 879 36, 37, 38, -1, 40, 41, 42, 43, 311, 45, 880 313, 314, -1, -1, 257, 258, 259, 260, 261, -1, 881 263, 264, 265, -1, -1, -1, 269, -1, 64, -1, 882 -1, -1, -1, -1, -1, -1, -1, 280, -1, 282, 883 283, 284, 285, 286, -1, -1, -1, -1, 291, 292, 884 293, 294, 295, 296, -1, 91, -1, 33, -1, 302, 885 36, 37, 38, -1, 40, 41, 42, 43, 311, 45, 886 313, 314, -1, -1, -1, -1, -1, -1, -1, -1, 887 -1, -1, -1, -1, -1, -1, -1, -1, 64, -1, 888 126, -1, -1, -1, -1, -1, 41, -1, -1, 44, 889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 890 -1, -1, -1, 58, 59, 91, 33, -1, 63, 36, 891 37, 38, -1, 40, -1, 42, 43, -1, 45, -1, 892 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1, 893 -1, -1, -1, -1, -1, -1, -1, 64, 93, -1, 894 126, 304, 305, 306, 307, 308, 309, -1, -1, 312, 895 -1, -1, 315, 316, 317, -1, -1, -1, -1, -1, 896 -1, -1, -1, -1, 91, -1, 33, -1, -1, 36, 897 37, 38, -1, 40, 41, 42, 43, -1, 45, -1, 898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 899 -1, -1, -1, -1, -1, -1, -1, 64, -1, 126, 900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 901 -1, 257, 258, 259, 260, 261, -1, 263, 264, 265, 902 -1, -1, -1, 269, 91, -1, -1, -1, -1, -1, 903 -1, -1, -1, -1, 280, -1, 282, 283, 284, 285, 904 286, -1, -1, -1, -1, 291, 292, 293, 294, 295, 905 296, 41, -1, -1, 44, -1, 302, -1, -1, 126, 906 -1, -1, -1, -1, -1, 311, -1, 313, 314, 59, 907 -1, 257, 258, 259, 260, 261, -1, 263, 264, 265, 908 -1, 33, -1, 269, 36, 37, 38, -1, 40, 41, 909 42, 43, -1, 45, 280, -1, 282, 283, 284, 285, 910 286, -1, -1, 93, -1, 291, 292, 293, 294, 295, 911 296, -1, 64, -1, -1, -1, 302, 272, 273, 274, 912 275, -1, -1, -1, 279, 311, 281, 313, 314, 256, 913 257, 258, 259, 260, 261, -1, 263, 264, 265, 91, 914 -1, -1, 269, -1, -1, 300, 301, -1, 303, 304, 915 305, 306, 307, 280, -1, 282, 283, 284, 285, 286, 916 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296, 917 -1, -1, -1, 33, 126, 302, 36, 37, 38, -1, 918 40, 41, 42, 43, 311, 45, 313, 314, -1, -1, 919 257, 258, 259, 260, 261, -1, 263, 264, 265, -1, 920 -1, -1, 269, -1, 64, -1, -1, -1, -1, -1, 921 -1, -1, -1, 280, -1, 282, 283, 284, 285, 286, 922 -1, -1, -1, -1, 291, 292, 293, 294, 295, 296, 923 -1, 91, -1, 33, -1, 302, 36, 37, 38, -1, 924 40, -1, 42, 43, 311, 45, 313, 314, -1, -1, 925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 926 -1, -1, -1, -1, 64, -1, 126, -1, -1, -1, 927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 928 -1, -1, 272, 273, 274, 275, -1, -1, -1, 279, 929 -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, 930 -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 931 300, 263, 264, 265, -1, -1, -1, 269, -1, -1, 932 -1, -1, -1, -1, -1, -1, 126, -1, 280, -1, 933 282, 283, 284, 285, 286, -1, 41, -1, -1, 291, 934 292, 293, 294, 295, 296, -1, -1, -1, -1, -1, 935 302, -1, -1, 58, 59, -1, -1, -1, 63, 311, 936 -1, 313, 314, -1, -1, -1, -1, -1, -1, -1, 937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 938 -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, 939 -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 940 260, 261, -1, 263, 264, 265, -1, -1, -1, 269, 941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 942 280, -1, 282, 283, 284, 285, 286, 41, -1, -1, 943 44, 291, 292, 293, 294, 295, 296, -1, -1, -1, 944 -1, -1, 302, -1, 58, 59, -1, -1, -1, 63, 945 -1, 311, -1, 313, 314, -1, -1, 257, 258, 259, 946 260, 261, -1, 263, 264, 265, -1, -1, -1, 269, 947 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 948 280, -1, 282, 283, 284, 285, 286, -1, -1, -1, 949 -1, 291, 292, 293, 294, 295, 296, 33, -1, -1, 950 63, -1, 302, -1, -1, 41, -1, -1, -1, 45, 951 -1, 311, 48, 313, 314, 51, -1, -1, -1, 55, 952 56, 57, 58, 59, -1, -1, -1, 63, 64, 41, 953 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, 954 -1, -1, -1, -1, -1, -1, 58, 59, -1, -1, 955 -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, 956 -1, -1, -1, -1, -1, -1, 102, 272, 273, 274, 957 275, -1, -1, -1, 279, 41, 281, -1, 44, -1, 958 -1, 93, 287, 288, 289, 290, -1, -1, -1, -1, 959 -1, -1, 58, 59, -1, 300, 301, 63, 303, 304, 960 305, 306, 307, 308, 309, -1, -1, 312, -1, -1, 961 315, 316, 317, -1, -1, -1, -1, -1, -1, -1, 962 -1, -1, -1, -1, -1, -1, -1, 93, 164, 165, 963 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 964 176, 177, -1, -1, -1, -1, -1, -1, -1, -1, 965 -1, -1, -1, -1, -1, 191, -1, -1, 272, 273, 966 274, 275, -1, 41, -1, 279, 44, 281, -1, -1, 967 -1, -1, -1, 287, 288, 289, 290, -1, -1, -1, 968 58, 59, -1, -1, -1, 63, 300, 301, -1, 303, 969 304, 305, 306, 307, 308, 309, -1, -1, 312, -1, 970 -1, 315, 316, 317, -1, -1, -1, -1, -1, -1, 971 -1, -1, -1, 41, -1, 93, 44, -1, 281, -1, 972 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1, 973 58, 59, -1, -1, -1, 63, -1, -1, -1, -1, 974 276, 304, 305, 306, 307, 308, 309, -1, -1, 312, 975 -1, -1, 315, 316, 317, -1, -1, -1, -1, -1, 976 272, 273, 274, 275, -1, 93, -1, 279, 41, 281, 977 -1, 44, -1, 309, -1, 287, 288, 289, 290, -1, 978 -1, -1, -1, -1, -1, 58, 59, -1, 300, 301, 979 63, 303, 304, 305, 306, 307, 308, 309, -1, -1, 980 312, -1, -1, 315, 316, 317, 272, 273, 274, 275, 981 -1, -1, -1, 279, 41, 281, -1, 44, -1, -1, 982 93, 287, 288, 289, 290, -1, -1, -1, -1, -1, 983 -1, 58, 59, -1, 300, 301, 63, 303, 304, 305, 984 306, 307, 308, 309, -1, -1, 312, -1, -1, 315, 985 316, 317, -1, -1, -1, -1, -1, -1, -1, -1, 986 -1, 41, -1, -1, 44, -1, 93, -1, -1, -1, 987 -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 988 -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, 989 -1, -1, -1, -1, 272, 273, 274, 275, -1, -1, 990 -1, 279, -1, 281, -1, -1, -1, -1, -1, 287, 991 288, 289, 290, 93, -1, -1, -1, -1, 41, -1, 992 -1, 44, 300, 301, -1, 303, 304, 305, 306, 307, 993 308, 309, -1, -1, 312, 58, 59, 315, 316, 317, 994 63, -1, -1, -1, 272, 273, 274, 275, -1, -1, 995 -1, 279, -1, 281, -1, -1, -1, -1, -1, 287, 996 288, 289, 290, -1, -1, -1, -1, -1, 41, -1, 997 93, 44, 300, 301, -1, 303, 304, 305, 306, 307, 998 308, 309, -1, -1, 312, 58, 59, 315, 316, 317, 999 63, -1, -1, -1, -1, -1, -1, -1, -1, 272, 1000 273, 274, 275, -1, -1, -1, 279, -1, 281, -1, 1001 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1, 1002 93, -1, -1, -1, -1, -1, -1, 300, 301, -1, 1003 303, 304, 305, 306, 307, 308, 309, -1, -1, 312, 1004 -1, -1, 315, 316, 317, 272, 273, 274, 275, -1, 1005 41, -1, 279, 44, 281, -1, -1, -1, -1, -1, 1006 287, 288, 289, 290, -1, -1, -1, 58, 59, -1, 1007 -1, -1, 63, 300, 301, -1, 303, 304, 305, 306, 1008 307, 308, 309, -1, -1, 312, -1, -1, 315, 316, 1009 317, -1, 272, 273, 274, 275, -1, -1, -1, 279, 1010 -1, 281, 93, -1, -1, -1, -1, 287, 288, 289, 1011 290, -1, -1, -1, -1, -1, 41, -1, -1, 44, 1012 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, 1013 -1, -1, 312, 58, 59, 315, 316, 317, 63, -1, 1014 -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, 1015 273, 274, 275, -1, -1, -1, 279, -1, 281, -1, 1016 -1, -1, -1, -1, 287, 288, 289, 290, 93, -1, 1017 -1, -1, -1, 41, -1, -1, 44, 300, 301, -1, 1018 303, 304, 305, 306, 307, 308, 309, -1, -1, 312, 1019 58, 59, 315, 316, 317, 63, -1, -1, -1, 272, 1020 273, 274, 275, -1, -1, -1, 279, -1, 281, -1, 1021 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1, 1022 -1, -1, -1, 41, -1, 93, 44, 300, 301, -1, 1023 303, 304, 305, 306, 307, 308, 309, -1, -1, 312, 1024 58, 59, 315, 316, 317, 63, -1, -1, -1, -1, 1025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1026 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1027 -1, -1, -1, -1, -1, 93, 41, -1, -1, 44, 1028 -1, 272, 273, 274, 275, 41, -1, -1, 279, -1, 1029 281, -1, -1, 58, 59, -1, 287, 288, 289, 290, 1030 -1, -1, 58, 59, -1, -1, -1, 63, -1, 300, 1031 301, -1, 303, 304, 305, 306, 307, 308, 309, -1, 1032 -1, 312, -1, -1, 315, 316, 317, -1, 93, -1, 1033 -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, 1034 -1, -1, -1, 41, -1, -1, 44, 272, 273, 274, 1035 275, 41, -1, -1, 279, -1, 281, -1, -1, -1, 1036 58, 59, 287, 288, 289, 290, -1, -1, 58, 59, 1037 -1, -1, -1, 63, -1, 300, 301, -1, 303, 304, 1038 305, 306, 307, 308, 309, -1, -1, 312, -1, -1, 1039 315, 316, 317, -1, -1, 93, -1, -1, -1, -1, 1040 -1, -1, -1, 93, 272, 273, 274, 275, -1, -1, 1041 -1, 279, 41, 281, -1, 44, -1, -1, -1, 287, 1042 288, 289, 290, -1, -1, -1, -1, -1, -1, 58, 1043 59, -1, 300, 301, 63, 303, 304, 305, 306, 307, 1044 308, 309, -1, -1, 312, -1, -1, 315, 316, 317, 1045 -1, -1, -1, -1, 272, 273, 274, 275, -1, 41, 1046 -1, 279, 44, 281, 93, -1, -1, -1, -1, 287, 1047 288, 289, 290, -1, -1, -1, 58, 59, -1, -1, 1048 -1, 63, 300, 301, -1, 303, 304, 305, 306, 307, 1049 308, 309, -1, -1, 312, -1, -1, 315, 316, 317, 1050 -1, -1, -1, -1, -1, -1, -1, 272, 273, 274, 1051 275, 93, -1, -1, 279, -1, 272, 273, 274, 275, 1052 -1, 41, -1, 279, 44, 281, -1, -1, -1, -1, 1053 -1, 287, 288, 289, 290, 300, 301, -1, 58, 59, 1054 -1, -1, -1, 63, 300, 301, -1, 303, 304, 305, 1055 306, 307, 308, 309, -1, -1, 312, -1, -1, 315, 1056 316, 317, -1, -1, -1, -1, -1, -1, -1, -1, 1057 -1, -1, -1, 93, 272, 273, 274, 275, -1, -1, 1058 -1, 279, 272, 273, 274, 275, -1, 41, -1, 279, 1059 44, 281, -1, -1, -1, -1, -1, 287, 288, 289, 1060 290, -1, 300, 301, 58, 59, -1, -1, -1, 63, 1061 300, 301, -1, 303, 304, 305, 306, 307, 308, 309, 1062 -1, -1, 312, -1, -1, 315, 316, 317, -1, -1, 1063 -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 1064 -1, -1, -1, 272, 273, 274, 275, -1, 41, -1, 1065 279, 44, 281, -1, -1, -1, -1, -1, 287, 288, 1066 289, 290, -1, -1, -1, 58, 59, -1, -1, -1, 1067 63, 300, 301, -1, 303, 304, 305, 306, 307, 308, 1068 309, -1, -1, 312, -1, -1, -1, -1, -1, -1, 1069 272, 273, 274, 275, -1, 41, -1, 279, 44, 281, 1070 93, -1, -1, -1, -1, 287, 288, 289, 290, -1, 1071 -1, -1, 58, 59, -1, -1, -1, 63, 300, 301, 1072 -1, 303, 304, 305, 306, 307, 308, 309, -1, -1, 1073 312, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1074 41, -1, -1, 44, -1, -1, -1, 93, -1, -1, 1075 -1, -1, 272, 273, 274, 275, -1, 58, 59, 279, 1076 -1, 281, 63, -1, -1, -1, -1, 287, 288, 289, 1077 290, -1, -1, -1, -1, -1, -1, -1, -1, 41, 1078 300, 301, 44, 303, 304, 305, 306, 307, 308, 309, 1079 -1, -1, 93, -1, -1, -1, 58, 59, -1, -1, 1080 -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, 1081 -1, -1, -1, -1, -1, -1, -1, -1, 272, 273, 1082 274, 275, -1, 41, -1, 279, 44, 281, -1, -1, 1083 -1, 93, -1, 287, 288, 289, 290, -1, -1, -1, 1084 58, 59, -1, -1, -1, 63, 300, 301, -1, 303, 1085 304, 305, 306, 307, 308, 309, -1, -1, -1, -1, 1086 -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, 1087 44, -1, -1, -1, -1, 93, -1, -1, -1, 272, 1088 273, 274, 275, -1, 58, 59, 279, -1, 281, 63, 1089 -1, -1, -1, -1, 287, 288, 289, 290, -1, -1, 1090 -1, -1, -1, -1, -1, -1, -1, 300, 301, -1, 1091 303, 304, 305, 306, 307, 308, 309, -1, -1, 93, 1092 -1, -1, -1, -1, -1, -1, 272, 273, 274, 275, 1093 -1, 41, -1, 279, 44, 281, -1, -1, -1, -1, 1094 -1, 287, 288, 289, 290, -1, -1, -1, 58, 59, 1095 -1, -1, -1, 63, 300, 301, -1, 303, 304, 305, 1096 306, 307, 308, 309, -1, -1, -1, -1, -1, -1, 1097 -1, 272, 273, 274, 275, -1, -1, -1, 279, 41, 1098 281, -1, 44, 93, -1, -1, 287, 288, 289, 290, 1099 -1, -1, -1, -1, -1, -1, 58, 59, -1, 300, 1100 301, 63, 303, 304, 305, 306, 307, 308, 309, -1, 1101 272, 273, 274, 275, -1, 41, -1, 279, 44, 281, 1102 -1, -1, -1, -1, -1, 287, 288, 289, 290, -1, 1103 -1, 93, 58, 59, -1, -1, -1, 63, 300, 301, 1104 -1, 303, 304, 305, 306, 307, 308, 309, -1, -1, 1105 -1, -1, -1, -1, 272, 273, 274, 275, -1, 41, 1106 -1, 279, 44, 281, -1, -1, -1, 93, -1, 287, 1107 288, 289, 290, -1, -1, -1, 58, 59, -1, -1, 1108 -1, 63, 300, 301, -1, 303, 304, 305, 306, 307, 1109 308, 309, -1, -1, -1, -1, -1, -1, 272, 273, 1110 274, 275, -1, 41, -1, 279, 44, 281, -1, -1, 1111 -1, 93, -1, 287, 288, 289, 290, -1, -1, -1, 1112 58, 59, -1, -1, -1, 63, 300, 301, -1, 303, 1113 304, 305, 306, 307, 308, -1, -1, -1, -1, -1, 1114 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 1115 41, -1, -1, 44, -1, 93, -1, 58, 59, -1, 1116 -1, -1, 272, 273, 274, 275, -1, 58, 59, 279, 1117 -1, 281, 63, -1, -1, -1, -1, 287, 288, -1, 1118 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1119 300, 301, 93, 303, 304, 305, 306, 307, 308, -1, 1120 -1, -1, 93, -1, -1, 41, -1, -1, 44, -1, 1121 272, 273, 274, 275, -1, 41, -1, 279, 44, 281, 1122 -1, -1, 58, 59, -1, 287, 288, 63, -1, -1, 1123 -1, -1, 58, 59, -1, -1, -1, 63, 300, 301, 1124 -1, 303, 304, 305, 306, 307, 272, 273, 274, 275, 1125 -1, 41, -1, 279, 44, 281, -1, 93, -1, -1, 1126 -1, 287, 288, -1, -1, -1, -1, 93, 58, 59, 1127 -1, -1, -1, 63, 300, 301, -1, 303, 304, 305, 1128 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, 1129 272, 273, 274, 275, -1, 41, -1, 279, 44, 281, 1130 -1, -1, -1, 93, -1, 287, 288, -1, -1, -1, 1131 -1, -1, 58, 59, -1, -1, -1, 63, 300, 301, 1132 -1, 303, 304, 305, 306, 307, -1, 41, -1, -1, 1133 44, -1, -1, -1, 272, 273, 274, 275, -1, -1, 1134 -1, 279, -1, 281, 58, 59, -1, 93, -1, 287, 1135 288, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1136 -1, -1, 300, 301, -1, 303, 304, 305, 306, 307, 1137 -1, 272, 273, 274, 275, -1, -1, -1, 279, 93, 1138 -1, 272, 273, 274, 275, -1, -1, -1, 279, -1, 1139 281, -1, -1, -1, -1, -1, -1, 288, -1, 300, 1140 301, -1, 303, -1, -1, -1, -1, -1, -1, 300, 1141 301, -1, 303, 304, 305, 306, 307, -1, -1, -1, 1142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1143 -1, -1, -1, -1, -1, -1, 272, 273, 274, 275, 1144 -1, -1, -1, 279, -1, 281, 272, 273, 274, 275, 1145 -1, -1, -1, 279, -1, 281, -1, -1, -1, -1, 1146 -1, -1, -1, -1, 300, 301, -1, 303, 304, 305, 1147 306, 307, -1, -1, 300, 301, -1, 303, 304, 305, 1148 306, -1, 272, 273, 274, 275, -1, -1, -1, 279, 1149 -1, 281, -1, -1, -1, -1, -1, -1, -1, -1, 1150 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1151 300, 301, -1, 303, 304, 305, -1, -1, -1, -1, 1152 -1, -1, -1, -1, -1, -1, 272, 273, 274, 275, 1153 -1, -1, -1, 279, -1, -1, -1, -1, -1, -1, 1154 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1155 -1, -1, -1, -1, 300, 301, -1, 303, 272, 273, 1156 274, 275, -1, -1, -1, 279, -1, -1, -1, -1, 1157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1158 -1, -1, -1, -1, -1, -1, 300, 301, 1159 }; 1160 #define YYFINAL 1 1161 #ifndef YYDEBUG 1162 #define YYDEBUG 0 1163 #endif 1164 #define YYMAXTOKEN 317 1165 #if YYDEBUG 1166 static char *yyname[] = { 1167 "end-of-file",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, 1168 "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0, 1169 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, 1170 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, 1171 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, 1172 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,0,0,0,0,0, 1173 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,0,0,0,0,0, 1174 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","METHOD","FUNCMETH","THING", 1175 "PMFUNC","PRIVATEREF","FUNC0SUB","UNIOPSUB","LSTOPSUB","LABEL","FORMAT","SUB", 1176 "ANONSUB","PACKAGE","USE","WHILE","UNTIL","IF","UNLESS","ELSE","ELSIF", 1177 "CONTINUE","FOR","LOOPEX","DOTDOT","FUNC0","FUNC1","FUNC","UNIOP","LSTOP", 1178 "RELOP","EQOP","MULOP","ADDOP","DOLSHARP","DO","HASHBRACK","NOAMP","LOCAL","MY", 1179 "MYSUB","COLONATTR","PREC_LOW","OROP","ANDOP","NOTOP","ASSIGNOP","OROR", 1180 "ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP", 1181 "PREINC","PREDEC","POSTINC","POSTDEC","ARROW", 1182 }; 1183 static char *yyrule[] = { 1184 "$accept : prog", 1185 "prog : progstart lineseq", 1186 "block : '{' remember lineseq '}'", 1187 "remember :", 1188 "progstart :", 1189 "mblock : '{' mremember lineseq '}'", 1190 "mremember :", 1191 "lineseq :", 1192 "lineseq : lineseq decl", 1193 "lineseq : lineseq line", 1194 "line : label cond", 1195 "line : loop", 1196 "line : label ';'", 1197 "line : label sideff ';'", 1198 "sideff : error", 1199 "sideff : expr", 1200 "sideff : expr IF expr", 1201 "sideff : expr UNLESS expr", 1202 "sideff : expr WHILE expr", 1203 "sideff : expr UNTIL iexpr", 1204 "sideff : expr FOR expr", 1205 "else :", 1206 "else : ELSE mblock", 1207 "else : ELSIF '(' mexpr ')' mblock else", 1208 "cond : IF '(' remember mexpr ')' mblock else", 1209 "cond : UNLESS '(' remember miexpr ')' mblock else", 1210 "cont :", 1211 "cont : CONTINUE block", 1212 "loop : label WHILE '(' remember mtexpr ')' mblock cont", 1213 "loop : label UNTIL '(' remember miexpr ')' mblock cont", 1214 "loop : label FOR MY remember my_scalar '(' mexpr ')' mblock cont", 1215 "loop : label FOR scalar '(' remember mexpr ')' mblock cont", 1216 "loop : label FOR '(' remember mexpr ')' mblock cont", 1217 "loop : label FOR '(' remember mnexpr ';' mtexpr ';' mnexpr ')' mblock", 1218 "loop : label block cont", 1219 "nexpr :", 1220 "nexpr : sideff", 1221 "texpr :", 1222 "texpr : expr", 1223 "iexpr : expr", 1224 "mexpr : expr", 1225 "mnexpr : nexpr", 1226 "mtexpr : texpr", 1227 "miexpr : iexpr", 1228 "label :", 1229 "label : LABEL", 1230 "decl : format", 1231 "decl : subrout", 1232 "decl : mysubrout", 1233 "decl : package", 1234 "decl : use", 1235 "format : FORMAT startformsub formname block", 1236 "formname : WORD", 1237 "formname :", 1238 "mysubrout : MYSUB startsub subname proto subattrlist subbody", 1239 "subrout : SUB startsub subname proto subattrlist subbody", 1240 "startsub :", 1241 "startanonsub :", 1242 "startformsub :", 1243 "subname : WORD", 1244 "proto :", 1245 "proto : THING", 1246 "subattrlist :", 1247 "subattrlist : COLONATTR THING", 1248 "subattrlist : COLONATTR", 1249 "myattrlist : COLONATTR THING", 1250 "myattrlist : COLONATTR", 1251 "subbody : block", 1252 "subbody : ';'", 1253 "package : PACKAGE WORD ';'", 1254 "package : PACKAGE ';'", 1255 "$$1 :", 1256 "use : USE startsub $$1 WORD WORD listexpr ';'", 1257 "expr : expr ANDOP expr", 1258 "expr : expr OROP expr", 1259 "expr : argexpr", 1260 "argexpr : argexpr ','", 1261 "argexpr : argexpr ',' term", 1262 "argexpr : term", 1263 "listop : LSTOP indirob argexpr", 1264 "listop : FUNC '(' indirob expr ')'", 1265 "listop : term ARROW method '(' listexprcom ')'", 1266 "listop : term ARROW method", 1267 "listop : METHOD indirob listexpr", 1268 "listop : FUNCMETH indirob '(' listexprcom ')'", 1269 "listop : LSTOP listexpr", 1270 "listop : FUNC '(' listexprcom ')'", 1271 "$$2 :", 1272 "listop : LSTOPSUB startanonsub block $$2 listexpr", 1273 "method : METHOD", 1274 "method : scalar", 1275 "subscripted : star '{' expr ';' '}'", 1276 "subscripted : scalar '[' expr ']'", 1277 "subscripted : term ARROW '[' expr ']'", 1278 "subscripted : subscripted '[' expr ']'", 1279 "subscripted : scalar '{' expr ';' '}'", 1280 "subscripted : term ARROW '{' expr ';' '}'", 1281 "subscripted : subscripted '{' expr ';' '}'", 1282 "subscripted : term ARROW '(' ')'", 1283 "subscripted : term ARROW '(' expr ')'", 1284 "subscripted : subscripted '(' expr ')'", 1285 "subscripted : subscripted '(' ')'", 1286 "termbinop : term ASSIGNOP term", 1287 "termbinop : term POWOP term", 1288 "termbinop : term MULOP term", 1289 "termbinop : term ADDOP term", 1290 "termbinop : term SHIFTOP term", 1291 "termbinop : term RELOP term", 1292 "termbinop : term EQOP term", 1293 "termbinop : term BITANDOP term", 1294 "termbinop : term BITOROP term", 1295 "termbinop : term DOTDOT term", 1296 "termbinop : term ANDAND term", 1297 "termbinop : term OROR term", 1298 "termbinop : term MATCHOP term", 1299 "termunop : '-' term", 1300 "termunop : '+' term", 1301 "termunop : '!' term", 1302 "termunop : '~' term", 1303 "termunop : term POSTINC", 1304 "termunop : term POSTDEC", 1305 "termunop : PREINC term", 1306 "termunop : PREDEC term", 1307 "anonymous : '[' expr ']'", 1308 "anonymous : '[' ']'", 1309 "anonymous : HASHBRACK expr ';' '}'", 1310 "anonymous : HASHBRACK ';' '}'", 1311 "anonymous : ANONSUB startanonsub proto subattrlist block", 1312 "termdo : DO term", 1313 "termdo : DO block", 1314 "termdo : DO WORD '(' ')'", 1315 "termdo : DO WORD '(' expr ')'", 1316 "termdo : DO scalar '(' ')'", 1317 "termdo : DO scalar '(' expr ')'", 1318 "term : termbinop", 1319 "term : termunop", 1320 "term : anonymous", 1321 "term : termdo", 1322 "term : term '?' term ':' term", 1323 "term : REFGEN term", 1324 "term : myattrterm", 1325 "term : LOCAL term", 1326 "term : '(' expr ')'", 1327 "term : '(' ')'", 1328 "term : scalar", 1329 "term : star", 1330 "term : hsh", 1331 "term : ary", 1332 "term : arylen", 1333 "term : subscripted", 1334 "term : '(' expr ')' '[' expr ']'", 1335 "term : '(' ')' '[' expr ']'", 1336 "term : ary '[' expr ']'", 1337 "term : ary '{' expr ';' '}'", 1338 "term : THING", 1339 "term : amper", 1340 "term : amper '(' ')'", 1341 "term : amper '(' expr ')'", 1342 "term : NOAMP WORD listexpr", 1343 "term : LOOPEX", 1344 "term : LOOPEX term", 1345 "term : NOTOP argexpr", 1346 "term : UNIOP", 1347 "term : UNIOP block", 1348 "term : UNIOP term", 1349 "term : UNIOPSUB term", 1350 "term : FUNC0", 1351 "term : FUNC0 '(' ')'", 1352 "term : FUNC0SUB", 1353 "term : FUNC1 '(' ')'", 1354 "term : FUNC1 '(' expr ')'", 1355 "term : PMFUNC '(' term ')'", 1356 "term : PMFUNC '(' term ',' term ')'", 1357 "term : WORD", 1358 "term : listop", 1359 "myattrterm : MY myterm myattrlist", 1360 "myattrterm : MY myterm", 1361 "myterm : '(' expr ')'", 1362 "myterm : '(' ')'", 1363 "myterm : scalar", 1364 "myterm : hsh", 1365 "myterm : ary", 1366 "listexpr :", 1367 "listexpr : argexpr", 1368 "listexprcom :", 1369 "listexprcom : expr", 1370 "listexprcom : expr ','", 1371 "my_scalar : scalar", 1372 "amper : '&' indirob", 1373 "scalar : '$' indirob", 1374 "ary : '@' indirob", 1375 "hsh : '%' indirob", 1376 "arylen : DOLSHARP indirob", 1377 "star : '*' indirob", 1378 "indirob : WORD", 1379 "indirob : scalar", 1380 "indirob : block", 1381 "indirob : PRIVATEREF", 1382 }; 1383 #endif 1384 #define yyclearin (yychar=(-1)) 1385 #define yyerrok (yyerrflag=0) 1386 #ifdef YYSTACKSIZE 1387 #ifndef YYMAXDEPTH 1388 #define YYMAXDEPTH YYSTACKSIZE 1389 #endif 1390 #else 1391 #ifdef YYMAXDEPTH 1392 #define YYSTACKSIZE YYMAXDEPTH 1393 #else 1394 #define YYSTACKSIZE 500 1395 #define YYMAXDEPTH 500 1396 #endif 1397 #endif 1398 #line 793 "perly.y" 1399 /* PROGRAM */ 1400 1401 /* more stuff added to make perly_c.diff easier to apply */ 1402 1403 #ifdef yyparse 1404 #undef yyparse 1405 #endif 1406 #define yyparse() Perl_yyparse(pTHX) 1407 1408 #line 1409 "perly.c" 1409 #define YYABORT goto yyabort 1410 #define YYACCEPT goto yyaccept 1411 #define YYERROR goto yyerrlab 1412 int 1413 yyparse() 1414 { 1415 register int yym, yyn, yystate; 1416 register short *yyssp; 1417 register YYSTYPE *yyvsp; 1418 short* yyss; 1419 YYSTYPE* yyvs; 1420 unsigned yystacksize = YYSTACKSIZE; 1421 int retval = 0; 1422 #if YYDEBUG 1423 register char *yys; 1424 #endif 1425 1426 struct ysv *ysave; 1427 #ifdef USE_ITHREADS 1428 ENTER; /* force yydestruct() before we return */ 1429 #endif 1430 New(73, ysave, 1, struct ysv); 1431 SAVEDESTRUCTOR_X(yydestruct, ysave); 1432 ysave->oldyydebug = yydebug; 1433 ysave->oldyynerrs = yynerrs; 1434 ysave->oldyyerrflag = yyerrflag; 1435 ysave->oldyychar = yychar; 1436 ysave->oldyyval = yyval; 1437 ysave->oldyylval = yylval; 1438 1439 #if YYDEBUG 1440 if ((yys = getenv("YYDEBUG"))) 1441 { 1442 yyn = *yys; 1443 if (yyn >= '0' && yyn <= '9') 1444 yydebug = yyn - '0'; 1445 } 1446 #endif 1447 1448 yynerrs = 0; 1449 yyerrflag = 0; 1450 yychar = (-1); 1451 1452 /* 1453 ** Initialize private stacks (yyparse may be called from an action) 1454 */ 1455 New(73, yyss, yystacksize, short); 1456 New(73, yyvs, yystacksize, YYSTYPE); 1457 ysave->yyss = yyss; 1458 ysave->yyvs = yyvs; 1459 if (!yyvs || !yyss) 1460 goto yyoverflow; 1461 1462 yyssp = yyss; 1463 yyvsp = yyvs; 1464 *yyssp = yystate = 0; 1465 1466 yyloop: 1467 if ((yyn = yydefred[yystate])) goto yyreduce; 1468 if (yychar < 0) 1469 { 1470 if ((yychar = yylex()) < 0) yychar = 0; 1471 #if YYDEBUG 1472 if (yydebug) 1473 { 1474 yys = 0; 1475 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 1476 if (!yys) yys = "illegal-symbol"; 1477 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate, 1478 yychar, yys); 1479 } 1480 #endif 1481 } 1482 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && 1483 yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 1484 { 1485 #if YYDEBUG 1486 if (yydebug) 1487 PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n", 1488 yystate, yytable[yyn]); 1489 #endif 1490 if (yyssp >= yyss + yystacksize - 1) 1491 { 1492 /* 1493 ** reallocate and recover. Note that pointers 1494 ** have to be reset, or bad things will happen 1495 */ 1496 int yyps_index = (yyssp - yyss); 1497 int yypv_index = (yyvsp - yyvs); 1498 yystacksize += YYSTACKSIZE; 1499 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE); 1500 ysave->yyss = Renew(yyss, yystacksize, short); 1501 if (!yyvs || !yyss) 1502 goto yyoverflow; 1503 yyssp = yyss + yyps_index; 1504 yyvsp = yyvs + yypv_index; 1505 } 1506 *++yyssp = yystate = yytable[yyn]; 1507 *++yyvsp = yylval; 1508 yychar = (-1); 1509 if (yyerrflag > 0) --yyerrflag; 1510 goto yyloop; 1511 } 1512 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && 1513 yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 1514 { 1515 yyn = yytable[yyn]; 1516 goto yyreduce; 1517 } 1518 if (yyerrflag) goto yyinrecovery; 1519 #ifdef lint 1520 1521 #endif 1522 1523 yyerror("syntax error"); 1524 #ifdef lint 1525 1526 #endif 1527 1528 ++yynerrs; 1529 yyinrecovery: 1530 if (yyerrflag < 3) 1531 { 1532 yyerrflag = 3; 1533 for (;;) 1534 { 1535 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && 1536 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) 1537 { 1538 #if YYDEBUG 1539 if (yydebug) 1540 PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\ 1541 to state %d\n", *yyssp, yytable[yyn]); 1542 #endif 1543 if (yyssp >= yyss + yystacksize - 1) 1544 { 1545 /* 1546 ** reallocate and recover. Note that pointers 1547 ** have to be reset, or bad things will happen 1548 */ 1549 int yyps_index = (yyssp - yyss); 1550 int yypv_index = (yyvsp - yyvs); 1551 yystacksize += YYSTACKSIZE; 1552 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE); 1553 ysave->yyss = Renew(yyss, yystacksize, short); 1554 if (!yyvs || !yyss) 1555 goto yyoverflow; 1556 yyssp = yyss + yyps_index; 1557 yyvsp = yyvs + yypv_index; 1558 } 1559 *++yyssp = yystate = yytable[yyn]; 1560 *++yyvsp = yylval; 1561 goto yyloop; 1562 } 1563 else 1564 { 1565 #if YYDEBUG 1566 if (yydebug) 1567 PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n", 1568 *yyssp); 1569 #endif 1570 if (yyssp <= yyss) goto yyabort; 1571 --yyssp; 1572 --yyvsp; 1573 } 1574 } 1575 } 1576 else 1577 { 1578 if (yychar == 0) goto yyabort; 1579 #if YYDEBUG 1580 if (yydebug) 1581 { 1582 yys = 0; 1583 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 1584 if (!yys) yys = "illegal-symbol"; 1585 PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n", 1586 yystate, yychar, yys); 1587 } 1588 #endif 1589 yychar = (-1); 1590 goto yyloop; 1591 } 1592 yyreduce: 1593 #if YYDEBUG 1594 if (yydebug) 1595 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n", 1596 yystate, yyn, yyrule[yyn]); 1597 #endif 1598 yym = yylen[yyn]; 1599 yyval = yyvsp[1-yym]; 1600 switch (yyn) 1601 { 1602 case 1: 1603 #line 131 "perly.y" 1604 { yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); } 1605 break; 1606 case 2: 1607 #line 136 "perly.y" 1608 { if (PL_copline > (line_t)yyvsp[-3].ival) 1609 PL_copline = (line_t)yyvsp[-3].ival; 1610 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); } 1611 break; 1612 case 3: 1613 #line 142 "perly.y" 1614 { yyval.ival = block_start(TRUE); } 1615 break; 1616 case 4: 1617 #line 146 "perly.y" 1618 { 1619 #if defined(YYDEBUG) && defined(DEBUGGING) 1620 yydebug = (DEBUG_p_TEST); 1621 #endif 1622 PL_expect = XSTATE; yyval.ival = block_start(TRUE); 1623 } 1624 break; 1625 case 5: 1626 #line 156 "perly.y" 1627 { if (PL_copline > (line_t)yyvsp[-3].ival) 1628 PL_copline = (line_t)yyvsp[-3].ival; 1629 yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); } 1630 break; 1631 case 6: 1632 #line 162 "perly.y" 1633 { yyval.ival = block_start(FALSE); } 1634 break; 1635 case 7: 1636 #line 167 "perly.y" 1637 { yyval.opval = Nullop; } 1638 break; 1639 case 8: 1640 #line 169 "perly.y" 1641 { yyval.opval = yyvsp[-1].opval; } 1642 break; 1643 case 9: 1644 #line 171 "perly.y" 1645 { yyval.opval = append_list(OP_LINESEQ, 1646 (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval); 1647 PL_pad_reset_pending = TRUE; 1648 if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; } 1649 break; 1650 case 10: 1651 #line 179 "perly.y" 1652 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); } 1653 break; 1654 case 12: 1655 #line 182 "perly.y" 1656 { if (yyvsp[-1].pval != Nullch) { 1657 yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0)); 1658 } 1659 else { 1660 yyval.opval = Nullop; 1661 PL_copline = NOLINE; 1662 } 1663 PL_expect = XSTATE; } 1664 break; 1665 case 13: 1666 #line 191 "perly.y" 1667 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval); 1668 PL_expect = XSTATE; } 1669 break; 1670 case 14: 1671 #line 197 "perly.y" 1672 { yyval.opval = Nullop; } 1673 break; 1674 case 15: 1675 #line 199 "perly.y" 1676 { yyval.opval = yyvsp[0].opval; } 1677 break; 1678 case 16: 1679 #line 201 "perly.y" 1680 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); } 1681 break; 1682 case 17: 1683 #line 203 "perly.y" 1684 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); } 1685 break; 1686 case 18: 1687 #line 205 "perly.y" 1688 { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); } 1689 break; 1690 case 19: 1691 #line 207 "perly.y" 1692 { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);} 1693 break; 1694 case 20: 1695 #line 209 "perly.y" 1696 { yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival, 1697 Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); } 1698 break; 1699 case 21: 1700 #line 215 "perly.y" 1701 { yyval.opval = Nullop; } 1702 break; 1703 case 22: 1704 #line 217 "perly.y" 1705 { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); } 1706 break; 1707 case 23: 1708 #line 219 "perly.y" 1709 { PL_copline = (line_t)yyvsp[-5].ival; 1710 yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval); 1711 PL_hints |= HINT_BLOCK_SCOPE; } 1712 break; 1713 case 24: 1714 #line 226 "perly.y" 1715 { PL_copline = (line_t)yyvsp[-6].ival; 1716 yyval.opval = block_end(yyvsp[-4].ival, 1717 newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); } 1718 break; 1719 case 25: 1720 #line 230 "perly.y" 1721 { PL_copline = (line_t)yyvsp[-6].ival; 1722 yyval.opval = block_end(yyvsp[-4].ival, 1723 newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); } 1724 break; 1725 case 26: 1726 #line 237 "perly.y" 1727 { yyval.opval = Nullop; } 1728 break; 1729 case 27: 1730 #line 239 "perly.y" 1731 { yyval.opval = scope(yyvsp[0].opval); } 1732 break; 1733 case 28: 1734 #line 244 "perly.y" 1735 { PL_copline = (line_t)yyvsp[-6].ival; 1736 yyval.opval = block_end(yyvsp[-4].ival, 1737 newSTATEOP(0, yyvsp[-7].pval, 1738 newWHILEOP(0, 1, (LOOP*)Nullop, 1739 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); } 1740 break; 1741 case 29: 1742 #line 250 "perly.y" 1743 { PL_copline = (line_t)yyvsp[-6].ival; 1744 yyval.opval = block_end(yyvsp[-4].ival, 1745 newSTATEOP(0, yyvsp[-7].pval, 1746 newWHILEOP(0, 1, (LOOP*)Nullop, 1747 yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); } 1748 break; 1749 case 30: 1750 #line 256 "perly.y" 1751 { yyval.opval = block_end(yyvsp[-6].ival, 1752 newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); } 1753 break; 1754 case 31: 1755 #line 259 "perly.y" 1756 { yyval.opval = block_end(yyvsp[-4].ival, 1757 newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP), 1758 yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); } 1759 break; 1760 case 32: 1761 #line 263 "perly.y" 1762 { yyval.opval = block_end(yyvsp[-4].ival, 1763 newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); } 1764 break; 1765 case 33: 1766 #line 267 "perly.y" 1767 { OP *forop; 1768 PL_copline = (line_t)yyvsp[-9].ival; 1769 forop = newSTATEOP(0, yyvsp[-10].pval, 1770 newWHILEOP(0, 1, (LOOP*)Nullop, 1771 yyvsp[-9].ival, scalar(yyvsp[-4].opval), 1772 yyvsp[0].opval, yyvsp[-2].opval)); 1773 if (yyvsp[-6].opval) { 1774 forop = append_elem(OP_LINESEQ, 1775 newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch), 1776 yyvsp[-6].opval), 1777 forop); 1778 } 1779 1780 yyval.opval = block_end(yyvsp[-7].ival, forop); } 1781 break; 1782 case 34: 1783 #line 282 "perly.y" 1784 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, 1785 newWHILEOP(0, 1, (LOOP*)Nullop, 1786 NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); } 1787 break; 1788 case 35: 1789 #line 289 "perly.y" 1790 { yyval.opval = Nullop; } 1791 break; 1792 case 37: 1793 #line 295 "perly.y" 1794 { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; } 1795 break; 1796 case 39: 1797 #line 301 "perly.y" 1798 { yyval.opval = invert(scalar(yyvsp[0].opval)); } 1799 break; 1800 case 40: 1801 #line 306 "perly.y" 1802 { yyval.opval = yyvsp[0].opval; intro_my(); } 1803 break; 1804 case 41: 1805 #line 310 "perly.y" 1806 { yyval.opval = yyvsp[0].opval; intro_my(); } 1807 break; 1808 case 42: 1809 #line 314 "perly.y" 1810 { yyval.opval = yyvsp[0].opval; intro_my(); } 1811 break; 1812 case 43: 1813 #line 318 "perly.y" 1814 { yyval.opval = yyvsp[0].opval; intro_my(); } 1815 break; 1816 case 44: 1817 #line 323 "perly.y" 1818 { yyval.pval = Nullch; } 1819 break; 1820 case 46: 1821 #line 329 "perly.y" 1822 { yyval.ival = 0; } 1823 break; 1824 case 47: 1825 #line 331 "perly.y" 1826 { yyval.ival = 0; } 1827 break; 1828 case 48: 1829 #line 333 "perly.y" 1830 { yyval.ival = 0; } 1831 break; 1832 case 49: 1833 #line 335 "perly.y" 1834 { yyval.ival = 0; } 1835 break; 1836 case 50: 1837 #line 337 "perly.y" 1838 { yyval.ival = 0; } 1839 break; 1840 case 51: 1841 #line 341 "perly.y" 1842 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); } 1843 break; 1844 case 52: 1845 #line 344 "perly.y" 1846 { yyval.opval = yyvsp[0].opval; } 1847 break; 1848 case 53: 1849 #line 345 "perly.y" 1850 { yyval.opval = Nullop; } 1851 break; 1852 case 54: 1853 #line 350 "perly.y" 1854 { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); } 1855 break; 1856 case 55: 1857 #line 355 "perly.y" 1858 { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); } 1859 break; 1860 case 56: 1861 #line 359 "perly.y" 1862 { yyval.ival = start_subparse(FALSE, 0); } 1863 break; 1864 case 57: 1865 #line 363 "perly.y" 1866 { yyval.ival = start_subparse(FALSE, CVf_ANON); } 1867 break; 1868 case 58: 1869 #line 367 "perly.y" 1870 { yyval.ival = start_subparse(TRUE, 0); } 1871 break; 1872 case 59: 1873 #line 371 "perly.y" 1874 { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a); 1875 if (strEQ(name, "BEGIN") || strEQ(name, "END") 1876 || strEQ(name, "INIT") || strEQ(name, "CHECK")) 1877 CvSPECIAL_on(PL_compcv); 1878 yyval.opval = yyvsp[0].opval; } 1879 break; 1880 case 60: 1881 #line 380 "perly.y" 1882 { yyval.opval = Nullop; } 1883 break; 1884 case 62: 1885 #line 386 "perly.y" 1886 { yyval.opval = Nullop; } 1887 break; 1888 case 63: 1889 #line 388 "perly.y" 1890 { yyval.opval = yyvsp[0].opval; } 1891 break; 1892 case 64: 1893 #line 390 "perly.y" 1894 { yyval.opval = Nullop; } 1895 break; 1896 case 65: 1897 #line 395 "perly.y" 1898 { yyval.opval = yyvsp[0].opval; } 1899 break; 1900 case 66: 1901 #line 397 "perly.y" 1902 { yyval.opval = Nullop; } 1903 break; 1904 case 67: 1905 #line 401 "perly.y" 1906 { yyval.opval = yyvsp[0].opval; } 1907 break; 1908 case 68: 1909 #line 402 "perly.y" 1910 { yyval.opval = Nullop; PL_expect = XSTATE; } 1911 break; 1912 case 69: 1913 #line 406 "perly.y" 1914 { package(yyvsp[-1].opval); } 1915 break; 1916 case 70: 1917 #line 408 "perly.y" 1918 { package(Nullop); } 1919 break; 1920 case 71: 1921 #line 412 "perly.y" 1922 { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } 1923 break; 1924 case 72: 1925 #line 414 "perly.y" 1926 { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); } 1927 break; 1928 case 73: 1929 #line 419 "perly.y" 1930 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); } 1931 break; 1932 case 74: 1933 #line 421 "perly.y" 1934 { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); } 1935 break; 1936 case 76: 1937 #line 427 "perly.y" 1938 { yyval.opval = yyvsp[-1].opval; } 1939 break; 1940 case 77: 1941 #line 429 "perly.y" 1942 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); } 1943 break; 1944 case 79: 1945 #line 435 "perly.y" 1946 { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED, 1947 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); } 1948 break; 1949 case 80: 1950 #line 438 "perly.y" 1951 { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED, 1952 prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); } 1953 break; 1954 case 81: 1955 #line 441 "perly.y" 1956 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED, 1957 append_elem(OP_LIST, 1958 prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval), 1959 newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); } 1960 break; 1961 case 82: 1962 #line 446 "perly.y" 1963 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED, 1964 append_elem(OP_LIST, scalar(yyvsp[-2].opval), 1965 newUNOP(OP_METHOD, 0, yyvsp[0].opval))); } 1966 break; 1967 case 83: 1968 #line 450 "perly.y" 1969 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED, 1970 append_elem(OP_LIST, 1971 prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval), 1972 newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); } 1973 break; 1974 case 84: 1975 #line 455 "perly.y" 1976 { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED, 1977 append_elem(OP_LIST, 1978 prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval), 1979 newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); } 1980 break; 1981 case 85: 1982 #line 460 "perly.y" 1983 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); } 1984 break; 1985 case 86: 1986 #line 462 "perly.y" 1987 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); } 1988 break; 1989 case 87: 1990 #line 464 "perly.y" 1991 { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); } 1992 break; 1993 case 88: 1994 #line 466 "perly.y" 1995 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 1996 append_elem(OP_LIST, 1997 prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); } 1998 break; 1999 case 91: 2000 #line 480 "perly.y" 2001 { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); } 2002 break; 2003 case 92: 2004 #line 482 "perly.y" 2005 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); } 2006 break; 2007 case 93: 2008 #line 484 "perly.y" 2009 { yyval.opval = newBINOP(OP_AELEM, 0, 2010 ref(newAVREF(yyvsp[-4].opval),OP_RV2AV), 2011 scalar(yyvsp[-1].opval));} 2012 break; 2013 case 94: 2014 #line 488 "perly.y" 2015 { yyval.opval = newBINOP(OP_AELEM, 0, 2016 ref(newAVREF(yyvsp[-3].opval),OP_RV2AV), 2017 scalar(yyvsp[-1].opval));} 2018 break; 2019 case 95: 2020 #line 492 "perly.y" 2021 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval)); 2022 PL_expect = XOPERATOR; } 2023 break; 2024 case 96: 2025 #line 495 "perly.y" 2026 { yyval.opval = newBINOP(OP_HELEM, 0, 2027 ref(newHVREF(yyvsp[-5].opval),OP_RV2HV), 2028 jmaybe(yyvsp[-2].opval)); 2029 PL_expect = XOPERATOR; } 2030 break; 2031 case 97: 2032 #line 500 "perly.y" 2033 { yyval.opval = newBINOP(OP_HELEM, 0, 2034 ref(newHVREF(yyvsp[-4].opval),OP_RV2HV), 2035 jmaybe(yyvsp[-2].opval)); 2036 PL_expect = XOPERATOR; } 2037 break; 2038 case 98: 2039 #line 505 "perly.y" 2040 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2041 newCVREF(0, scalar(yyvsp[-3].opval))); } 2042 break; 2043 case 99: 2044 #line 508 "perly.y" 2045 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2046 append_elem(OP_LIST, yyvsp[-1].opval, 2047 newCVREF(0, scalar(yyvsp[-4].opval)))); } 2048 break; 2049 case 100: 2050 #line 513 "perly.y" 2051 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2052 append_elem(OP_LIST, yyvsp[-1].opval, 2053 newCVREF(0, scalar(yyvsp[-3].opval)))); } 2054 break; 2055 case 101: 2056 #line 517 "perly.y" 2057 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2058 newCVREF(0, scalar(yyvsp[-2].opval))); } 2059 break; 2060 case 102: 2061 #line 523 "perly.y" 2062 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); } 2063 break; 2064 case 103: 2065 #line 525 "perly.y" 2066 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2067 break; 2068 case 104: 2069 #line 527 "perly.y" 2070 { if (yyvsp[-1].ival != OP_REPEAT) 2071 scalar(yyvsp[-2].opval); 2072 yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); } 2073 break; 2074 case 105: 2075 #line 531 "perly.y" 2076 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2077 break; 2078 case 106: 2079 #line 533 "perly.y" 2080 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2081 break; 2082 case 107: 2083 #line 535 "perly.y" 2084 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2085 break; 2086 case 108: 2087 #line 537 "perly.y" 2088 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2089 break; 2090 case 109: 2091 #line 539 "perly.y" 2092 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2093 break; 2094 case 110: 2095 #line 541 "perly.y" 2096 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2097 break; 2098 case 111: 2099 #line 543 "perly.y" 2100 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));} 2101 break; 2102 case 112: 2103 #line 545 "perly.y" 2104 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); } 2105 break; 2106 case 113: 2107 #line 547 "perly.y" 2108 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); } 2109 break; 2110 case 114: 2111 #line 549 "perly.y" 2112 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); } 2113 break; 2114 case 115: 2115 #line 554 "perly.y" 2116 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); } 2117 break; 2118 case 116: 2119 #line 556 "perly.y" 2120 { yyval.opval = yyvsp[0].opval; } 2121 break; 2122 case 117: 2123 #line 558 "perly.y" 2124 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); } 2125 break; 2126 case 118: 2127 #line 560 "perly.y" 2128 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));} 2129 break; 2130 case 119: 2131 #line 562 "perly.y" 2132 { yyval.opval = newUNOP(OP_POSTINC, 0, 2133 mod(scalar(yyvsp[-1].opval), OP_POSTINC)); } 2134 break; 2135 case 120: 2136 #line 565 "perly.y" 2137 { yyval.opval = newUNOP(OP_POSTDEC, 0, 2138 mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); } 2139 break; 2140 case 121: 2141 #line 568 "perly.y" 2142 { yyval.opval = newUNOP(OP_PREINC, 0, 2143 mod(scalar(yyvsp[0].opval), OP_PREINC)); } 2144 break; 2145 case 122: 2146 #line 571 "perly.y" 2147 { yyval.opval = newUNOP(OP_PREDEC, 0, 2148 mod(scalar(yyvsp[0].opval), OP_PREDEC)); } 2149 break; 2150 case 123: 2151 #line 578 "perly.y" 2152 { yyval.opval = newANONLIST(yyvsp[-1].opval); } 2153 break; 2154 case 124: 2155 #line 580 "perly.y" 2156 { yyval.opval = newANONLIST(Nullop); } 2157 break; 2158 case 125: 2159 #line 582 "perly.y" 2160 { yyval.opval = newANONHASH(yyvsp[-2].opval); } 2161 break; 2162 case 126: 2163 #line 584 "perly.y" 2164 { yyval.opval = newANONHASH(Nullop); } 2165 break; 2166 case 127: 2167 #line 586 "perly.y" 2168 { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); } 2169 break; 2170 case 128: 2171 #line 592 "perly.y" 2172 { yyval.opval = dofile(yyvsp[0].opval); } 2173 break; 2174 case 129: 2175 #line 594 "perly.y" 2176 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); } 2177 break; 2178 case 130: 2179 #line 596 "perly.y" 2180 { yyval.opval = newUNOP(OP_ENTERSUB, 2181 OPf_SPECIAL|OPf_STACKED, 2182 prepend_elem(OP_LIST, 2183 scalar(newCVREF( 2184 (OPpENTERSUB_AMPER<<8), 2185 scalar(yyvsp[-2].opval) 2186 )),Nullop)); dep();} 2187 break; 2188 case 131: 2189 #line 604 "perly.y" 2190 { yyval.opval = newUNOP(OP_ENTERSUB, 2191 OPf_SPECIAL|OPf_STACKED, 2192 append_elem(OP_LIST, 2193 yyvsp[-1].opval, 2194 scalar(newCVREF( 2195 (OPpENTERSUB_AMPER<<8), 2196 scalar(yyvsp[-3].opval) 2197 )))); dep();} 2198 break; 2199 case 132: 2200 #line 613 "perly.y" 2201 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, 2202 prepend_elem(OP_LIST, 2203 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();} 2204 break; 2205 case 133: 2206 #line 617 "perly.y" 2207 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, 2208 prepend_elem(OP_LIST, 2209 yyvsp[-1].opval, 2210 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();} 2211 break; 2212 case 138: 2213 #line 629 "perly.y" 2214 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); } 2215 break; 2216 case 139: 2217 #line 631 "perly.y" 2218 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); } 2219 break; 2220 case 140: 2221 #line 633 "perly.y" 2222 { yyval.opval = yyvsp[0].opval; } 2223 break; 2224 case 141: 2225 #line 635 "perly.y" 2226 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); } 2227 break; 2228 case 142: 2229 #line 637 "perly.y" 2230 { yyval.opval = sawparens(yyvsp[-1].opval); } 2231 break; 2232 case 143: 2233 #line 639 "perly.y" 2234 { yyval.opval = sawparens(newNULLLIST()); } 2235 break; 2236 case 144: 2237 #line 641 "perly.y" 2238 { yyval.opval = yyvsp[0].opval; } 2239 break; 2240 case 145: 2241 #line 643 "perly.y" 2242 { yyval.opval = yyvsp[0].opval; } 2243 break; 2244 case 146: 2245 #line 645 "perly.y" 2246 { yyval.opval = yyvsp[0].opval; } 2247 break; 2248 case 147: 2249 #line 647 "perly.y" 2250 { yyval.opval = yyvsp[0].opval; } 2251 break; 2252 case 148: 2253 #line 649 "perly.y" 2254 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));} 2255 break; 2256 case 149: 2257 #line 651 "perly.y" 2258 { yyval.opval = yyvsp[0].opval; } 2259 break; 2260 case 150: 2261 #line 653 "perly.y" 2262 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); } 2263 break; 2264 case 151: 2265 #line 655 "perly.y" 2266 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); } 2267 break; 2268 case 152: 2269 #line 657 "perly.y" 2270 { yyval.opval = prepend_elem(OP_ASLICE, 2271 newOP(OP_PUSHMARK, 0), 2272 newLISTOP(OP_ASLICE, 0, 2273 list(yyvsp[-1].opval), 2274 ref(yyvsp[-3].opval, OP_ASLICE))); } 2275 break; 2276 case 153: 2277 #line 663 "perly.y" 2278 { yyval.opval = prepend_elem(OP_HSLICE, 2279 newOP(OP_PUSHMARK, 0), 2280 newLISTOP(OP_HSLICE, 0, 2281 list(yyvsp[-2].opval), 2282 ref(oopsHV(yyvsp[-4].opval), OP_HSLICE))); 2283 PL_expect = XOPERATOR; } 2284 break; 2285 case 154: 2286 #line 670 "perly.y" 2287 { yyval.opval = yyvsp[0].opval; } 2288 break; 2289 case 155: 2290 #line 672 "perly.y" 2291 { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); } 2292 break; 2293 case 156: 2294 #line 674 "perly.y" 2295 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); } 2296 break; 2297 case 157: 2298 #line 676 "perly.y" 2299 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2300 append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); } 2301 break; 2302 case 158: 2303 #line 679 "perly.y" 2304 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2305 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); } 2306 break; 2307 case 159: 2308 #line 682 "perly.y" 2309 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL); 2310 PL_hints |= HINT_BLOCK_SCOPE; } 2311 break; 2312 case 160: 2313 #line 685 "perly.y" 2314 { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); } 2315 break; 2316 case 161: 2317 #line 687 "perly.y" 2318 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); } 2319 break; 2320 case 162: 2321 #line 689 "perly.y" 2322 { yyval.opval = newOP(yyvsp[0].ival, 0); } 2323 break; 2324 case 163: 2325 #line 691 "perly.y" 2326 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); } 2327 break; 2328 case 164: 2329 #line 693 "perly.y" 2330 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); } 2331 break; 2332 case 165: 2333 #line 695 "perly.y" 2334 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2335 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); } 2336 break; 2337 case 166: 2338 #line 698 "perly.y" 2339 { yyval.opval = newOP(yyvsp[0].ival, 0); } 2340 break; 2341 case 167: 2342 #line 700 "perly.y" 2343 { yyval.opval = newOP(yyvsp[-2].ival, 0); } 2344 break; 2345 case 168: 2346 #line 702 "perly.y" 2347 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2348 scalar(yyvsp[0].opval)); } 2349 break; 2350 case 169: 2351 #line 705 "perly.y" 2352 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); } 2353 break; 2354 case 170: 2355 #line 707 "perly.y" 2356 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); } 2357 break; 2358 case 171: 2359 #line 709 "perly.y" 2360 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); } 2361 break; 2362 case 172: 2363 #line 711 "perly.y" 2364 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); } 2365 break; 2366 case 175: 2367 #line 718 "perly.y" 2368 { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); } 2369 break; 2370 case 176: 2371 #line 720 "perly.y" 2372 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); } 2373 break; 2374 case 177: 2375 #line 725 "perly.y" 2376 { yyval.opval = sawparens(yyvsp[-1].opval); } 2377 break; 2378 case 178: 2379 #line 727 "perly.y" 2380 { yyval.opval = sawparens(newNULLLIST()); } 2381 break; 2382 case 179: 2383 #line 729 "perly.y" 2384 { yyval.opval = yyvsp[0].opval; } 2385 break; 2386 case 180: 2387 #line 731 "perly.y" 2388 { yyval.opval = yyvsp[0].opval; } 2389 break; 2390 case 181: 2391 #line 733 "perly.y" 2392 { yyval.opval = yyvsp[0].opval; } 2393 break; 2394 case 182: 2395 #line 738 "perly.y" 2396 { yyval.opval = Nullop; } 2397 break; 2398 case 183: 2399 #line 740 "perly.y" 2400 { yyval.opval = yyvsp[0].opval; } 2401 break; 2402 case 184: 2403 #line 744 "perly.y" 2404 { yyval.opval = Nullop; } 2405 break; 2406 case 185: 2407 #line 746 "perly.y" 2408 { yyval.opval = yyvsp[0].opval; } 2409 break; 2410 case 186: 2411 #line 748 "perly.y" 2412 { yyval.opval = yyvsp[-1].opval; } 2413 break; 2414 case 187: 2415 #line 754 "perly.y" 2416 { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); } 2417 break; 2418 case 188: 2419 #line 758 "perly.y" 2420 { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); } 2421 break; 2422 case 189: 2423 #line 762 "perly.y" 2424 { yyval.opval = newSVREF(yyvsp[0].opval); } 2425 break; 2426 case 190: 2427 #line 766 "perly.y" 2428 { yyval.opval = newAVREF(yyvsp[0].opval); } 2429 break; 2430 case 191: 2431 #line 770 "perly.y" 2432 { yyval.opval = newHVREF(yyvsp[0].opval); } 2433 break; 2434 case 192: 2435 #line 774 "perly.y" 2436 { yyval.opval = newAVREF(yyvsp[0].opval); } 2437 break; 2438 case 193: 2439 #line 778 "perly.y" 2440 { yyval.opval = newGVREF(0,yyvsp[0].opval); } 2441 break; 2442 case 194: 2443 #line 783 "perly.y" 2444 { yyval.opval = scalar(yyvsp[0].opval); } 2445 break; 2446 case 195: 2447 #line 785 "perly.y" 2448 { yyval.opval = scalar(yyvsp[0].opval); } 2449 break; 2450 case 196: 2451 #line 787 "perly.y" 2452 { yyval.opval = scope(yyvsp[0].opval); } 2453 break; 2454 case 197: 2455 #line 790 "perly.y" 2456 { yyval.opval = yyvsp[0].opval; } 2457 break; 2458 #line 2459 "perly.c" 2459 } 2460 yyssp -= yym; 2461 yystate = *yyssp; 2462 yyvsp -= yym; 2463 yym = yylhs[yyn]; 2464 if (yystate == 0 && yym == 0) 2465 { 2466 #if YYDEBUG 2467 if (yydebug) 2468 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\ 2469 state %d\n", YYFINAL); 2470 #endif 2471 yystate = YYFINAL; 2472 *++yyssp = YYFINAL; 2473 *++yyvsp = yyval; 2474 if (yychar < 0) 2475 { 2476 if ((yychar = yylex()) < 0) yychar = 0; 2477 #if YYDEBUG 2478 if (yydebug) 2479 { 2480 yys = 0; 2481 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 2482 if (!yys) yys = "illegal-symbol"; 2483 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", 2484 YYFINAL, yychar, yys); 2485 } 2486 #endif 2487 } 2488 if (yychar == 0) goto yyaccept; 2489 goto yyloop; 2490 } 2491 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && 2492 yyn <= YYTABLESIZE && yycheck[yyn] == yystate) 2493 yystate = yytable[yyn]; 2494 else 2495 yystate = yydgoto[yym]; 2496 #if YYDEBUG 2497 if (yydebug) 2498 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \ 2499 to state %d\n", *yyssp, yystate); 2500 #endif 2501 if (yyssp >= yyss + yystacksize - 1) 2502 { 2503 /* 2504 ** reallocate and recover. Note that pointers 2505 ** have to be reset, or bad things will happen 2506 */ 2507 int yyps_index = (yyssp - yyss); 2508 int yypv_index = (yyvsp - yyvs); 2509 yystacksize += YYSTACKSIZE; 2510 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE); 2511 ysave->yyss = Renew(yyss, yystacksize, short); 2512 if (!yyvs || !yyss) 2513 goto yyoverflow; 2514 yyssp = yyss + yyps_index; 2515 yyvsp = yyvs + yypv_index; 2516 } 2517 *++yyssp = yystate; 2518 *++yyvsp = yyval; 2519 goto yyloop; 2520 yyoverflow: 2521 yyerror("Out of memory for yacc stack"); 2522 yyabort: 2523 retval = 1; 2524 yyaccept: 2525 #ifdef USE_ITHREADS 2526 LEAVE; /* force yydestruct() before we return */ 2527 #endif 2528 return retval; 2529 } 2530 2531 static void 2532 yydestruct(pTHX_ void *ptr) 2533 { 2534 struct ysv* ysave = (struct ysv*)ptr; 2535 if (ysave->yyss) Safefree(ysave->yyss); 2536 if (ysave->yyvs) Safefree(ysave->yyvs); 2537 yydebug = ysave->oldyydebug; 2538 yynerrs = ysave->oldyynerrs; 2539 yyerrflag = ysave->oldyyerrflag; 2540 yychar = ysave->oldyychar; 2541 yyval = ysave->oldyyval; 2542 yylval = ysave->oldyylval; 2543 Safefree(ysave); 2544 } 2545