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