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 23struct 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 34static 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" 39typedef 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 55static 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}; 77static 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}; 99static 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}; 141static 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}; 149static 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}; 191static 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}; 233static 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 242static 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}; 701static 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 1166static 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, 11690,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, 11700,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, 11710,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, 11720,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, 11730,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, 11740,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}; 1183static 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 794 "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 1412int 1413yyparse() 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 1466yyloop: 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; 1529yyinrecovery: 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 } 1592yyreduce: 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 { 1602case 1: 1603#line 131 "perly.y" 1604{ yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); } 1605break; 1606case 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); } 1611break; 1612case 3: 1613#line 142 "perly.y" 1614{ yyval.ival = block_start(TRUE); } 1615break; 1616case 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 } 1624break; 1625case 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); } 1630break; 1631case 6: 1632#line 162 "perly.y" 1633{ yyval.ival = block_start(FALSE); } 1634break; 1635case 7: 1636#line 167 "perly.y" 1637{ yyval.opval = Nullop; } 1638break; 1639case 8: 1640#line 169 "perly.y" 1641{ yyval.opval = yyvsp[-1].opval; } 1642break; 1643case 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; } 1649break; 1650case 10: 1651#line 179 "perly.y" 1652{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); } 1653break; 1654case 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; } 1664break; 1665case 13: 1666#line 191 "perly.y" 1667{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval); 1668 PL_expect = XSTATE; } 1669break; 1670case 14: 1671#line 197 "perly.y" 1672{ yyval.opval = Nullop; } 1673break; 1674case 15: 1675#line 199 "perly.y" 1676{ yyval.opval = yyvsp[0].opval; } 1677break; 1678case 16: 1679#line 201 "perly.y" 1680{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); } 1681break; 1682case 17: 1683#line 203 "perly.y" 1684{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); } 1685break; 1686case 18: 1687#line 205 "perly.y" 1688{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); } 1689break; 1690case 19: 1691#line 207 "perly.y" 1692{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);} 1693break; 1694case 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); } 1698break; 1699case 21: 1700#line 215 "perly.y" 1701{ yyval.opval = Nullop; } 1702break; 1703case 22: 1704#line 217 "perly.y" 1705{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); } 1706break; 1707case 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; } 1712break; 1713case 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)); } 1718break; 1719case 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)); } 1724break; 1725case 26: 1726#line 237 "perly.y" 1727{ yyval.opval = Nullop; } 1728break; 1729case 27: 1730#line 239 "perly.y" 1731{ yyval.opval = scope(yyvsp[0].opval); } 1732break; 1733case 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))); } 1740break; 1741case 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))); } 1748break; 1749case 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)); } 1753break; 1754case 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)); } 1759break; 1760case 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)); } 1764break; 1765case 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); } 1781break; 1782case 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)); } 1787break; 1788case 35: 1789#line 289 "perly.y" 1790{ yyval.opval = Nullop; } 1791break; 1792case 37: 1793#line 295 "perly.y" 1794{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; } 1795break; 1796case 39: 1797#line 301 "perly.y" 1798{ yyval.opval = invert(scalar(yyvsp[0].opval)); } 1799break; 1800case 40: 1801#line 306 "perly.y" 1802{ yyval.opval = yyvsp[0].opval; intro_my(); } 1803break; 1804case 41: 1805#line 310 "perly.y" 1806{ yyval.opval = yyvsp[0].opval; intro_my(); } 1807break; 1808case 42: 1809#line 314 "perly.y" 1810{ yyval.opval = yyvsp[0].opval; intro_my(); } 1811break; 1812case 43: 1813#line 318 "perly.y" 1814{ yyval.opval = yyvsp[0].opval; intro_my(); } 1815break; 1816case 44: 1817#line 323 "perly.y" 1818{ yyval.pval = Nullch; } 1819break; 1820case 46: 1821#line 329 "perly.y" 1822{ yyval.ival = 0; } 1823break; 1824case 47: 1825#line 331 "perly.y" 1826{ yyval.ival = 0; } 1827break; 1828case 48: 1829#line 333 "perly.y" 1830{ yyval.ival = 0; } 1831break; 1832case 49: 1833#line 335 "perly.y" 1834{ yyval.ival = 0; } 1835break; 1836case 50: 1837#line 337 "perly.y" 1838{ yyval.ival = 0; } 1839break; 1840case 51: 1841#line 341 "perly.y" 1842{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); } 1843break; 1844case 52: 1845#line 344 "perly.y" 1846{ yyval.opval = yyvsp[0].opval; } 1847break; 1848case 53: 1849#line 345 "perly.y" 1850{ yyval.opval = Nullop; } 1851break; 1852case 54: 1853#line 350 "perly.y" 1854{ newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); } 1855break; 1856case 55: 1857#line 355 "perly.y" 1858{ newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); } 1859break; 1860case 56: 1861#line 359 "perly.y" 1862{ yyval.ival = start_subparse(FALSE, 0); } 1863break; 1864case 57: 1865#line 363 "perly.y" 1866{ yyval.ival = start_subparse(FALSE, CVf_ANON); } 1867break; 1868case 58: 1869#line 367 "perly.y" 1870{ yyval.ival = start_subparse(TRUE, 0); } 1871break; 1872case 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; } 1879break; 1880case 60: 1881#line 380 "perly.y" 1882{ yyval.opval = Nullop; } 1883break; 1884case 62: 1885#line 386 "perly.y" 1886{ yyval.opval = Nullop; } 1887break; 1888case 63: 1889#line 388 "perly.y" 1890{ yyval.opval = yyvsp[0].opval; } 1891break; 1892case 64: 1893#line 390 "perly.y" 1894{ yyval.opval = Nullop; } 1895break; 1896case 65: 1897#line 395 "perly.y" 1898{ yyval.opval = yyvsp[0].opval; } 1899break; 1900case 66: 1901#line 397 "perly.y" 1902{ yyval.opval = Nullop; } 1903break; 1904case 67: 1905#line 401 "perly.y" 1906{ yyval.opval = yyvsp[0].opval; } 1907break; 1908case 68: 1909#line 402 "perly.y" 1910{ yyval.opval = Nullop; PL_expect = XSTATE; } 1911break; 1912case 69: 1913#line 406 "perly.y" 1914{ package(yyvsp[-1].opval); } 1915break; 1916case 70: 1917#line 408 "perly.y" 1918{ package(Nullop); } 1919break; 1920case 71: 1921#line 412 "perly.y" 1922{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } 1923break; 1924case 72: 1925#line 414 "perly.y" 1926{ utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); } 1927break; 1928case 73: 1929#line 419 "perly.y" 1930{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); } 1931break; 1932case 74: 1933#line 421 "perly.y" 1934{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); } 1935break; 1936case 76: 1937#line 427 "perly.y" 1938{ yyval.opval = yyvsp[-1].opval; } 1939break; 1940case 77: 1941#line 429 "perly.y" 1942{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); } 1943break; 1944case 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) ); } 1948break; 1949case 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) ); } 1953break; 1954case 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))); } 1960break; 1961case 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))); } 1966break; 1967case 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))); } 1973break; 1974case 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))); } 1980break; 1981case 85: 1982#line 460 "perly.y" 1983{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); } 1984break; 1985case 86: 1986#line 462 "perly.y" 1987{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); } 1988break; 1989case 87: 1990#line 464 "perly.y" 1991{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); } 1992break; 1993case 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)); } 1998break; 1999case 91: 2000#line 480 "perly.y" 2001{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); 2002 PL_expect = XOPERATOR; } 2003break; 2004case 92: 2005#line 483 "perly.y" 2006{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); } 2007break; 2008case 93: 2009#line 485 "perly.y" 2010{ yyval.opval = newBINOP(OP_AELEM, 0, 2011 ref(newAVREF(yyvsp[-4].opval),OP_RV2AV), 2012 scalar(yyvsp[-1].opval));} 2013break; 2014case 94: 2015#line 489 "perly.y" 2016{ yyval.opval = newBINOP(OP_AELEM, 0, 2017 ref(newAVREF(yyvsp[-3].opval),OP_RV2AV), 2018 scalar(yyvsp[-1].opval));} 2019break; 2020case 95: 2021#line 493 "perly.y" 2022{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval)); 2023 PL_expect = XOPERATOR; } 2024break; 2025case 96: 2026#line 496 "perly.y" 2027{ yyval.opval = newBINOP(OP_HELEM, 0, 2028 ref(newHVREF(yyvsp[-5].opval),OP_RV2HV), 2029 jmaybe(yyvsp[-2].opval)); 2030 PL_expect = XOPERATOR; } 2031break; 2032case 97: 2033#line 501 "perly.y" 2034{ yyval.opval = newBINOP(OP_HELEM, 0, 2035 ref(newHVREF(yyvsp[-4].opval),OP_RV2HV), 2036 jmaybe(yyvsp[-2].opval)); 2037 PL_expect = XOPERATOR; } 2038break; 2039case 98: 2040#line 506 "perly.y" 2041{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2042 newCVREF(0, scalar(yyvsp[-3].opval))); } 2043break; 2044case 99: 2045#line 509 "perly.y" 2046{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2047 append_elem(OP_LIST, yyvsp[-1].opval, 2048 newCVREF(0, scalar(yyvsp[-4].opval)))); } 2049break; 2050case 100: 2051#line 514 "perly.y" 2052{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2053 append_elem(OP_LIST, yyvsp[-1].opval, 2054 newCVREF(0, scalar(yyvsp[-3].opval)))); } 2055break; 2056case 101: 2057#line 518 "perly.y" 2058{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2059 newCVREF(0, scalar(yyvsp[-2].opval))); } 2060break; 2061case 102: 2062#line 524 "perly.y" 2063{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); } 2064break; 2065case 103: 2066#line 526 "perly.y" 2067{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2068break; 2069case 104: 2070#line 528 "perly.y" 2071{ if (yyvsp[-1].ival != OP_REPEAT) 2072 scalar(yyvsp[-2].opval); 2073 yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); } 2074break; 2075case 105: 2076#line 532 "perly.y" 2077{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2078break; 2079case 106: 2080#line 534 "perly.y" 2081{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2082break; 2083case 107: 2084#line 536 "perly.y" 2085{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2086break; 2087case 108: 2088#line 538 "perly.y" 2089{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2090break; 2091case 109: 2092#line 540 "perly.y" 2093{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2094break; 2095case 110: 2096#line 542 "perly.y" 2097{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); } 2098break; 2099case 111: 2100#line 544 "perly.y" 2101{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));} 2102break; 2103case 112: 2104#line 546 "perly.y" 2105{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); } 2106break; 2107case 113: 2108#line 548 "perly.y" 2109{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); } 2110break; 2111case 114: 2112#line 550 "perly.y" 2113{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); } 2114break; 2115case 115: 2116#line 555 "perly.y" 2117{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); } 2118break; 2119case 116: 2120#line 557 "perly.y" 2121{ yyval.opval = yyvsp[0].opval; } 2122break; 2123case 117: 2124#line 559 "perly.y" 2125{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); } 2126break; 2127case 118: 2128#line 561 "perly.y" 2129{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));} 2130break; 2131case 119: 2132#line 563 "perly.y" 2133{ yyval.opval = newUNOP(OP_POSTINC, 0, 2134 mod(scalar(yyvsp[-1].opval), OP_POSTINC)); } 2135break; 2136case 120: 2137#line 566 "perly.y" 2138{ yyval.opval = newUNOP(OP_POSTDEC, 0, 2139 mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); } 2140break; 2141case 121: 2142#line 569 "perly.y" 2143{ yyval.opval = newUNOP(OP_PREINC, 0, 2144 mod(scalar(yyvsp[0].opval), OP_PREINC)); } 2145break; 2146case 122: 2147#line 572 "perly.y" 2148{ yyval.opval = newUNOP(OP_PREDEC, 0, 2149 mod(scalar(yyvsp[0].opval), OP_PREDEC)); } 2150break; 2151case 123: 2152#line 579 "perly.y" 2153{ yyval.opval = newANONLIST(yyvsp[-1].opval); } 2154break; 2155case 124: 2156#line 581 "perly.y" 2157{ yyval.opval = newANONLIST(Nullop); } 2158break; 2159case 125: 2160#line 583 "perly.y" 2161{ yyval.opval = newANONHASH(yyvsp[-2].opval); } 2162break; 2163case 126: 2164#line 585 "perly.y" 2165{ yyval.opval = newANONHASH(Nullop); } 2166break; 2167case 127: 2168#line 587 "perly.y" 2169{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); } 2170break; 2171case 128: 2172#line 593 "perly.y" 2173{ yyval.opval = dofile(yyvsp[0].opval); } 2174break; 2175case 129: 2176#line 595 "perly.y" 2177{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); } 2178break; 2179case 130: 2180#line 597 "perly.y" 2181{ yyval.opval = newUNOP(OP_ENTERSUB, 2182 OPf_SPECIAL|OPf_STACKED, 2183 prepend_elem(OP_LIST, 2184 scalar(newCVREF( 2185 (OPpENTERSUB_AMPER<<8), 2186 scalar(yyvsp[-2].opval) 2187 )),Nullop)); dep();} 2188break; 2189case 131: 2190#line 605 "perly.y" 2191{ yyval.opval = newUNOP(OP_ENTERSUB, 2192 OPf_SPECIAL|OPf_STACKED, 2193 append_elem(OP_LIST, 2194 yyvsp[-1].opval, 2195 scalar(newCVREF( 2196 (OPpENTERSUB_AMPER<<8), 2197 scalar(yyvsp[-3].opval) 2198 )))); dep();} 2199break; 2200case 132: 2201#line 614 "perly.y" 2202{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, 2203 prepend_elem(OP_LIST, 2204 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();} 2205break; 2206case 133: 2207#line 618 "perly.y" 2208{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, 2209 prepend_elem(OP_LIST, 2210 yyvsp[-1].opval, 2211 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();} 2212break; 2213case 138: 2214#line 630 "perly.y" 2215{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); } 2216break; 2217case 139: 2218#line 632 "perly.y" 2219{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); } 2220break; 2221case 140: 2222#line 634 "perly.y" 2223{ yyval.opval = yyvsp[0].opval; } 2224break; 2225case 141: 2226#line 636 "perly.y" 2227{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); } 2228break; 2229case 142: 2230#line 638 "perly.y" 2231{ yyval.opval = sawparens(yyvsp[-1].opval); } 2232break; 2233case 143: 2234#line 640 "perly.y" 2235{ yyval.opval = sawparens(newNULLLIST()); } 2236break; 2237case 144: 2238#line 642 "perly.y" 2239{ yyval.opval = yyvsp[0].opval; } 2240break; 2241case 145: 2242#line 644 "perly.y" 2243{ yyval.opval = yyvsp[0].opval; } 2244break; 2245case 146: 2246#line 646 "perly.y" 2247{ yyval.opval = yyvsp[0].opval; } 2248break; 2249case 147: 2250#line 648 "perly.y" 2251{ yyval.opval = yyvsp[0].opval; } 2252break; 2253case 148: 2254#line 650 "perly.y" 2255{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));} 2256break; 2257case 149: 2258#line 652 "perly.y" 2259{ yyval.opval = yyvsp[0].opval; } 2260break; 2261case 150: 2262#line 654 "perly.y" 2263{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); } 2264break; 2265case 151: 2266#line 656 "perly.y" 2267{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); } 2268break; 2269case 152: 2270#line 658 "perly.y" 2271{ yyval.opval = prepend_elem(OP_ASLICE, 2272 newOP(OP_PUSHMARK, 0), 2273 newLISTOP(OP_ASLICE, 0, 2274 list(yyvsp[-1].opval), 2275 ref(yyvsp[-3].opval, OP_ASLICE))); } 2276break; 2277case 153: 2278#line 664 "perly.y" 2279{ yyval.opval = prepend_elem(OP_HSLICE, 2280 newOP(OP_PUSHMARK, 0), 2281 newLISTOP(OP_HSLICE, 0, 2282 list(yyvsp[-2].opval), 2283 ref(oopsHV(yyvsp[-4].opval), OP_HSLICE))); 2284 PL_expect = XOPERATOR; } 2285break; 2286case 154: 2287#line 671 "perly.y" 2288{ yyval.opval = yyvsp[0].opval; } 2289break; 2290case 155: 2291#line 673 "perly.y" 2292{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); } 2293break; 2294case 156: 2295#line 675 "perly.y" 2296{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); } 2297break; 2298case 157: 2299#line 677 "perly.y" 2300{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2301 append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); } 2302break; 2303case 158: 2304#line 680 "perly.y" 2305{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2306 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); } 2307break; 2308case 159: 2309#line 683 "perly.y" 2310{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL); 2311 PL_hints |= HINT_BLOCK_SCOPE; } 2312break; 2313case 160: 2314#line 686 "perly.y" 2315{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); } 2316break; 2317case 161: 2318#line 688 "perly.y" 2319{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); } 2320break; 2321case 162: 2322#line 690 "perly.y" 2323{ yyval.opval = newOP(yyvsp[0].ival, 0); } 2324break; 2325case 163: 2326#line 692 "perly.y" 2327{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); } 2328break; 2329case 164: 2330#line 694 "perly.y" 2331{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); } 2332break; 2333case 165: 2334#line 696 "perly.y" 2335{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2336 append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); } 2337break; 2338case 166: 2339#line 699 "perly.y" 2340{ yyval.opval = newOP(yyvsp[0].ival, 0); } 2341break; 2342case 167: 2343#line 701 "perly.y" 2344{ yyval.opval = newOP(yyvsp[-2].ival, 0); } 2345break; 2346case 168: 2347#line 703 "perly.y" 2348{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, 2349 scalar(yyvsp[0].opval)); } 2350break; 2351case 169: 2352#line 706 "perly.y" 2353{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); } 2354break; 2355case 170: 2356#line 708 "perly.y" 2357{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); } 2358break; 2359case 171: 2360#line 710 "perly.y" 2361{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); } 2362break; 2363case 172: 2364#line 712 "perly.y" 2365{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); } 2366break; 2367case 175: 2368#line 719 "perly.y" 2369{ yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); } 2370break; 2371case 176: 2372#line 721 "perly.y" 2373{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); } 2374break; 2375case 177: 2376#line 726 "perly.y" 2377{ yyval.opval = sawparens(yyvsp[-1].opval); } 2378break; 2379case 178: 2380#line 728 "perly.y" 2381{ yyval.opval = sawparens(newNULLLIST()); } 2382break; 2383case 179: 2384#line 730 "perly.y" 2385{ yyval.opval = yyvsp[0].opval; } 2386break; 2387case 180: 2388#line 732 "perly.y" 2389{ yyval.opval = yyvsp[0].opval; } 2390break; 2391case 181: 2392#line 734 "perly.y" 2393{ yyval.opval = yyvsp[0].opval; } 2394break; 2395case 182: 2396#line 739 "perly.y" 2397{ yyval.opval = Nullop; } 2398break; 2399case 183: 2400#line 741 "perly.y" 2401{ yyval.opval = yyvsp[0].opval; } 2402break; 2403case 184: 2404#line 745 "perly.y" 2405{ yyval.opval = Nullop; } 2406break; 2407case 185: 2408#line 747 "perly.y" 2409{ yyval.opval = yyvsp[0].opval; } 2410break; 2411case 186: 2412#line 749 "perly.y" 2413{ yyval.opval = yyvsp[-1].opval; } 2414break; 2415case 187: 2416#line 755 "perly.y" 2417{ PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); } 2418break; 2419case 188: 2420#line 759 "perly.y" 2421{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); } 2422break; 2423case 189: 2424#line 763 "perly.y" 2425{ yyval.opval = newSVREF(yyvsp[0].opval); } 2426break; 2427case 190: 2428#line 767 "perly.y" 2429{ yyval.opval = newAVREF(yyvsp[0].opval); } 2430break; 2431case 191: 2432#line 771 "perly.y" 2433{ yyval.opval = newHVREF(yyvsp[0].opval); } 2434break; 2435case 192: 2436#line 775 "perly.y" 2437{ yyval.opval = newAVREF(yyvsp[0].opval); } 2438break; 2439case 193: 2440#line 779 "perly.y" 2441{ yyval.opval = newGVREF(0,yyvsp[0].opval); } 2442break; 2443case 194: 2444#line 784 "perly.y" 2445{ yyval.opval = scalar(yyvsp[0].opval); } 2446break; 2447case 195: 2448#line 786 "perly.y" 2449{ yyval.opval = scalar(yyvsp[0].opval); } 2450break; 2451case 196: 2452#line 788 "perly.y" 2453{ yyval.opval = scope(yyvsp[0].opval); } 2454break; 2455case 197: 2456#line 791 "perly.y" 2457{ yyval.opval = yyvsp[0].opval; } 2458break; 2459#line 2460 "perly.c" 2460 } 2461 yyssp -= yym; 2462 yystate = *yyssp; 2463 yyvsp -= yym; 2464 yym = yylhs[yyn]; 2465 if (yystate == 0 && yym == 0) 2466 { 2467#if YYDEBUG 2468 if (yydebug) 2469 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\ 2470 state %d\n", YYFINAL); 2471#endif 2472 yystate = YYFINAL; 2473 *++yyssp = YYFINAL; 2474 *++yyvsp = yyval; 2475 if (yychar < 0) 2476 { 2477 if ((yychar = yylex()) < 0) yychar = 0; 2478#if YYDEBUG 2479 if (yydebug) 2480 { 2481 yys = 0; 2482 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 2483 if (!yys) yys = "illegal-symbol"; 2484 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", 2485 YYFINAL, yychar, yys); 2486 } 2487#endif 2488 } 2489 if (yychar == 0) goto yyaccept; 2490 goto yyloop; 2491 } 2492 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && 2493 yyn <= YYTABLESIZE && yycheck[yyn] == yystate) 2494 yystate = yytable[yyn]; 2495 else 2496 yystate = yydgoto[yym]; 2497#if YYDEBUG 2498 if (yydebug) 2499 PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \ 2500to state %d\n", *yyssp, yystate); 2501#endif 2502 if (yyssp >= yyss + yystacksize - 1) 2503 { 2504 /* 2505 ** reallocate and recover. Note that pointers 2506 ** have to be reset, or bad things will happen 2507 */ 2508 int yyps_index = (yyssp - yyss); 2509 int yypv_index = (yyvsp - yyvs); 2510 yystacksize += YYSTACKSIZE; 2511 ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE); 2512 ysave->yyss = Renew(yyss, yystacksize, short); 2513 if (!yyvs || !yyss) 2514 goto yyoverflow; 2515 yyssp = yyss + yyps_index; 2516 yyvsp = yyvs + yypv_index; 2517 } 2518 *++yyssp = yystate; 2519 *++yyvsp = yyval; 2520 goto yyloop; 2521yyoverflow: 2522 yyerror("Out of memory for yacc stack"); 2523yyabort: 2524 retval = 1; 2525yyaccept: 2526#ifdef USE_ITHREADS 2527 LEAVE; /* force yydestruct() before we return */ 2528#endif 2529 return retval; 2530} 2531 2532static void 2533yydestruct(pTHX_ void *ptr) 2534{ 2535 struct ysv* ysave = (struct ysv*)ptr; 2536 if (ysave->yyss) Safefree(ysave->yyss); 2537 if (ysave->yyvs) Safefree(ysave->yyvs); 2538 yydebug = ysave->oldyydebug; 2539 yynerrs = ysave->oldyynerrs; 2540 yyerrflag = ysave->oldyyerrflag; 2541 yychar = ysave->oldyychar; 2542 yyval = ysave->oldyyval; 2543 yylval = ysave->oldyylval; 2544 Safefree(ysave); 2545} 2546