From e0ff4b7e5759664d2b0203ad4d775c7864905930 Mon Sep 17 00:00:00 2001 From: vadim Date: Thu, 30 Nov 2017 19:04:52 +0200 Subject: [PATCH] parse use statements --- parser.go | 4496 +++++++++++++++++++++++++++-------------------------- parser.y | 78 +- 2 files changed, 2386 insertions(+), 2188 deletions(-) diff --git a/parser.go b/parser.go index ed81d26..882e2c1 100644 --- a/parser.go +++ b/parser.go @@ -367,16 +367,10 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line parser.y:1007 +//line parser.y:1061 const src = ` [ - 'a' => 'b', - ] - ]; -} - +use A, B as C; +use \D\{function E, F}; ` func main() { @@ -391,799 +385,808 @@ var yyExca = [...]int{ -1, 1, 1, -1, -2, 0, - -1, 37, - 133, 372, - 153, 372, - -2, 378, - -1, 75, - 133, 374, - 153, 374, - -2, 349, - -1, 91, - 153, 370, - -2, 366, - -1, 187, - 133, 372, - 153, 372, - -2, 278, - -1, 193, - 133, 372, - 153, 372, - -2, 280, - -1, 282, + -1, 38, + 133, 393, + 153, 393, + -2, 399, + -1, 76, + 133, 395, + 153, 395, + -2, 370, + -1, 92, + 153, 391, + -2, 387, + -1, 196, + 133, 393, + 153, 393, + -2, 299, + -1, 202, + 133, 393, + 153, 393, + -2, 301, + -1, 302, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, - -2, 302, - -1, 283, + -2, 323, + -1, 303, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, - -2, 303, - -1, 284, + -2, 324, + -1, 304, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, - -2, 304, - -1, 285, + -2, 325, + -1, 305, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, - -2, 305, - -1, 286, + -2, 326, + -1, 306, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, - -2, 306, - -1, 287, + -2, 327, + -1, 307, 43, 0, 44, 0, 45, 0, 46, 0, - -2, 307, - -1, 288, + -2, 328, + -1, 308, 43, 0, 44, 0, 45, 0, 46, 0, - -2, 308, - -1, 289, + -2, 329, + -1, 309, 43, 0, 44, 0, 45, 0, 46, 0, - -2, 309, - -1, 290, + -2, 330, + -1, 310, 43, 0, 44, 0, 45, 0, 46, 0, - -2, 310, - -1, 296, - 133, 372, - 153, 372, - -2, 187, - -1, 334, - 133, 373, - 153, 373, - -2, 311, - -1, 434, - 133, 372, - 153, 372, - -2, 170, - -1, 458, - 160, 242, - -2, 247, - -1, 502, - 133, 372, - 153, 372, - -2, 158, - -1, 528, - 88, 221, - -2, 227, - -1, 546, - 133, 372, - 153, 372, - -2, 169, - -1, 559, - 133, 372, - 153, 372, - -2, 159, - -1, 600, - 133, 376, - 153, 376, - -2, 161, - -1, 659, + -2, 331, + -1, 316, + 133, 393, + 153, 393, + -2, 208, + -1, 354, + 133, 394, + 153, 394, + -2, 332, + -1, 454, + 133, 393, + 153, 393, + -2, 191, + -1, 488, + 160, 263, + -2, 268, + -1, 539, + 133, 393, + 153, 393, + -2, 179, + -1, 565, + 88, 242, + -2, 248, + -1, 583, + 133, 393, + 153, 393, + -2, 190, + -1, 603, + 133, 393, + 153, 393, + -2, 180, + -1, 650, + 133, 397, + 153, 397, + -2, 182, + -1, 713, 105, 76, -2, 78, - -1, 675, - 160, 242, - -2, 247, + -1, 730, + 160, 263, + -2, 268, } const yyPrivate = 57344 -const yyLast = 6293 +const yyLast = 6366 var yyAct = [...]int{ - 23, 103, 614, 604, 530, 512, 342, 651, 577, 613, - 595, 626, 573, 516, 514, 159, 251, 110, 110, 110, - 501, 460, 122, 517, 230, 295, 299, 72, 232, 121, - 156, 247, 246, 552, 5, 4, 91, 248, 118, 115, - 6, 590, 591, 75, 89, 186, 105, 116, 194, 195, - 196, 197, 198, 2, 200, 201, 600, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 543, 213, 214, - 215, 431, 479, 74, 705, 706, 221, 621, 480, 617, - 497, 697, 192, 192, 328, 645, 89, 89, 639, 191, - 191, 241, 242, 627, 234, 610, 629, 603, 590, 591, - 459, 306, 155, 264, 700, 249, 685, 679, 253, 254, - 261, 678, 534, 535, 536, 533, 532, 531, 228, 189, - 189, 73, 90, 665, 635, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 293, 589, 297, 243, 527, 301, 102, 529, - 329, 227, 630, 37, 90, 90, 478, 188, 188, 259, - 312, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 623, 587, 326, 582, 558, 556, 192, - 555, 333, 553, 551, 455, 442, 191, 698, 308, 571, - 335, 437, 310, 336, 303, 257, 256, 503, 255, 187, - 193, 496, 686, 330, 634, 633, 624, 518, 622, 338, - 416, 566, 675, 628, 425, 548, 189, 499, 429, 99, - 234, 618, 619, 482, 101, 239, 602, 644, 560, 505, - 547, 458, 441, 222, 339, 417, 111, 609, 422, 435, - 309, 307, 93, 608, 430, 263, 102, 102, 89, 111, - 99, 192, 260, 447, 94, 122, 229, 202, 191, 102, - 199, 89, 192, 102, 188, 5, 4, 94, 184, 191, - 154, 6, 153, 152, 108, 107, 104, 116, 98, 238, - 682, 332, 331, 450, 448, 419, 438, 421, 189, 445, - 446, 217, 421, 419, 504, 92, 223, 224, 461, 189, - 462, 216, 222, 463, 464, 102, 296, 422, 92, 185, - 428, 258, 520, 521, 106, 106, 222, 96, 96, 190, - 466, 226, 557, 680, 423, 574, 90, 106, 470, 681, - 96, 106, 190, 250, 96, 454, 188, 564, 565, 90, - 534, 535, 536, 533, 532, 531, 544, 188, 95, 339, - 417, 576, 575, 222, 520, 521, 222, 100, 218, 631, - 590, 591, 300, 641, 420, 223, 224, 222, 669, 119, - 126, 128, 127, 106, 70, 71, 96, 220, 427, 223, - 224, 593, 590, 591, 527, 476, 436, 529, 424, 434, - 150, 305, 151, 124, 125, 129, 131, 130, 143, 144, - 141, 142, 145, 146, 147, 148, 149, 139, 140, 133, - 134, 132, 135, 137, 138, 219, 223, 224, 418, 223, - 224, 668, 304, 234, 484, 161, 234, 523, 136, 102, - 223, 224, 492, 253, 494, 163, 157, 474, 164, 165, - 498, 166, 168, 167, 160, 237, 136, 510, 240, 493, - 487, 483, 534, 535, 536, 533, 532, 531, 569, 605, - 5, 4, 581, 490, 311, 225, 6, 158, 500, 672, - 545, 522, 509, 472, 646, 475, 473, 507, 611, 192, - 192, 39, 456, 549, 262, 519, 191, 191, 540, 617, - 133, 134, 132, 135, 137, 138, 234, 135, 137, 138, - 562, 139, 140, 133, 134, 132, 135, 137, 138, 136, - 109, 567, 192, 136, 452, 162, 189, 189, 443, 191, - 561, 554, 136, 579, 584, 432, 451, 1, 112, 113, - 192, 327, 570, 583, 42, 43, 88, 191, 234, 471, - 66, 704, 253, 654, 655, 519, 653, 652, 650, 189, - 616, 234, 526, 612, 578, 572, 528, 525, 588, 524, - 580, 563, 585, 636, 188, 188, 511, 189, 506, 598, - 298, 233, 606, 620, 231, 599, 294, 592, 120, 594, - 596, 625, 615, 117, 114, 192, 495, 660, 252, 632, - 489, 11, 191, 36, 519, 638, 10, 188, 35, 41, - 38, 513, 643, 515, 33, 244, 296, 502, 647, 640, - 97, 3, 657, 642, 341, 188, 607, 568, 664, 0, - 0, 0, 189, 0, 0, 0, 0, 663, 0, 637, - 0, 671, 519, 0, 667, 0, 0, 674, 0, 546, - 0, 0, 0, 657, 648, 673, 656, 661, 677, 0, - 0, 0, 0, 0, 683, 684, 596, 559, 349, 350, - 351, 352, 353, 689, 354, 355, 356, 392, 393, 0, - 188, 690, 0, 0, 0, 695, 694, 656, 693, 691, - 0, 0, 0, 0, 0, 0, 0, 699, 0, 701, - 0, 0, 702, 0, 0, 0, 687, 0, 707, 0, - 0, 0, 519, 0, 0, 0, 0, 578, 0, 0, - 357, 0, 502, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 358, 359, 0, 362, 363, 364, - 343, 344, 345, 346, 347, 348, 360, 361, 0, 0, - 340, 0, 89, 0, 0, 0, 0, 0, 0, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 395, 396, 397, 398, 399, 387, 388, 389, 390, 391, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 0, 407, 405, 406, 402, 403, 0, 394, 400, - 401, 408, 409, 411, 410, 412, 413, 349, 350, 351, - 352, 353, 0, 354, 355, 356, 392, 393, 404, 415, - 414, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 90, 151, 124, 125, 129, 131, 130, 143, 144, 141, - 142, 145, 146, 147, 148, 149, 139, 140, 133, 134, - 132, 135, 137, 138, 0, 0, 0, 0, 0, 357, - 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, - 0, 0, 0, 358, 359, 0, 362, 363, 364, 343, - 344, 345, 346, 347, 348, 360, 361, 0, 0, 659, - 0, 0, 0, 0, 0, 0, 0, 0, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 395, - 396, 397, 398, 399, 387, 388, 389, 390, 391, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 0, 407, 405, 406, 402, 403, 0, 394, 400, 401, - 408, 409, 411, 410, 412, 413, 349, 350, 351, 352, - 353, 127, 354, 355, 356, 392, 393, 658, 415, 414, - 96, 0, 0, 0, 0, 0, 676, 0, 0, 150, - 0, 151, 124, 125, 129, 131, 130, 143, 144, 141, - 142, 145, 146, 147, 148, 149, 139, 140, 133, 134, - 132, 135, 137, 138, 0, 0, 0, 0, 357, 0, - 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, - 0, 0, 358, 359, 0, 362, 363, 364, 343, 344, - 345, 346, 347, 348, 360, 361, 0, 0, 659, 0, - 0, 0, 0, 0, 0, 0, 0, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 395, 396, - 397, 398, 399, 387, 388, 389, 390, 391, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 0, - 407, 405, 406, 402, 403, 0, 394, 400, 401, 408, - 409, 411, 410, 412, 413, 0, 0, 0, 0, 0, - 0, 53, 54, 55, 56, 57, 658, 415, 414, 96, - 67, 68, 0, 69, 0, 649, 0, 151, 124, 125, - 129, 131, 130, 143, 144, 141, 142, 145, 146, 147, - 148, 149, 139, 140, 133, 134, 132, 135, 137, 138, - 0, 0, 0, 0, 0, 0, 47, 48, 0, 0, - 0, 0, 49, 136, 50, 45, 46, 58, 59, 60, - 61, 62, 63, 64, 65, 0, 93, 0, 44, 0, - 0, 0, 0, 20, 70, 71, 0, 0, 0, 0, - 40, 76, 77, 31, 0, 89, 0, 22, 0, 0, - 0, 94, 21, 13, 12, 0, 14, 0, 25, 0, - 26, 0, 0, 15, 0, 0, 0, 16, 17, 30, - 32, 0, 18, 28, 0, 0, 29, 0, 0, 19, - 0, 24, 0, 52, 7, 34, 0, 0, 0, 0, - 0, 0, 92, 0, 85, 81, 82, 83, 78, 79, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, - 0, 8, 84, 80, 96, 0, 51, 0, 27, 9, - 488, 0, 87, 90, 53, 54, 55, 56, 57, 0, - 0, 0, 0, 67, 68, 0, 69, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 48, 136, 0, 0, 0, 49, 0, 50, 45, 46, - 58, 59, 60, 61, 62, 63, 64, 65, 0, 93, - 0, 44, 0, 0, 0, 0, 20, 70, 71, 0, - 0, 0, 0, 40, 76, 77, 31, 0, 89, 0, - 22, 0, 0, 0, 94, 21, 13, 12, 0, 14, - 0, 25, 0, 26, 0, 0, 15, 0, 0, 0, - 16, 17, 30, 32, 0, 18, 28, 0, 0, 29, - 0, 0, 19, 0, 24, 0, 52, 7, 34, 0, - 0, 0, 0, 0, 0, 92, 0, 85, 81, 82, - 83, 78, 79, 0, 0, 0, 0, 0, 0, 86, - 0, 0, 0, 0, 8, 84, 80, 96, 0, 51, - 0, 27, 9, 439, 0, 87, 90, 53, 54, 55, - 56, 57, 0, 0, 0, 0, 67, 68, 0, 69, - 0, 129, 131, 130, 143, 144, 141, 142, 145, 146, - 147, 148, 149, 139, 140, 133, 134, 132, 135, 137, - 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 47, 48, 136, 0, 0, 0, 49, 0, - 50, 45, 46, 58, 59, 60, 61, 62, 63, 64, - 65, 0, 93, 0, 44, 0, 0, 0, 0, 20, - 70, 71, 0, 0, 0, 0, 40, 76, 77, 31, - 0, 89, 0, 22, 0, 0, 0, 94, 21, 13, - 12, 0, 14, 0, 25, 0, 26, 0, 0, 15, - 0, 0, 0, 16, 17, 30, 32, 0, 18, 28, - 0, 0, 29, 0, 0, 19, 0, 24, 0, 52, - 0, 34, 0, 0, 0, 0, 0, 0, 92, 0, - 85, 81, 82, 83, 78, 79, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 106, 84, 80, - 96, 0, 51, 0, 27, 9, 708, 0, 87, 90, - 53, 54, 55, 56, 57, 0, 0, 0, 0, 67, - 68, 0, 69, 0, 0, 131, 130, 143, 144, 141, - 142, 145, 146, 147, 148, 149, 139, 140, 133, 134, - 132, 135, 137, 138, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 48, 136, 0, 0, - 0, 49, 0, 50, 45, 46, 58, 59, 60, 61, - 62, 63, 64, 65, 0, 93, 0, 44, 0, 0, - 0, 0, 20, 70, 71, 0, 0, 0, 0, 40, - 76, 77, 31, 0, 89, 0, 22, 0, 0, 0, - 94, 21, 13, 12, 0, 14, 0, 25, 0, 26, - 0, 0, 15, 0, 0, 0, 16, 17, 30, 32, - 0, 18, 28, 0, 0, 29, 0, 0, 19, 0, - 24, 0, 52, 0, 34, 0, 0, 0, 0, 0, - 0, 92, 0, 85, 81, 82, 83, 78, 79, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 106, 84, 80, 96, 0, 51, 0, 27, 9, 703, - 0, 87, 90, 53, 54, 55, 56, 57, 0, 0, - 0, 0, 67, 68, 0, 69, 130, 143, 144, 141, - 142, 145, 146, 147, 148, 149, 139, 140, 133, 134, - 132, 135, 137, 138, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 136, 47, 48, - 0, 0, 0, 0, 49, 0, 50, 45, 46, 58, - 59, 60, 61, 62, 63, 64, 65, 0, 93, 0, - 44, 0, 0, 0, 0, 20, 70, 71, 0, 0, - 0, 0, 40, 76, 77, 31, 0, 89, 0, 22, - 0, 0, 0, 94, 21, 13, 12, 0, 14, 696, - 25, 0, 26, 0, 0, 15, 0, 0, 0, 16, - 17, 30, 32, 0, 18, 28, 0, 0, 29, 0, - 0, 19, 0, 24, 0, 52, 0, 34, 0, 0, - 0, 0, 0, 0, 92, 0, 85, 81, 82, 83, - 78, 79, 0, 0, 0, 0, 0, 0, 86, 0, - 0, 0, 0, 106, 84, 80, 96, 0, 51, 0, - 27, 9, 337, 0, 87, 90, 53, 54, 55, 56, - 57, 0, 0, 0, 0, 67, 68, 150, 69, 151, - 124, 125, 129, 131, 130, 143, 144, 141, 142, 145, - 146, 147, 148, 149, 139, 140, 133, 134, 132, 135, - 137, 138, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 48, 0, 0, 136, 0, 49, 0, 50, - 45, 46, 58, 59, 60, 61, 62, 63, 64, 65, - 0, 93, 0, 44, 0, 0, 0, 0, 20, 70, - 71, 0, 0, 0, 0, 40, 76, 77, 31, 0, - 89, 0, 22, 0, 0, 0, 94, 21, 13, 12, - 0, 14, 0, 25, 0, 26, 0, 0, 15, 0, - 0, 0, 16, 17, 30, 32, 0, 18, 28, 0, - 0, 29, 0, 0, 19, 0, 24, 0, 52, 0, - 34, 0, 0, 0, 0, 0, 0, 92, 0, 85, - 81, 82, 83, 78, 79, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 106, 84, 80, 96, - 0, 51, 0, 27, 9, 688, 0, 87, 90, 53, - 54, 55, 56, 57, 0, 0, 0, 0, 67, 68, - 0, 69, 143, 144, 141, 142, 145, 146, 147, 148, - 149, 139, 140, 133, 134, 132, 135, 137, 138, 0, + 24, 112, 664, 654, 567, 362, 549, 621, 705, 663, + 680, 645, 617, 553, 481, 168, 551, 538, 119, 119, + 119, 522, 554, 131, 266, 271, 239, 4, 521, 586, + 92, 165, 596, 315, 76, 319, 490, 267, 268, 114, + 5, 6, 130, 127, 124, 650, 195, 241, 90, 203, + 204, 205, 206, 207, 110, 209, 210, 111, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 2, 222, + 223, 224, 75, 667, 74, 580, 38, 201, 201, 451, + 714, 200, 200, 760, 761, 73, 571, 572, 573, 570, + 569, 568, 676, 673, 671, 243, 633, 90, 348, 509, + 90, 230, 510, 752, 534, 693, 125, 640, 641, 640, + 641, 246, 681, 653, 269, 250, 251, 273, 274, 198, + 198, 197, 197, 196, 202, 456, 91, 102, 456, 456, + 564, 489, 456, 566, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 313, 683, 317, 639, 263, 321, 231, 326, 164, + 252, 236, 442, 615, 349, 91, 755, 237, 91, 332, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 201, 508, 346, 740, 200, 96, 99, 328, + 353, 588, 102, 101, 525, 519, 100, 106, 467, 355, + 699, 660, 356, 571, 572, 573, 570, 569, 568, 734, + 733, 720, 689, 684, 677, 668, 669, 637, 358, 436, + 232, 233, 626, 445, 198, 533, 197, 449, 316, 243, + 99, 600, 682, 599, 448, 259, 284, 281, 279, 259, + 597, 557, 558, 595, 472, 485, 460, 564, 602, 457, + 566, 330, 323, 277, 201, 450, 276, 275, 200, 94, + 115, 253, 753, 97, 741, 201, 120, 4, 688, 200, + 350, 687, 678, 477, 672, 131, 102, 610, 90, 585, + 5, 6, 536, 512, 95, 247, 248, 249, 730, 652, + 560, 604, 256, 584, 488, 262, 198, 471, 197, 455, + 447, 359, 437, 480, 464, 263, 329, 198, 327, 197, + 458, 454, 238, 211, 475, 476, 208, 478, 491, 439, + 492, 441, 193, 493, 494, 93, 441, 439, 163, 555, + 102, 162, 161, 117, 116, 113, 98, 135, 137, 136, + 496, 658, 261, 246, 115, 261, 737, 97, 500, 199, + 352, 351, 698, 659, 226, 125, 91, 159, 102, 160, + 133, 134, 138, 140, 139, 152, 153, 150, 151, 154, + 155, 156, 157, 158, 148, 149, 142, 143, 141, 144, + 146, 147, 135, 137, 136, 102, 261, 461, 283, 280, + 278, 258, 225, 601, 246, 145, 484, 520, 115, 261, + 261, 97, 159, 102, 160, 133, 134, 138, 140, 139, + 152, 153, 150, 151, 154, 155, 156, 157, 158, 148, + 149, 142, 143, 141, 144, 146, 147, 359, 437, 465, + 108, 109, 231, 443, 557, 558, 194, 442, 469, 735, + 145, 102, 736, 243, 514, 463, 243, 466, 608, 609, + 105, 462, 260, 115, 102, 231, 97, 270, 581, 231, + 227, 231, 529, 273, 531, 231, 235, 620, 619, 229, + 535, 618, 517, 4, 107, 695, 128, 547, 724, 71, + 72, 108, 109, 102, 320, 527, 5, 6, 530, 506, + 513, 628, 468, 456, 440, 232, 233, 444, 325, 544, + 582, 324, 172, 201, 201, 166, 537, 200, 200, 556, + 577, 546, 257, 263, 145, 523, 559, 228, 232, 233, + 593, 438, 232, 233, 232, 233, 589, 169, 232, 233, + 170, 723, 613, 243, 40, 579, 201, 606, 173, 174, + 200, 685, 640, 641, 592, 198, 198, 197, 197, 316, + 539, 643, 640, 641, 504, 255, 655, 598, 234, 605, + 623, 201, 175, 177, 176, 200, 625, 587, 614, 171, + 627, 331, 591, 523, 167, 243, 556, 727, 198, 700, + 197, 661, 583, 486, 282, 622, 273, 667, 631, 624, + 502, 630, 505, 503, 524, 243, 590, 635, 144, 146, + 147, 629, 634, 198, 104, 197, 611, 603, 632, 118, + 648, 638, 482, 473, 145, 452, 646, 670, 656, 1, + 642, 649, 644, 201, 103, 254, 665, 200, 121, 122, + 347, 679, 556, 43, 44, 89, 587, 675, 523, 686, + 501, 67, 759, 708, 709, 692, 571, 572, 573, 570, + 569, 568, 697, 466, 707, 466, 706, 704, 701, 694, + 666, 563, 711, 696, 662, 198, 616, 197, 565, 539, + 562, 561, 719, 691, 607, 690, 556, 548, 543, 674, + 718, 318, 242, 240, 314, 726, 129, 126, 702, 722, + 710, 729, 123, 716, 532, 715, 272, 711, 526, 728, + 12, 37, 646, 732, 11, 36, 42, 466, 39, 738, + 739, 550, 466, 466, 552, 34, 264, 3, 744, 361, + 657, 612, 0, 0, 0, 710, 0, 745, 0, 0, + 750, 749, 748, 746, 148, 149, 142, 143, 141, 144, + 146, 147, 754, 0, 756, 742, 0, 757, 0, 0, + 0, 556, 0, 762, 0, 145, 622, 369, 370, 371, + 372, 373, 136, 374, 375, 376, 412, 413, 0, 0, + 0, 0, 0, 0, 0, 0, 466, 0, 466, 0, + 159, 0, 160, 133, 134, 138, 140, 139, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 0, 0, 0, 0, 377, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 466, + 0, 0, 0, 378, 379, 0, 382, 383, 384, 363, + 364, 365, 366, 367, 368, 380, 381, 0, 0, 360, + 0, 90, 0, 0, 0, 0, 0, 0, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 415, + 416, 417, 418, 419, 407, 408, 409, 410, 411, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 0, 427, 425, 426, 422, 423, 0, 414, 420, 421, + 428, 429, 431, 430, 432, 433, 369, 370, 371, 372, + 373, 0, 374, 375, 376, 412, 413, 424, 435, 434, + 0, 0, 0, 0, 0, 0, 0, 0, 159, 91, + 160, 133, 134, 138, 140, 139, 152, 153, 150, 151, + 154, 155, 156, 157, 158, 148, 149, 142, 143, 141, + 144, 146, 147, 0, 0, 0, 0, 0, 377, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, + 0, 0, 378, 379, 0, 382, 383, 384, 363, 364, + 365, 366, 367, 368, 380, 381, 0, 0, 713, 0, + 0, 0, 0, 0, 0, 0, 0, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 415, 416, + 417, 418, 419, 407, 408, 409, 410, 411, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 0, + 427, 425, 426, 422, 423, 0, 414, 420, 421, 428, + 429, 431, 430, 432, 433, 369, 370, 371, 372, 373, + 0, 374, 375, 376, 412, 413, 712, 435, 434, 97, + 0, 0, 0, 0, 0, 731, 160, 133, 134, 138, + 140, 139, 152, 153, 150, 151, 154, 155, 156, 157, + 158, 148, 149, 142, 143, 141, 144, 146, 147, 142, + 143, 141, 144, 146, 147, 0, 0, 377, 0, 0, + 0, 0, 145, 0, 0, 0, 0, 0, 145, 0, + 0, 378, 379, 0, 382, 383, 384, 363, 364, 365, + 366, 367, 368, 380, 381, 0, 0, 713, 0, 0, + 0, 0, 0, 0, 0, 0, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 415, 416, 417, + 418, 419, 407, 408, 409, 410, 411, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 0, 427, + 425, 426, 422, 423, 0, 414, 420, 421, 428, 429, + 431, 430, 432, 433, 0, 0, 0, 0, 0, 0, + 54, 55, 56, 57, 58, 712, 435, 434, 97, 68, + 69, 0, 70, 0, 703, 134, 138, 140, 139, 152, + 153, 150, 151, 154, 155, 156, 157, 158, 148, 149, + 142, 143, 141, 144, 146, 147, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 0, 145, + 0, 50, 0, 51, 46, 47, 59, 60, 61, 62, + 63, 64, 65, 66, 0, 94, 0, 45, 0, 0, + 0, 0, 21, 71, 72, 0, 0, 0, 0, 41, + 77, 78, 32, 0, 90, 0, 23, 0, 0, 0, + 95, 22, 14, 13, 0, 15, 0, 26, 0, 27, + 0, 0, 16, 0, 0, 0, 17, 18, 31, 33, + 0, 19, 29, 0, 0, 30, 9, 0, 20, 0, + 25, 0, 53, 7, 35, 0, 0, 0, 0, 0, + 0, 93, 0, 86, 82, 83, 84, 79, 80, 0, + 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, + 8, 85, 81, 97, 0, 52, 0, 28, 10, 518, + 0, 88, 91, 54, 55, 56, 57, 58, 0, 0, + 0, 0, 68, 69, 0, 70, 0, 138, 140, 139, + 152, 153, 150, 151, 154, 155, 156, 157, 158, 148, + 149, 142, 143, 141, 144, 146, 147, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 145, 0, 0, 0, 50, 0, 51, 46, 47, 59, + 60, 61, 62, 63, 64, 65, 66, 0, 94, 0, + 45, 0, 0, 0, 0, 21, 71, 72, 0, 0, + 0, 0, 41, 77, 78, 32, 0, 90, 0, 23, + 0, 0, 0, 95, 22, 14, 13, 0, 15, 0, + 26, 0, 27, 0, 0, 16, 0, 0, 0, 17, + 18, 31, 33, 0, 19, 29, 0, 0, 30, 9, + 0, 20, 0, 25, 0, 53, 7, 35, 0, 0, + 0, 0, 0, 0, 93, 0, 86, 82, 83, 84, + 79, 80, 0, 0, 0, 0, 0, 0, 87, 0, + 0, 0, 0, 8, 85, 81, 97, 0, 52, 0, + 28, 10, 459, 0, 88, 91, 54, 55, 56, 57, + 58, 0, 0, 0, 0, 68, 69, 0, 70, 0, + 0, 140, 139, 152, 153, 150, 151, 154, 155, 156, + 157, 158, 148, 149, 142, 143, 141, 144, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 136, 0, 47, 48, 0, 0, 0, 0, - 49, 0, 50, 45, 46, 58, 59, 60, 61, 62, - 63, 64, 65, 0, 93, 0, 44, 0, 0, 0, - 0, 20, 70, 71, 0, 0, 0, 0, 40, 76, - 77, 31, 0, 89, 0, 22, 0, 0, 0, 94, - 21, 13, 12, 0, 14, 0, 25, 0, 26, 0, - 0, 15, 0, 0, 0, 16, 17, 30, 32, 0, - 18, 28, 0, 0, 29, 0, 0, 19, 0, 24, - 0, 52, 0, 34, 0, 0, 0, 0, 0, 0, - 92, 0, 85, 81, 82, 83, 78, 79, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 106, - 84, 80, 96, 0, 51, 0, 27, 9, 670, 0, - 87, 90, 53, 54, 55, 56, 57, 0, 0, 0, - 0, 67, 68, 0, 69, 146, 147, 148, 149, 139, - 140, 133, 134, 132, 135, 137, 138, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 136, 0, 0, 0, 0, 0, 0, 47, 48, 0, - 0, 0, 0, 49, 0, 50, 45, 46, 58, 59, - 60, 61, 62, 63, 64, 65, 0, 93, 0, 44, - 0, 0, 0, 0, 20, 70, 71, 0, 0, 0, - 0, 40, 76, 77, 31, 0, 89, 0, 22, 0, - 0, 0, 94, 21, 13, 12, 0, 14, 0, 25, - 666, 26, 0, 0, 15, 0, 0, 0, 16, 17, - 30, 32, 0, 18, 28, 0, 0, 29, 0, 0, - 19, 0, 24, 0, 52, 0, 34, 0, 0, 0, - 0, 0, 0, 92, 0, 85, 81, 82, 83, 78, - 79, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 106, 84, 80, 96, 0, 51, 0, 27, - 9, 0, 0, 87, 90, 53, 54, 55, 56, 57, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 169, 170, 171, 172, 174, 175, 176, 177, - 178, 179, 180, 181, 173, 0, 0, 0, 0, 0, - 47, 48, 0, 0, 0, 0, 49, 0, 50, 45, - 46, 58, 59, 60, 61, 62, 63, 64, 65, 0, - 93, 0, 44, 182, 183, 0, 0, 20, 70, 71, - 0, 0, 0, 0, 40, 76, 77, 31, 0, 89, - 0, 22, 0, 0, 0, 94, 21, 13, 12, 0, - 14, 0, 25, 0, 26, 601, 0, 15, 0, 0, - 0, 16, 17, 30, 32, 0, 18, 28, 0, 0, - 29, 0, 0, 19, 0, 24, 0, 52, 0, 34, - 0, 0, 0, 0, 0, 0, 92, 0, 85, 81, - 82, 83, 78, 79, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 106, 84, 80, 96, 0, - 51, 0, 27, 9, 0, 0, 87, 90, 53, 54, - 55, 56, 57, 0, 0, 0, 0, 67, 68, 0, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 145, 0, 0, 0, 50, 0, 51, + 46, 47, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 94, 0, 45, 0, 0, 0, 0, 21, 71, + 72, 0, 0, 0, 0, 41, 77, 78, 32, 0, + 90, 0, 23, 0, 0, 0, 95, 22, 14, 13, + 0, 15, 0, 26, 0, 27, 0, 0, 16, 0, + 0, 0, 17, 18, 31, 33, 0, 19, 29, 0, + 0, 30, 9, 0, 20, 0, 25, 0, 53, 7, + 35, 0, 0, 0, 0, 0, 0, 93, 0, 86, + 82, 83, 84, 79, 80, 0, 0, 0, 0, 0, + 0, 87, 0, 0, 0, 0, 8, 85, 81, 97, + 0, 52, 0, 28, 10, 357, 0, 88, 91, 54, + 55, 56, 57, 58, 0, 0, 0, 0, 68, 69, + 159, 70, 160, 133, 134, 138, 140, 139, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 0, 145, 0, + 50, 0, 51, 46, 47, 59, 60, 61, 62, 63, + 64, 65, 66, 0, 94, 0, 45, 0, 0, 0, + 0, 21, 71, 72, 0, 0, 0, 0, 41, 77, + 78, 32, 0, 90, 0, 23, 0, 0, 0, 95, + 22, 14, 13, 0, 15, 0, 26, 0, 27, 0, + 0, 16, 0, 0, 0, 17, 18, 31, 33, 0, + 19, 29, 0, 0, 30, 0, 0, 20, 0, 25, + 0, 53, 0, 35, 0, 0, 0, 0, 0, 0, + 93, 0, 86, 82, 83, 84, 79, 80, 0, 0, + 0, 0, 0, 0, 87, 0, 0, 0, 0, 115, + 85, 81, 97, 0, 52, 0, 28, 10, 763, 0, + 88, 91, 54, 55, 56, 57, 58, 0, 0, 0, + 0, 68, 69, 0, 70, 139, 152, 153, 150, 151, + 154, 155, 156, 157, 158, 148, 149, 142, 143, 141, + 144, 146, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 48, 49, 0, + 0, 0, 0, 50, 0, 51, 46, 47, 59, 60, + 61, 62, 63, 64, 65, 66, 0, 94, 0, 45, + 0, 0, 0, 0, 21, 71, 72, 0, 0, 0, + 0, 41, 77, 78, 32, 0, 90, 0, 23, 0, + 0, 0, 95, 22, 14, 13, 0, 15, 0, 26, + 0, 27, 0, 0, 16, 0, 0, 0, 17, 18, + 31, 33, 0, 19, 29, 0, 0, 30, 0, 0, + 20, 0, 25, 0, 53, 0, 35, 0, 0, 0, + 0, 0, 0, 93, 0, 86, 82, 83, 84, 79, + 80, 0, 0, 0, 0, 0, 0, 87, 0, 0, + 0, 0, 115, 85, 81, 97, 0, 52, 0, 28, + 10, 758, 0, 88, 91, 54, 55, 56, 57, 58, + 0, 0, 0, 0, 68, 69, 0, 70, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 48, 49, 0, 0, 0, 0, 50, 0, 51, 46, + 47, 59, 60, 61, 62, 63, 64, 65, 66, 0, + 94, 0, 45, 0, 0, 0, 0, 21, 71, 72, + 0, 0, 0, 0, 41, 77, 78, 32, 0, 90, + 0, 23, 0, 0, 0, 95, 22, 14, 13, 0, + 15, 751, 26, 0, 27, 0, 0, 16, 0, 0, + 0, 17, 18, 31, 33, 0, 19, 29, 0, 0, + 30, 0, 0, 20, 0, 25, 0, 53, 0, 35, + 0, 0, 0, 0, 0, 0, 93, 0, 86, 82, + 83, 84, 79, 80, 0, 0, 0, 0, 0, 0, + 87, 0, 0, 0, 0, 115, 85, 81, 97, 0, + 52, 0, 28, 10, 0, 0, 88, 91, 54, 55, + 56, 57, 58, 0, 0, 0, 0, 68, 69, 0, + 70, 155, 156, 157, 158, 148, 149, 142, 143, 141, + 144, 146, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 0, 0, 0, 50, + 0, 51, 46, 47, 59, 60, 61, 62, 63, 64, + 65, 66, 0, 94, 0, 45, 0, 0, 0, 0, + 21, 71, 72, 0, 0, 0, 0, 41, 77, 78, + 32, 0, 90, 0, 23, 0, 0, 0, 95, 22, + 14, 13, 0, 15, 0, 26, 0, 27, 0, 0, + 16, 0, 0, 0, 17, 18, 31, 33, 0, 19, + 29, 0, 0, 30, 0, 0, 20, 0, 25, 0, + 53, 0, 35, 0, 0, 0, 0, 0, 0, 93, + 0, 86, 82, 83, 84, 79, 80, 0, 0, 0, + 0, 0, 0, 87, 0, 0, 0, 0, 115, 85, + 81, 97, 0, 52, 0, 28, 10, 743, 0, 88, + 91, 54, 55, 56, 57, 58, 0, 0, 0, 0, + 68, 69, 0, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 178, 179, + 180, 181, 183, 184, 185, 186, 187, 188, 189, 190, + 182, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 50, 0, 51, 46, 47, 59, 60, 61, + 62, 63, 64, 65, 66, 0, 94, 0, 45, 191, + 192, 0, 0, 21, 71, 72, 0, 0, 0, 0, + 41, 77, 78, 32, 0, 90, 0, 23, 0, 0, + 0, 95, 22, 14, 13, 0, 15, 0, 26, 0, + 27, 0, 0, 16, 0, 0, 0, 17, 18, 31, + 33, 0, 19, 29, 0, 0, 30, 0, 0, 20, + 0, 25, 0, 53, 0, 35, 0, 0, 0, 0, + 0, 0, 93, 0, 86, 82, 83, 84, 79, 80, + 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, + 0, 115, 85, 81, 97, 0, 52, 0, 28, 10, + 725, 0, 88, 91, 54, 55, 56, 57, 58, 0, + 0, 0, 0, 68, 69, 0, 70, 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, 47, 48, 0, 0, 0, 0, 49, - 0, 50, 45, 46, 58, 59, 60, 61, 62, 63, - 64, 65, 0, 93, 0, 44, 0, 0, 0, 0, - 20, 70, 71, 0, 0, 0, 0, 40, 76, 77, - 31, 0, 89, 0, 22, 0, 0, 0, 94, 21, - 13, 12, 586, 14, 0, 25, 0, 26, 0, 0, - 15, 0, 0, 0, 16, 17, 30, 32, 0, 18, - 28, 0, 0, 29, 0, 0, 19, 0, 24, 0, - 52, 0, 34, 0, 0, 0, 0, 0, 0, 92, - 0, 85, 81, 82, 83, 78, 79, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 106, 84, - 80, 96, 0, 51, 0, 27, 9, 0, 0, 87, - 90, 53, 54, 55, 56, 57, 0, 0, 0, 0, - 67, 68, 0, 69, 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, 47, 48, 0, 0, - 0, 0, 49, 0, 50, 45, 46, 58, 59, 60, - 61, 62, 63, 64, 65, 0, 93, 0, 44, 0, - 0, 0, 539, 20, 70, 71, 0, 0, 0, 0, - 40, 76, 77, 31, 0, 89, 0, 22, 0, 0, - 0, 94, 21, 13, 12, 0, 14, 0, 25, 0, - 26, 0, 0, 15, 0, 0, 0, 16, 17, 30, - 32, 0, 18, 28, 0, 0, 29, 0, 0, 19, - 0, 24, 0, 52, 0, 34, 0, 0, 0, 0, - 0, 0, 92, 0, 85, 81, 82, 83, 78, 79, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, - 0, 106, 84, 80, 96, 0, 51, 0, 27, 9, - 0, 0, 87, 90, 53, 54, 55, 56, 57, 0, - 0, 0, 0, 67, 68, 0, 69, 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, 47, - 48, 0, 0, 0, 0, 49, 0, 50, 45, 46, - 58, 59, 60, 61, 62, 63, 64, 65, 0, 93, - 0, 44, 0, 0, 0, 0, 20, 70, 71, 0, - 0, 0, 0, 40, 76, 77, 31, 0, 89, 0, - 22, 0, 0, 0, 94, 21, 13, 12, 0, 14, - 0, 25, 0, 26, 0, 0, 15, 0, 0, 0, - 16, 17, 30, 32, 0, 18, 28, 0, 0, 29, - 0, 0, 19, 0, 24, 0, 52, 0, 34, 0, - 0, 0, 0, 0, 0, 92, 0, 85, 81, 82, - 83, 78, 79, 0, 0, 0, 0, 0, 0, 86, - 0, 0, 0, 0, 106, 84, 80, 96, 0, 51, - 0, 27, 9, 457, 0, 87, 90, 53, 54, 55, - 56, 57, 0, 0, 0, 0, 67, 68, 0, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 0, 0, 0, 0, 50, 0, 51, 46, 47, + 59, 60, 61, 62, 63, 64, 65, 66, 0, 94, + 0, 45, 0, 0, 0, 0, 21, 71, 72, 0, + 0, 0, 0, 41, 77, 78, 32, 0, 90, 0, + 23, 0, 0, 0, 95, 22, 14, 13, 0, 15, + 0, 26, 721, 27, 0, 0, 16, 0, 0, 0, + 17, 18, 31, 33, 0, 19, 29, 0, 0, 30, + 0, 0, 20, 0, 25, 0, 53, 0, 35, 0, + 0, 0, 0, 0, 0, 93, 0, 86, 82, 83, + 84, 79, 80, 0, 0, 0, 0, 0, 0, 87, + 0, 0, 0, 0, 115, 85, 81, 97, 0, 52, + 0, 28, 10, 0, 0, 88, 91, 54, 55, 56, + 57, 58, 0, 0, 0, 0, 68, 69, 0, 70, 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, 47, 48, 0, 0, 0, 0, 49, 0, - 50, 45, 46, 58, 59, 60, 61, 62, 63, 64, - 65, 0, 93, 0, 44, 0, 0, 0, 0, 20, - 70, 71, 0, 0, 0, 0, 40, 76, 77, 31, - 0, 89, 0, 22, 0, 0, 0, 94, 21, 13, - 12, 0, 14, 0, 25, 0, 26, 0, 0, 15, - 0, 0, 0, 16, 17, 30, 32, 0, 18, 28, - 0, 0, 29, 0, 0, 19, 0, 24, 0, 52, - 0, 34, 0, 0, 0, 0, 0, 0, 92, 0, - 85, 81, 82, 83, 78, 79, 0, 0, 0, 0, - 0, 0, 86, 0, 0, 0, 0, 106, 84, 80, - 96, 0, 51, 0, 27, 9, 245, 0, 87, 90, - 53, 54, 55, 56, 57, 0, 0, 0, 0, 67, - 68, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 49, 0, 0, 0, 0, 50, 0, + 51, 46, 47, 59, 60, 61, 62, 63, 64, 65, + 66, 0, 94, 0, 45, 0, 0, 0, 0, 21, + 71, 72, 0, 0, 0, 0, 41, 77, 78, 32, + 0, 90, 0, 23, 0, 0, 0, 95, 22, 14, + 13, 0, 15, 0, 26, 0, 27, 651, 0, 16, + 0, 0, 0, 17, 18, 31, 33, 0, 19, 29, + 0, 0, 30, 0, 0, 20, 0, 25, 0, 53, + 0, 35, 0, 0, 0, 0, 0, 0, 93, 0, + 86, 82, 83, 84, 79, 80, 0, 0, 0, 0, + 0, 0, 87, 0, 0, 0, 0, 115, 85, 81, + 97, 0, 52, 0, 28, 10, 0, 0, 88, 91, + 54, 55, 56, 57, 58, 0, 0, 0, 0, 68, + 69, 0, 70, 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, 47, 48, 0, 0, 0, - 0, 49, 0, 50, 45, 46, 58, 59, 60, 61, - 62, 63, 64, 65, 0, 93, 0, 44, 0, 0, - 0, 0, 20, 70, 71, 0, 0, 0, 0, 40, - 76, 77, 31, 0, 89, 0, 22, 0, 0, 0, - 94, 21, 13, 12, 0, 14, 0, 25, 0, 26, - 0, 0, 15, 0, 0, 0, 16, 17, 30, 32, - 0, 18, 28, 0, 0, 29, 0, 0, 19, 0, - 24, 0, 52, 7, 34, 0, 0, 0, 0, 0, - 0, 92, 0, 85, 81, 82, 83, 78, 79, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 8, 84, 80, 96, 0, 51, 0, 27, 9, 0, - 0, 87, 90, 53, 54, 55, 56, 57, 0, 0, - 0, 0, 67, 68, 0, 69, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, + 0, 50, 0, 51, 46, 47, 59, 60, 61, 62, + 63, 64, 65, 66, 0, 94, 0, 45, 0, 0, + 0, 0, 21, 71, 72, 0, 0, 0, 0, 41, + 77, 78, 32, 0, 90, 0, 23, 0, 0, 0, + 95, 22, 14, 13, 636, 15, 0, 26, 0, 27, + 0, 0, 16, 0, 0, 0, 17, 18, 31, 33, + 0, 19, 29, 0, 0, 30, 0, 0, 20, 0, + 25, 0, 53, 0, 35, 0, 0, 0, 0, 0, + 0, 93, 0, 86, 82, 83, 84, 79, 80, 0, + 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, + 115, 85, 81, 97, 0, 52, 0, 28, 10, 0, + 0, 88, 91, 54, 55, 56, 57, 58, 0, 0, + 0, 0, 68, 69, 0, 70, 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, 47, 48, - 0, 0, 0, 0, 49, 0, 50, 45, 46, 58, - 59, 60, 61, 62, 63, 64, 65, 0, 93, 0, - 44, 0, 0, 0, 0, 20, 70, 71, 0, 0, - 0, 0, 40, 76, 77, 31, 0, 89, 0, 22, - 0, 0, 0, 94, 21, 13, 12, 0, 14, 0, - 25, 0, 26, 0, 0, 15, 0, 0, 0, 16, - 17, 30, 32, 0, 18, 28, 0, 0, 29, 0, - 0, 19, 0, 24, 0, 52, 0, 34, 0, 0, - 0, 0, 0, 0, 92, 0, 85, 81, 82, 83, - 78, 79, 0, 0, 0, 0, 0, 0, 86, 0, - 0, 0, 0, 106, 84, 80, 96, 0, 51, 0, - 27, 9, 0, 0, 87, 90, 53, 54, 55, 56, - 57, 0, 0, 0, 0, 67, 68, 0, 69, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 597, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 48, 0, 0, 0, 0, 49, 0, 50, - 45, 46, 58, 59, 60, 61, 62, 63, 64, 65, - 0, 93, 0, 44, 0, 0, 0, 0, 20, 0, - 0, 0, 0, 0, 0, 40, 76, 77, 31, 0, - 89, 0, 22, 0, 0, 0, 94, 21, 13, 12, - 0, 14, 0, 25, 0, 26, 0, 0, 15, 0, - 0, 0, 16, 17, 30, 0, 0, 18, 28, 0, - 0, 29, 0, 0, 19, 0, 24, 0, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 92, 0, 85, - 81, 82, 83, 78, 79, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 106, 84, 80, 96, - 0, 51, 0, 27, 9, 0, 0, 87, 90, 53, - 54, 55, 56, 57, 0, 0, 0, 0, 67, 68, - 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 48, 0, 0, 0, 0, - 49, 0, 50, 45, 46, 58, 59, 60, 61, 62, - 63, 64, 65, 0, 93, 0, 44, 0, 0, 0, - 0, 20, 0, 0, 0, 0, 0, 0, 40, 76, - 77, 31, 0, 89, 0, 22, 0, 0, 0, 94, - 21, 13, 12, 0, 14, 0, 25, 0, 26, 0, - 0, 15, 0, 0, 0, 16, 17, 30, 0, 0, - 18, 28, 0, 0, 29, 0, 0, 19, 0, 24, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 0, 85, 81, 82, 83, 78, 79, 0, 0, - 0, 0, 0, 0, 86, 0, 0, 0, 0, 106, - 84, 80, 96, 0, 51, 0, 27, 9, 0, 0, - 87, 90, 53, 54, 55, 56, 57, 0, 0, 0, - 0, 67, 68, 0, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 541, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 48, 0, - 0, 0, 0, 49, 0, 50, 45, 46, 58, 59, - 60, 61, 62, 63, 64, 65, 0, 93, 0, 44, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, - 0, 40, 76, 77, 31, 0, 89, 0, 22, 0, - 0, 0, 94, 21, 13, 12, 0, 14, 0, 25, - 0, 26, 0, 0, 15, 0, 0, 0, 16, 17, - 30, 0, 0, 18, 28, 0, 0, 29, 0, 0, - 19, 0, 24, 0, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 0, 85, 81, 82, 83, 78, - 79, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 106, 84, 80, 96, 0, 51, 0, 27, - 9, 0, 0, 87, 90, 53, 54, 55, 56, 57, - 0, 0, 0, 0, 67, 68, 0, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 508, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 48, 0, 0, 0, 0, 49, 0, 50, 45, - 46, 58, 59, 60, 61, 62, 63, 64, 65, 0, - 93, 0, 44, 0, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 0, 40, 76, 77, 31, 0, 89, - 0, 22, 0, 0, 0, 94, 21, 13, 12, 0, - 14, 0, 25, 0, 26, 0, 0, 15, 0, 0, - 0, 16, 17, 30, 0, 0, 18, 28, 0, 0, - 29, 0, 0, 19, 0, 24, 0, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 0, 85, 81, - 82, 83, 78, 79, 0, 0, 0, 0, 0, 0, - 86, 0, 0, 0, 0, 106, 84, 80, 96, 0, - 51, 0, 27, 9, 0, 0, 87, 90, 53, 54, - 55, 56, 57, 0, 0, 0, 0, 67, 68, 0, - 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 491, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 48, 0, 0, 0, 0, 49, - 0, 50, 45, 46, 58, 59, 60, 61, 62, 63, - 64, 65, 0, 93, 0, 44, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 40, 76, 77, - 31, 0, 89, 0, 22, 0, 0, 0, 94, 21, - 13, 12, 0, 14, 0, 25, 0, 26, 0, 0, - 15, 0, 0, 0, 16, 17, 30, 0, 0, 18, - 28, 0, 0, 29, 0, 0, 19, 0, 24, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 92, - 0, 85, 81, 82, 83, 78, 79, 0, 0, 0, - 0, 0, 0, 86, 0, 0, 0, 0, 106, 84, - 80, 96, 0, 51, 0, 27, 9, 0, 0, 87, - 90, 53, 54, 55, 56, 57, 0, 0, 0, 0, - 67, 68, 0, 69, 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, 47, 48, 0, 0, - 0, 0, 49, 0, 50, 45, 46, 58, 59, 60, - 61, 62, 63, 64, 65, 0, 93, 0, 44, 0, - 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, - 40, 76, 77, 31, 0, 89, 0, 22, 0, 0, - 0, 94, 21, 13, 12, 0, 14, 0, 25, 0, - 26, 0, 0, 15, 0, 0, 0, 16, 17, 30, - 0, 0, 18, 28, 0, 0, 29, 0, 0, 19, - 0, 24, 0, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 0, 85, 81, 82, 83, 78, 79, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, - 0, 106, 84, 80, 96, 0, 51, 0, 27, 9, - 128, 127, 87, 90, 349, 350, 351, 352, 353, 0, - 354, 355, 356, 392, 393, 0, 0, 0, 0, 150, - 0, 151, 124, 125, 129, 131, 130, 143, 144, 141, - 142, 145, 146, 147, 148, 149, 139, 140, 133, 134, - 132, 135, 137, 138, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 357, 136, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 358, 359, 0, 362, 363, 364, 343, 344, 345, 346, - 347, 348, 360, 361, 0, 0, 340, 0, 0, 0, - 0, 0, 0, 0, 0, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 395, 396, 397, 398, - 399, 387, 388, 389, 390, 391, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 0, 407, 405, - 406, 402, 403, 0, 394, 400, 401, 408, 409, 411, - 410, 412, 413, 349, 350, 351, 352, 353, 0, 354, - 355, 356, 392, 393, 404, 415, 414, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 0, 0, 0, 0, 50, 0, 51, 46, 47, 59, + 60, 61, 62, 63, 64, 65, 66, 0, 94, 0, + 45, 0, 0, 0, 576, 21, 71, 72, 0, 0, + 0, 0, 41, 77, 78, 32, 0, 90, 0, 23, + 0, 0, 0, 95, 22, 14, 13, 0, 15, 0, + 26, 0, 27, 0, 0, 16, 0, 0, 0, 17, + 18, 31, 33, 0, 19, 29, 0, 0, 30, 0, + 0, 20, 0, 25, 0, 53, 0, 35, 0, 0, + 0, 0, 0, 0, 93, 0, 86, 82, 83, 84, + 79, 80, 0, 0, 0, 0, 0, 0, 87, 0, + 0, 0, 0, 115, 85, 81, 97, 0, 52, 0, + 28, 10, 0, 0, 88, 91, 54, 55, 56, 57, + 58, 0, 0, 0, 0, 68, 69, 0, 70, 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, 357, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, - 359, 0, 362, 363, 364, 534, 535, 536, 533, 532, - 531, 360, 361, 0, 0, 692, 0, 0, 0, 0, - 0, 0, 0, 0, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 395, 396, 397, 398, 399, - 387, 388, 389, 390, 391, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 0, 407, 405, 406, - 402, 403, 0, 394, 400, 401, 408, 409, 411, 410, - 412, 413, 0, 0, 0, 0, 0, 53, 54, 55, - 56, 57, 0, 404, 415, 414, 67, 68, 0, 69, + 0, 48, 49, 0, 0, 0, 0, 50, 0, 51, + 46, 47, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 94, 0, 45, 0, 0, 0, 0, 21, 71, + 72, 0, 0, 0, 0, 41, 77, 78, 32, 0, + 90, 0, 23, 0, 0, 0, 95, 22, 14, 13, + 0, 15, 0, 26, 0, 27, 0, 0, 16, 0, + 0, 0, 17, 18, 31, 33, 0, 19, 29, 0, + 0, 30, 0, 0, 20, 0, 25, 0, 53, 0, + 35, 0, 0, 0, 0, 0, 0, 93, 0, 86, + 82, 83, 84, 79, 80, 0, 0, 0, 0, 0, + 0, 87, 0, 0, 0, 0, 115, 85, 81, 97, + 0, 52, 0, 28, 10, 487, 0, 88, 91, 54, + 55, 56, 57, 58, 0, 0, 0, 0, 68, 69, + 0, 70, 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, - 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 47, 48, 0, 0, 0, 0, 49, 0, - 50, 45, 46, 58, 59, 60, 61, 62, 63, 64, - 65, 0, 93, 0, 44, 0, 126, 128, 127, 111, - 0, 0, 0, 0, 0, 0, 0, 76, 77, 102, - 0, 89, 0, 0, 0, 0, 150, 94, 151, 124, - 125, 129, 131, 130, 143, 144, 141, 142, 145, 146, - 147, 148, 149, 139, 140, 133, 134, 132, 135, 137, - 138, 53, 54, 55, 56, 57, 0, 0, 0, 52, - 67, 68, 0, 69, 136, 0, 0, 236, 92, 0, - 85, 81, 82, 83, 78, 79, 0, 0, 0, 0, - 0, 0, 86, 0, 485, 0, 0, 106, 84, 80, - 96, 0, 51, 0, 0, 0, 47, 48, 87, 90, - 0, 0, 49, 0, 50, 45, 46, 58, 59, 60, - 61, 62, 63, 64, 65, 0, 93, 0, 44, 0, - 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, - 0, 76, 77, 102, 0, 89, 0, 0, 0, 0, - 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 542, - 0, 0, 0, 0, 0, 53, 54, 55, 56, 57, - 0, 0, 0, 52, 67, 68, 0, 69, 0, 0, - 0, 486, 92, 0, 85, 81, 82, 83, 78, 79, - 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, - 0, 106, 84, 80, 96, 0, 51, 0, 0, 0, - 47, 48, 87, 90, 0, 0, 49, 0, 50, 45, - 46, 58, 59, 60, 61, 62, 63, 64, 65, 0, - 93, 0, 44, 0, 126, 128, 127, 111, 0, 0, - 0, 0, 0, 0, 0, 76, 77, 102, 426, 89, - 0, 0, 0, 0, 150, 94, 151, 124, 125, 129, - 131, 130, 143, 144, 141, 142, 145, 146, 147, 148, - 149, 139, 140, 133, 134, 132, 135, 137, 138, 53, - 54, 55, 56, 57, 0, 0, 0, 52, 67, 68, - 0, 69, 136, 0, 0, 0, 92, 0, 85, 81, - 82, 83, 78, 79, 0, 0, 0, 0, 0, 0, - 86, 0, 313, 0, 0, 106, 84, 80, 96, 0, - 51, 0, 0, 0, 47, 48, 87, 90, 0, 0, - 49, 0, 50, 45, 46, 58, 59, 60, 61, 62, - 63, 64, 65, 0, 93, 0, 44, 0, 0, 0, - 0, 111, 0, 0, 0, 0, 0, 0, 0, 76, - 77, 102, 0, 89, 0, 0, 0, 0, 0, 94, + 0, 0, 0, 0, 48, 49, 0, 0, 0, 0, + 50, 0, 51, 46, 47, 59, 60, 61, 62, 63, + 64, 65, 66, 0, 94, 0, 45, 0, 0, 0, + 0, 21, 71, 72, 0, 0, 0, 0, 41, 77, + 78, 32, 0, 90, 0, 23, 0, 0, 0, 95, + 22, 14, 13, 0, 15, 0, 26, 0, 27, 0, + 0, 16, 0, 0, 0, 17, 18, 31, 33, 0, + 19, 29, 0, 0, 30, 0, 0, 20, 0, 25, + 0, 53, 0, 35, 0, 0, 0, 0, 0, 0, + 93, 0, 86, 82, 83, 84, 79, 80, 0, 0, + 0, 0, 0, 0, 87, 0, 0, 0, 0, 115, + 85, 81, 97, 0, 52, 0, 28, 10, 265, 0, + 88, 91, 54, 55, 56, 57, 58, 0, 0, 0, + 0, 68, 69, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 481, 0, 0, - 0, 0, 0, 53, 54, 55, 56, 57, 0, 0, - 0, 52, 67, 68, 0, 69, 0, 0, 0, 0, - 92, 0, 85, 81, 82, 83, 78, 79, 0, 0, - 292, 0, 0, 0, 86, 0, 0, 0, 0, 106, - 84, 80, 96, 0, 51, 0, 0, 0, 47, 48, - 87, 90, 0, 0, 49, 0, 50, 45, 46, 58, - 59, 60, 61, 62, 63, 64, 65, 0, 93, 0, - 44, 0, 126, 128, 127, 111, 0, 0, 0, 0, - 0, 0, 0, 76, 77, 102, 0, 89, 0, 0, - 0, 0, 150, 94, 151, 124, 125, 129, 131, 130, - 143, 144, 141, 142, 145, 146, 147, 148, 149, 139, - 140, 133, 134, 132, 135, 137, 138, 53, 54, 55, - 56, 57, 0, 0, 0, 52, 67, 68, 0, 69, - 136, 0, 0, 0, 92, 0, 85, 81, 82, 83, - 78, 79, 0, 0, 0, 0, 0, 0, 86, 0, - 0, 0, 0, 106, 84, 80, 96, 0, 51, 0, - 0, 0, 47, 48, 87, 90, 0, 0, 49, 0, - 50, 45, 46, 58, 59, 60, 61, 62, 63, 64, - 65, 0, 93, 0, 44, 0, 0, 0, 0, 111, - 0, 0, 0, 0, 0, 0, 0, 76, 77, 102, - 0, 89, 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 477, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, - 85, 81, 82, 83, 78, 79, 0, 0, 0, 0, - 0, 0, 86, 126, 128, 127, 0, 106, 84, 80, - 96, 0, 51, 0, 0, 0, 0, 0, 87, 90, - 0, 0, 0, 150, 627, 151, 124, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 126, 128, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 0, 0, 0, 0, 0, 150, 0, - 151, 124, 125, 129, 131, 130, 143, 144, 141, 142, - 145, 146, 147, 148, 149, 139, 140, 133, 134, 132, - 135, 137, 138, 126, 128, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 0, 0, 0, - 0, 0, 0, 150, 0, 151, 124, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 126, 128, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 0, 628, 0, 0, 0, 150, 0, - 151, 124, 125, 129, 131, 130, 143, 144, 141, 142, - 145, 146, 147, 148, 149, 139, 140, 133, 134, 132, - 135, 137, 138, 126, 128, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 0, 0, 302, - 0, 0, 0, 150, 0, 151, 124, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 126, 128, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 0, 123, 0, 0, 0, 150, 0, - 151, 124, 125, 129, 131, 130, 143, 144, 141, 142, - 145, 146, 147, 148, 149, 139, 140, 133, 134, 132, - 135, 137, 138, 126, 128, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 0, 550, 0, - 0, 0, 0, 150, 0, 151, 124, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 126, 128, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 538, 0, 0, 0, 0, 150, 0, - 151, 124, 125, 129, 131, 130, 143, 144, 141, 142, - 145, 146, 147, 148, 149, 139, 140, 133, 134, 132, - 135, 137, 138, 126, 128, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 0, 537, 0, - 0, 0, 0, 150, 0, 151, 124, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 126, 128, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 469, 0, 0, 0, 0, 150, 0, - 151, 124, 125, 129, 131, 130, 143, 144, 141, 142, - 145, 146, 147, 148, 149, 139, 140, 133, 134, 132, - 135, 137, 138, 126, 128, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 0, 468, 0, - 0, 0, 0, 150, 0, 151, 124, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 126, 128, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 467, 0, 0, 0, 0, 150, 0, - 151, 124, 125, 129, 131, 130, 143, 144, 141, 142, - 145, 146, 147, 148, 149, 139, 140, 133, 134, 132, - 135, 137, 138, 126, 128, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 0, 465, 0, - 0, 0, 0, 150, 0, 151, 124, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 126, 128, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 444, 0, 0, 0, 0, 150, 0, - 151, 124, 125, 129, 131, 130, 143, 144, 141, 142, - 145, 146, 147, 148, 149, 139, 140, 133, 134, 132, - 135, 137, 138, 126, 128, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 0, 440, 0, - 0, 0, 0, 150, 449, 151, 124, 125, 129, 131, - 130, 143, 144, 141, 142, 145, 146, 147, 148, 149, - 139, 140, 133, 134, 132, 135, 137, 138, 0, 126, - 128, 127, 0, 453, 433, 0, 0, 0, 0, 0, - 0, 136, 0, 334, 0, 0, 0, 0, 0, 150, - 0, 151, 124, 125, 129, 131, 130, 143, 144, 141, - 142, 145, 146, 147, 148, 149, 139, 140, 133, 134, - 132, 135, 137, 138, 126, 128, 127, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, - 0, 0, 0, 0, 150, 0, 151, 124, 125, 129, - 131, 130, 143, 144, 141, 142, 145, 146, 147, 148, - 149, 139, 140, 133, 134, 132, 135, 137, 138, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, + 0, 0, 0, 50, 0, 51, 46, 47, 59, 60, + 61, 62, 63, 64, 65, 66, 0, 94, 0, 45, + 0, 0, 0, 0, 21, 71, 72, 0, 0, 0, + 0, 41, 77, 78, 32, 0, 90, 0, 23, 0, + 0, 0, 95, 22, 14, 13, 0, 15, 0, 26, + 0, 27, 0, 0, 16, 0, 0, 0, 17, 18, + 31, 33, 0, 19, 29, 0, 0, 30, 0, 0, + 20, 0, 25, 0, 53, 0, 35, 0, 0, 0, + 0, 0, 0, 93, 0, 86, 82, 83, 84, 79, + 80, 0, 0, 0, 0, 0, 0, 87, 0, 0, + 0, 0, 115, 85, 81, 97, 0, 52, 0, 28, + 10, 0, 0, 88, 91, 54, 55, 56, 57, 58, + 0, 0, 0, 0, 68, 69, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 136, + 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 49, 0, 0, 0, 0, 50, 0, 51, 46, + 47, 59, 60, 61, 62, 63, 64, 65, 66, 0, + 94, 0, 45, 0, 0, 0, 0, 21, 0, 0, + 0, 0, 0, 0, 41, 77, 78, 32, 0, 90, + 0, 23, 0, 0, 0, 95, 22, 14, 13, 0, + 15, 0, 26, 0, 27, 0, 0, 16, 0, 0, + 0, 17, 18, 31, 0, 0, 19, 29, 0, 0, + 30, 0, 0, 20, 0, 25, 0, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 86, 82, + 83, 84, 79, 80, 0, 0, 0, 0, 0, 0, + 87, 0, 0, 0, 0, 115, 85, 81, 97, 0, + 52, 0, 28, 10, 0, 0, 88, 91, 54, 55, + 56, 57, 58, 0, 0, 0, 0, 68, 69, 0, + 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 717, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 0, 0, 0, 50, + 0, 51, 46, 47, 59, 60, 61, 62, 63, 64, + 65, 66, 0, 94, 0, 45, 0, 0, 0, 0, + 21, 0, 0, 0, 0, 0, 0, 41, 77, 78, + 32, 0, 90, 0, 23, 0, 0, 0, 95, 22, + 14, 13, 0, 15, 0, 26, 0, 27, 0, 0, + 16, 0, 0, 0, 17, 18, 31, 0, 0, 19, + 29, 0, 0, 30, 0, 0, 20, 0, 25, 0, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 86, 82, 83, 84, 79, 80, 0, 0, 0, + 0, 0, 0, 87, 0, 0, 0, 0, 115, 85, + 81, 97, 0, 52, 0, 28, 10, 0, 0, 88, + 91, 54, 55, 56, 57, 58, 0, 0, 0, 0, + 68, 69, 0, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 0, 50, 0, 51, 46, 47, 59, 60, 61, + 62, 63, 64, 65, 66, 0, 94, 0, 45, 0, + 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, + 41, 77, 78, 32, 0, 90, 0, 23, 0, 0, + 0, 95, 22, 14, 13, 0, 15, 0, 26, 0, + 27, 0, 0, 16, 0, 0, 0, 17, 18, 31, + 0, 0, 19, 29, 0, 0, 30, 0, 0, 20, + 0, 25, 0, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 93, 0, 86, 82, 83, 84, 79, 80, + 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, + 0, 115, 85, 81, 97, 0, 52, 0, 28, 10, + 0, 0, 88, 91, 54, 55, 56, 57, 58, 0, + 0, 0, 0, 68, 69, 0, 70, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 0, 0, 0, 0, 50, 0, 51, 46, 47, + 59, 60, 61, 62, 63, 64, 65, 66, 0, 94, + 0, 45, 0, 0, 0, 0, 21, 0, 0, 0, + 0, 0, 0, 41, 77, 78, 32, 0, 90, 0, + 23, 0, 0, 0, 95, 22, 14, 13, 0, 15, + 0, 26, 0, 27, 0, 0, 16, 0, 0, 0, + 17, 18, 31, 0, 0, 19, 29, 0, 0, 30, + 0, 0, 20, 0, 25, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 86, 82, 83, + 84, 79, 80, 0, 0, 0, 0, 0, 0, 87, + 0, 0, 0, 0, 115, 85, 81, 97, 0, 52, + 0, 28, 10, 0, 0, 88, 91, 54, 55, 56, + 57, 58, 0, 0, 0, 0, 68, 69, 0, 70, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 49, 0, 0, 0, 0, 50, 0, + 51, 46, 47, 59, 60, 61, 62, 63, 64, 65, + 66, 0, 94, 0, 45, 0, 0, 0, 0, 21, + 0, 0, 0, 0, 0, 0, 41, 77, 78, 32, + 0, 90, 0, 23, 0, 0, 0, 95, 22, 14, + 13, 0, 15, 0, 26, 0, 27, 0, 0, 16, + 0, 0, 0, 17, 18, 31, 0, 0, 19, 29, + 0, 0, 30, 0, 0, 20, 0, 25, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 86, 82, 83, 84, 79, 80, 0, 0, 0, 0, + 0, 0, 87, 0, 0, 0, 0, 115, 85, 81, + 97, 0, 52, 0, 28, 10, 0, 0, 88, 91, + 54, 55, 56, 57, 58, 0, 0, 0, 0, 68, + 69, 0, 70, 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, 48, 49, 0, 0, 0, + 0, 50, 0, 51, 46, 47, 59, 60, 61, 62, + 63, 64, 65, 66, 0, 94, 0, 45, 0, 0, + 0, 0, 21, 0, 0, 0, 0, 0, 0, 41, + 77, 78, 32, 0, 90, 0, 23, 0, 0, 0, + 95, 22, 14, 13, 0, 15, 0, 26, 0, 27, + 0, 0, 16, 0, 0, 0, 17, 18, 31, 0, + 0, 19, 29, 0, 0, 30, 0, 0, 20, 0, + 25, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 86, 82, 83, 84, 79, 80, 0, + 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, + 115, 85, 81, 97, 0, 52, 0, 28, 10, 137, + 136, 88, 91, 369, 370, 371, 372, 373, 0, 374, + 375, 376, 412, 413, 0, 0, 0, 0, 159, 0, + 160, 133, 134, 138, 140, 139, 152, 153, 150, 151, + 154, 155, 156, 157, 158, 148, 149, 142, 143, 141, + 144, 146, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 377, 145, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, + 379, 0, 382, 383, 384, 363, 364, 365, 366, 367, + 368, 380, 381, 0, 0, 360, 0, 0, 0, 0, + 0, 0, 0, 0, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 415, 416, 417, 418, 419, + 407, 408, 409, 410, 411, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 0, 427, 425, 426, + 422, 423, 0, 414, 420, 421, 428, 429, 431, 430, + 432, 433, 369, 370, 371, 372, 373, 0, 374, 375, + 376, 412, 413, 424, 435, 434, 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, 377, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 378, 379, + 0, 382, 383, 384, 571, 572, 573, 570, 569, 568, + 380, 381, 0, 0, 747, 0, 0, 0, 0, 0, + 0, 0, 0, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 415, 416, 417, 418, 419, 407, + 408, 409, 410, 411, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 0, 427, 425, 426, 422, + 423, 0, 414, 420, 421, 428, 429, 431, 430, 432, + 433, 0, 0, 0, 0, 0, 54, 55, 56, 57, + 58, 0, 424, 435, 434, 68, 69, 0, 70, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 0, 0, 0, 0, 50, 0, 51, + 46, 47, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 94, 0, 45, 0, 135, 137, 136, 120, 0, + 0, 0, 0, 0, 0, 0, 77, 78, 102, 0, + 90, 0, 0, 0, 0, 159, 95, 160, 133, 134, + 138, 140, 139, 152, 153, 150, 151, 154, 155, 156, + 157, 158, 148, 149, 142, 143, 141, 144, 146, 147, + 54, 55, 56, 57, 58, 0, 0, 0, 53, 68, + 69, 0, 70, 145, 0, 0, 245, 93, 0, 86, + 82, 83, 84, 79, 80, 0, 0, 0, 0, 0, + 0, 87, 0, 515, 0, 0, 115, 85, 81, 97, + 0, 52, 0, 0, 0, 48, 49, 88, 91, 0, + 0, 50, 0, 51, 46, 47, 59, 60, 61, 62, + 63, 64, 65, 66, 0, 94, 0, 45, 0, 0, + 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, + 77, 78, 102, 0, 90, 0, 0, 0, 0, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 511, 0, + 0, 0, 0, 0, 54, 55, 56, 57, 58, 0, + 0, 0, 53, 68, 69, 0, 70, 0, 0, 0, + 516, 93, 0, 86, 82, 83, 84, 79, 80, 0, + 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, + 115, 85, 81, 97, 0, 52, 0, 0, 0, 48, + 49, 88, 91, 0, 0, 50, 0, 51, 46, 47, + 59, 60, 61, 62, 63, 64, 65, 66, 0, 94, + 0, 45, 0, 135, 137, 136, 120, 0, 0, 0, + 0, 0, 0, 0, 77, 78, 102, 446, 90, 0, + 0, 0, 0, 159, 95, 160, 133, 134, 138, 140, + 139, 152, 153, 150, 151, 154, 155, 156, 157, 158, + 148, 149, 142, 143, 141, 144, 146, 147, 54, 55, + 56, 57, 58, 0, 0, 0, 53, 68, 69, 0, + 70, 145, 0, 0, 0, 93, 0, 86, 82, 83, + 84, 79, 80, 0, 0, 0, 0, 0, 0, 87, + 0, 333, 0, 0, 115, 85, 81, 97, 0, 52, + 0, 0, 0, 48, 49, 88, 91, 0, 0, 50, + 0, 51, 46, 47, 59, 60, 61, 62, 63, 64, + 65, 66, 0, 94, 0, 45, 0, 0, 0, 0, + 120, 0, 0, 0, 0, 0, 0, 0, 77, 78, + 102, 0, 90, 0, 0, 0, 0, 0, 95, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 507, 0, 0, 0, + 0, 0, 54, 55, 56, 57, 58, 0, 0, 0, + 53, 68, 69, 0, 70, 0, 0, 0, 0, 93, + 0, 86, 82, 83, 84, 79, 80, 0, 0, 312, + 0, 0, 0, 87, 0, 0, 0, 0, 115, 85, + 81, 97, 0, 52, 0, 0, 0, 48, 49, 88, + 91, 0, 0, 50, 0, 51, 46, 47, 59, 60, + 61, 62, 63, 64, 65, 66, 0, 94, 0, 45, + 0, 135, 137, 136, 120, 0, 0, 0, 0, 0, + 0, 0, 77, 78, 102, 0, 90, 0, 0, 0, + 0, 159, 95, 160, 133, 134, 138, 140, 139, 152, + 153, 150, 151, 154, 155, 156, 157, 158, 148, 149, + 142, 143, 141, 144, 146, 147, 54, 55, 56, 57, + 58, 0, 0, 0, 53, 68, 69, 0, 70, 145, + 0, 0, 0, 93, 0, 86, 82, 83, 84, 79, + 80, 0, 0, 0, 0, 0, 0, 87, 0, 0, + 0, 0, 115, 85, 81, 97, 0, 52, 0, 0, + 0, 48, 49, 88, 91, 0, 483, 50, 0, 51, + 46, 47, 59, 60, 61, 62, 63, 64, 65, 66, + 0, 94, 0, 45, 0, 0, 0, 0, 120, 0, + 135, 137, 136, 0, 0, 0, 77, 78, 102, 0, + 90, 0, 0, 0, 0, 0, 95, 0, 0, 0, + 159, 681, 160, 133, 134, 138, 140, 139, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 0, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 145, 86, + 82, 83, 84, 79, 80, 0, 0, 0, 0, 0, + 0, 87, 135, 137, 136, 0, 115, 85, 81, 97, + 0, 52, 0, 0, 0, 0, 0, 88, 91, 0, + 0, 0, 159, 0, 160, 133, 134, 138, 140, 139, + 152, 153, 150, 151, 154, 155, 156, 157, 158, 148, + 149, 142, 143, 141, 144, 146, 147, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 135, 137, 136, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 682, 159, 0, 160, 133, 134, 138, 140, 139, + 152, 153, 150, 151, 154, 155, 156, 157, 158, 148, + 149, 142, 143, 141, 144, 146, 147, 135, 137, 136, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 0, 0, 0, 0, 0, 159, 0, 160, + 133, 134, 138, 140, 139, 152, 153, 150, 151, 154, + 155, 156, 157, 158, 148, 149, 142, 143, 141, 144, + 146, 147, 0, 322, 135, 137, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, + 0, 0, 0, 0, 159, 0, 160, 133, 134, 138, + 140, 139, 152, 153, 150, 151, 154, 155, 156, 157, + 158, 148, 149, 142, 143, 141, 144, 146, 147, 0, + 135, 137, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 145, 132, 0, 0, 0, 0, 0, 0, + 159, 0, 160, 133, 134, 138, 140, 139, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 135, 137, 136, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 594, 145, 0, + 0, 0, 0, 0, 0, 159, 0, 160, 133, 134, + 138, 140, 139, 152, 153, 150, 151, 154, 155, 156, + 157, 158, 148, 149, 142, 143, 141, 144, 146, 147, + 135, 137, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 575, 0, 0, 0, 0, 0, + 159, 0, 160, 133, 134, 138, 140, 139, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 135, 137, 136, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 574, 0, 0, 0, 0, 159, 0, 160, 133, 134, + 138, 140, 139, 152, 153, 150, 151, 154, 155, 156, + 157, 158, 148, 149, 142, 143, 141, 144, 146, 147, + 135, 137, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 0, 499, 0, 0, 0, 0, + 159, 0, 160, 133, 134, 138, 140, 139, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 135, 137, 136, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 498, 0, 0, 0, 0, 159, 0, 160, 133, 134, + 138, 140, 139, 152, 153, 150, 151, 154, 155, 156, + 157, 158, 148, 149, 142, 143, 141, 144, 146, 147, + 135, 137, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 0, 497, 0, 0, 0, 0, + 159, 0, 160, 133, 134, 138, 140, 139, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 135, 137, 136, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 540, + 495, 0, 0, 0, 0, 159, 0, 160, 133, 134, + 138, 140, 139, 152, 153, 150, 151, 154, 155, 156, + 157, 158, 148, 149, 142, 143, 141, 144, 146, 147, + 0, 542, 0, 0, 0, 0, 0, 0, 120, 0, + 135, 137, 136, 145, 0, 474, 0, 0, 102, 0, + 90, 0, 0, 0, 0, 0, 95, 0, 0, 0, + 159, 479, 160, 133, 134, 138, 140, 139, 152, 153, + 150, 151, 154, 155, 156, 157, 158, 148, 149, 142, + 143, 141, 144, 146, 147, 0, 0, 0, 0, 0, + 470, 0, 0, 0, 0, 0, 541, 93, 145, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 115, 0, 0, 97, + 0, 199, 135, 137, 136, 0, 0, 453, 91, 0, + 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, + 0, 0, 159, 0, 160, 133, 134, 138, 140, 139, + 152, 153, 150, 151, 154, 155, 156, 157, 158, 148, + 149, 142, 143, 141, 144, 146, 147, 135, 137, 136, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 0, 0, 0, 0, 0, 159, 0, 160, + 133, 134, 138, 140, 139, 152, 153, 150, 151, 154, + 155, 156, 157, 158, 148, 149, 142, 143, 141, 144, + 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 145, } var yyPact = [...]int{ - -1000, -1000, 3206, -1000, -1000, -1000, -1000, 129, 72, -1000, - -1000, -1000, 127, 4347, 126, 125, 5363, 5363, 5363, -44, - 291, 5363, -1000, 5593, 124, 123, 121, -1000, -60, 5363, - 360, 446, 417, 307, 359, 375, 378, 2405, -1000, -1000, - 119, -1000, -1000, 186, 5363, 183, 183, 5363, 5363, 5363, - 5363, 5363, 111, 5363, 5363, 108, 5363, 5363, 5363, 5363, - 5363, 5363, 5363, 5363, 5363, 5363, -1000, 5363, 5363, 5363, - -1000, -1000, -1000, 158, 148, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 275, 238, -1000, -1000, - -1, -1000, 107, 4793, -1000, -1000, 353, 132, 75, 353, - -70, -1000, -1000, 3043, 5363, 246, 103, 5363, 5363, 47, - 6224, -1000, 45, 44, 160, -1000, -1000, 101, -1000, 477, - 94, -1000, 6224, -1000, 5363, 5363, 5363, 5363, 5363, 5363, - 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, - 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, - 5249, 5363, 183, 5363, 286, -1000, 5548, 43, -1000, 346, - -1000, 315, -1000, -61, 92, 4347, 91, 41, 443, 5135, - 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, - 5363, 5363, -1000, -1000, 5363, -2, -1000, -1000, 139, 138, - 5363, -1000, -1000, -1000, 388, 388, 388, 388, 6043, 5363, - 6224, 6224, 5363, 6224, 6224, 388, 388, 388, 388, 388, - 388, 388, 388, 799, 1887, 799, 664, 664, 278, -1000, - 224, -1000, 265, 5021, 183, 155, 289, 5363, -1000, 4793, - -93, 526, -1000, -1000, 6179, 183, 90, -1000, 310, 40, - -1000, -1000, -1000, 1250, -1000, -1000, -1000, -1000, -1000, 5998, - 83, 34, 519, 6224, 5953, -1000, -1000, -1000, -1000, -44, - -1000, 291, 5363, -1000, 5363, 1233, 1396, 4499, 799, 939, - 1559, 2044, 1719, 455, 455, 455, 388, 388, 388, 388, - 451, 451, 2202, 2202, 2202, 2202, 2202, 464, 464, 464, - 464, 6133, 5363, 1075, 515, -1000, -1000, 6088, 185, -1000, - 475, 2880, -1000, -1000, 82, -62, -1000, 5363, -1000, 5363, - -1000, -1000, 799, 5363, 799, 799, 799, 799, 799, 799, - 799, 799, 799, 799, 799, 799, 5908, -1000, -1000, 5363, - -1000, -44, -44, 5863, -1000, 5818, 5773, 5363, -1000, -1000, + -1000, -1000, 1512, -1000, -1000, -1000, -1000, 187, 41, 327, + -1000, -1000, -1000, 186, 4446, 185, 184, 5462, 5462, 5462, + -40, 398, 5462, -1000, 5662, 183, 182, 179, -1000, 7, + 5462, 429, 553, 500, 412, 426, 475, 499, 2341, -1000, + -1000, 173, -1000, -1000, 313, 5462, 200, 200, 5462, 5462, + 5462, 5462, 5462, 167, 5462, 5462, 164, 5462, 5462, 5462, + 5462, 5462, 5462, 5462, 5462, 5462, 5462, -1000, 5462, 5462, + 5462, -1000, -1000, -1000, 249, 211, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 377, 383, -1000, + -1000, 9, -1000, 163, 4892, -1000, 196, 407, 136, 407, + -46, -1000, -1000, 110, 365, 240, 305, 407, -1000, -1000, + -1000, -1000, 3305, 5462, 370, 83, 5462, 5462, 106, 6297, + -1000, 105, 102, 239, -1000, -1000, 238, -1000, 577, 237, + -1000, 6297, -1000, 5462, 5462, 5462, 5462, 5462, 5462, 5462, + 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, + 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5348, + 5462, 200, 5462, 408, -1000, 5602, 101, -1000, 425, -1000, + 422, -1000, 6, 159, 4446, 157, 100, 550, 5234, 5462, + 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, + 5462, -1000, -1000, 5462, 12, -1000, -1000, 208, 207, 5462, + -1000, -1000, -1000, 456, 456, 456, 456, 6115, 5462, 6297, + 6297, 5462, 6297, 6297, 456, 456, 456, 456, 456, 456, + 456, 456, 898, 1660, 898, 763, 763, 381, -1000, 354, + -1000, 374, 5120, 200, 79, 387, 5462, -1000, 4892, -85, + 616, -1000, -1000, 6252, 200, 150, 417, 196, 98, 196, + -1000, -1000, 1349, -1000, 95, 236, 304, 407, -1000, 282, + 46, 416, 291, -1000, -1000, -1000, -1000, -1000, -1000, 6070, + 148, 93, 614, 6297, 6025, -1000, -1000, -1000, -1000, -40, + -1000, 398, 5462, -1000, 5462, 1171, 1332, 4598, 898, 760, + 1495, 1980, 1818, 556, 556, 556, 456, 456, 456, 456, + 1040, 1040, 2138, 2138, 2138, 2138, 2138, 697, 697, 697, + 697, 6170, 5462, 1034, 613, -1000, -1000, 5411, 246, -1000, + 576, 3142, -1000, -1000, 145, -31, -1000, 5462, -1000, 5462, + -1000, -1000, 898, 5462, 898, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 898, 5980, -1000, -1000, 5462, + -1000, -40, -40, 5935, -1000, 5890, 5845, 5462, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1192,91 +1195,98 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 397, 309, 5312, 3, -85, -1000, 5084, - 73, -1000, 4793, 4907, -1000, 4793, -1000, -1000, 1087, -1000, - 4184, 5363, 5363, 5363, 49, -1000, -1000, 6224, -1000, 5363, - 1075, 67, 183, 170, 4021, 286, 5363, -1000, 187, -1000, - 274, 5728, 5683, 2717, 2044, 3858, 4856, -1000, -1000, -1000, - 799, -97, -1000, -1000, 267, -1000, -1000, -1000, -1000, 5363, - -1000, -1000, -1000, -1000, 6224, 183, 81, 65, -1000, -1000, - -1000, -1000, 5638, 32, 6224, -1000, 31, 29, 1075, 27, - -1000, 172, -1000, 183, 79, 4793, -1000, -1000, -1000, -1000, - 6224, 230, 61, 512, -1000, 431, -1000, -1000, 229, -1000, - -1000, -1000, 36, -1000, -1000, 247, 248, 171, 386, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 4347, 441, 25, - -1000, -1000, -1000, -1000, -1000, 370, -1000, 4793, -1000, 2554, - 23, 5363, -10, -1000, 284, -1000, -1000, 3532, 170, -1000, - 4793, -108, 2391, -1000, 77, -65, 438, 187, 95, -1000, - -1000, -1000, 86, -1000, 471, 4510, 417, 70, -1000, -1000, - -1000, -1000, -1000, 3369, -86, 58, 22, -1000, 56, -1000, - 5363, 62, -67, 1, 262, -1000, -1000, -1000, 55, 54, - -1000, -37, 171, -1000, -74, 187, -1000, 285, -1000, -1000, - 247, 5363, 76, -1000, 467, 4510, -1000, 171, -1000, 942, - 3369, -1000, -1000, -1000, 3695, 5503, -1000, -1000, -1000, -1000, - -1000, -38, 2228, 3532, -1000, -1000, 343, -1000, 2065, -1000, - -1000, 462, -1000, 6224, -1000, 4510, 5363, 63, -1000, -1000, - 803, -1000, -50, -54, 212, 234, 137, -1000, 103, -1000, - -1000, -1000, -1000, -1000, 3369, -1000, -55, -1000, 52, 171, - -1000, 1902, 5363, -1000, 6224, 187, -1000, -1000, -1000, -1000, - 171, 4649, 4510, 1739, 3369, -1000, -81, -1000, -1000, 6224, - 37, 490, -1000, -1000, 4510, -1000, -57, -1000, 438, -1000, - -1000, 1576, -87, -1000, -1000, -1000, -1000, 1413, -1000, + -1000, -1000, -1000, 514, 413, 5183, 30, -61, -1000, 4955, + 133, -1000, 4892, 5006, -1000, 4892, -1000, -1000, 1186, -1000, + -1000, -1000, 43, 250, -1000, 407, 247, 378, -1000, 42, + 4283, 5462, 5462, 5462, 73, -1000, -1000, 6297, -1000, 5462, + 1034, 132, 200, 6102, 4120, 408, 5462, -1000, 309, -1000, + 137, 5800, 5754, 2979, 1980, 3957, 382, -1000, -1000, -1000, + 898, -89, -1000, -1000, 379, -1000, -1000, -1000, -1000, 5462, + -1000, -1000, -1000, -1000, 6297, 200, 144, 129, -1000, 407, + 39, 597, -1000, -1000, 407, 378, -1000, -1000, -1000, 5707, + 92, 6297, -1000, 89, 82, 1034, 80, -1000, 243, -1000, + 200, 142, 4892, -1000, -1000, -1000, -1000, 6297, 341, 127, + 607, -1000, 505, -1000, -1000, 116, -1000, -1000, -1000, 10, + -1000, -1000, 393, 364, 254, 580, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 4446, 545, 71, -1000, -1000, -1000, + -1000, -1000, 337, -1000, 4892, -1000, 589, -1000, 407, -67, + 378, -1000, 597, 2816, 66, 5462, 1, -1000, 454, -1000, + -1000, 3631, 6102, -1000, 4892, -119, 2653, -1000, 140, -49, + 535, 309, 193, -1000, -1000, -1000, 202, -1000, 574, 4609, + 500, 64, -1000, -1000, -1000, -1000, -1000, 3468, -69, 124, + -70, 407, 589, -1000, -1000, -71, 63, -1000, 122, -1000, + 5462, 81, -1, 62, 444, -1000, -1000, -1000, 121, 118, + -1000, 61, 254, -1000, -57, 309, -1000, 397, -1000, -1000, + 393, 5462, 201, -1000, 572, 4609, -1000, 254, -1000, 1041, + 3468, -1000, -1000, -1000, -1000, -83, -1000, -1000, 3794, 5530, + -1000, -1000, -1000, -1000, -1000, 60, 2490, 3631, -1000, -1000, + 453, -1000, 2327, -1000, -1000, 570, -1000, 6297, -1000, 4609, + 5462, 139, -1000, -1000, 902, -1000, 59, 58, 328, 347, + 203, -1000, 83, -1000, -1000, -1000, -1000, -1000, -1000, 3468, + -1000, 34, -1000, 114, 254, -1000, 2164, 5462, -1000, 6297, + 309, -1000, -1000, -1000, -1000, 254, 4748, 4609, 2001, 3468, + -1000, -59, -1000, -1000, 6297, 112, 588, -1000, -1000, 4609, + -1000, 15, -1000, 535, -1000, -1000, 1838, -78, -1000, -1000, + -1000, -1000, 1675, -1000, } var yyPgo = [...]int{ - 0, 491, 627, 626, 15, 6, 624, 2, 621, 358, - 620, 36, 53, 32, 615, 1, 614, 37, 31, 613, - 3, 13, 23, 5, 611, 14, 0, 610, 609, 163, - 27, 608, 606, 603, 601, 600, 16, 598, 597, 596, - 33, 520, 594, 39, 593, 38, 588, 29, 586, 25, - 20, 24, 28, 584, 581, 10, 580, 26, 578, 576, - 573, 571, 21, 569, 567, 566, 4, 565, 12, 563, - 9, 562, 8, 560, 558, 7, 557, 556, 554, 553, - 551, 550, 387, 76, 549, 546, 121, 73, 545, 43, - 544, 541, 537, 536, 11, + 0, 544, 731, 730, 15, 5, 729, 2, 727, 197, + 30, 68, 24, 726, 1, 725, 38, 37, 724, 3, + 13, 22, 6, 721, 16, 0, 718, 716, 76, 85, + 715, 714, 711, 710, 708, 25, 706, 705, 704, 32, + 619, 702, 44, 697, 43, 696, 42, 694, 33, 17, + 26, 47, 693, 692, 11, 691, 35, 688, 687, 685, + 684, 36, 681, 680, 678, 4, 676, 12, 674, 9, + 671, 7, 670, 667, 8, 666, 664, 654, 653, 652, + 651, 479, 101, 650, 645, 74, 72, 644, 34, 643, + 640, 604, 635, 634, 28, 29, 460, 21, 57, 54, + 629, 14, 10, } var yyR1 = [...]int{ - 0, 92, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, - 6, 6, 6, 6, 6, 6, 7, 7, 10, 10, - 9, 11, 11, 11, 12, 12, 8, 8, 8, 8, - 8, 8, 8, 15, 15, 14, 14, 14, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 59, 59, 60, 60, 61, 61, 56, 56, - 57, 58, 58, 31, 31, 32, 32, 33, 33, 34, - 34, 35, 35, 36, 36, 37, 37, 39, 39, 39, - 39, 40, 40, 40, 94, 94, 38, 38, 50, 50, - 50, 50, 51, 52, 52, 53, 53, 54, 54, 54, - 54, 54, 54, 55, 55, 42, 42, 43, 44, 44, - 45, 45, 46, 46, 47, 48, 48, 49, 93, 93, - 17, 17, 16, 16, 1, 1, 62, 62, 63, 63, - 63, 63, 72, 72, 73, 73, 73, 74, 74, 75, - 75, 76, 77, 77, 77, 77, 78, 78, 79, 80, - 80, 64, 64, 69, 69, 70, 71, 71, 65, 65, - 66, 66, 66, 66, 66, 66, 67, 67, 68, 68, - 18, 23, 23, 24, 24, 25, 25, 19, 19, 4, - 4, 2, 2, 3, 3, 21, 21, 22, 22, 22, - 20, 20, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 82, 82, 82, 82, 83, 83, 83, 83, 83, - 83, 83, 84, 84, 84, 84, 85, 85, 85, 86, - 86, 87, 88, 88, 88, 89, 89, 89, 26, 26, - 41, 41, 28, 29, 29, 29, 91, 91, 91, 30, - 30, 30, 90, 90, + 6, 6, 6, 6, 6, 6, 7, 7, 9, 9, + 10, 10, 10, 11, 11, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 91, 91, 92, 92, + 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, + 98, 98, 99, 99, 14, 14, 13, 13, 13, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 58, 58, 59, 59, 60, 60, 55, + 55, 56, 57, 57, 30, 30, 31, 31, 32, 32, + 33, 33, 34, 34, 35, 35, 36, 36, 38, 38, + 38, 38, 39, 39, 39, 102, 102, 37, 37, 49, + 49, 49, 49, 50, 51, 51, 52, 52, 53, 53, + 53, 53, 53, 53, 54, 54, 41, 41, 42, 43, + 43, 44, 44, 45, 45, 46, 47, 47, 48, 101, + 101, 16, 16, 15, 15, 1, 1, 61, 61, 62, + 62, 62, 62, 71, 71, 72, 72, 72, 73, 73, + 74, 74, 75, 76, 76, 76, 76, 77, 77, 78, + 79, 79, 63, 63, 68, 68, 69, 70, 70, 64, + 64, 65, 65, 65, 65, 65, 65, 66, 66, 67, + 67, 17, 22, 22, 23, 23, 24, 24, 18, 18, + 4, 4, 2, 2, 3, 3, 20, 20, 21, 21, + 21, 19, 19, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 81, 81, 81, 81, 82, 82, 82, 82, + 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, + 85, 85, 86, 87, 87, 87, 88, 88, 88, 25, + 25, 40, 40, 27, 28, 28, 28, 90, 90, 90, + 29, 29, 29, 89, 89, } var yyR2 = [...]int{ @@ -1288,75 +1298,79 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 1, 2, 3, 2, 0, 1, 1, 1, 4, - 3, 5, 4, 2, 0, 1, 1, 1, 3, 1, - 1, 5, 7, 9, 5, 3, 3, 3, 3, 3, - 3, 1, 2, 6, 7, 9, 5, 1, 6, 3, - 3, 2, 0, 9, 1, 3, 0, 4, 3, 1, - 3, 1, 4, 5, 6, 1, 3, 6, 7, 3, - 6, 1, 4, 0, 1, 3, 1, 3, 4, 4, - 5, 0, 5, 4, 1, 1, 1, 4, 1, 2, - 4, 3, 1, 0, 1, 3, 1, 3, 1, 4, - 2, 6, 4, 1, 4, 3, 1, 1, 3, 1, - 1, 3, 3, 1, 1, 1, 3, 1, 0, 1, - 6, 5, 1, 2, 1, 1, 2, 0, 3, 4, - 3, 9, 1, 3, 1, 2, 3, 1, 2, 2, - 2, 3, 3, 3, 4, 3, 1, 1, 3, 1, - 3, 1, 1, 3, 1, 3, 0, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, - 10, 1, 0, 1, 3, 4, 6, 0, 1, 0, - 1, 0, 1, 0, 1, 1, 2, 1, 1, 1, - 0, 2, 3, 4, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 2, 3, 2, 0, 1, 1, 1, 4, 3, + 5, 4, 3, 4, 3, 4, 1, 1, 6, 7, + 6, 7, 3, 1, 3, 1, 3, 1, 1, 2, + 1, 3, 1, 2, 2, 0, 1, 1, 1, 3, + 1, 1, 5, 7, 9, 5, 3, 3, 3, 3, + 3, 3, 1, 2, 6, 7, 9, 5, 1, 6, + 3, 3, 2, 0, 9, 1, 3, 0, 4, 3, + 1, 3, 1, 4, 5, 6, 1, 3, 6, 7, + 3, 6, 1, 4, 0, 1, 3, 1, 3, 4, + 4, 5, 0, 5, 4, 1, 1, 1, 4, 1, + 2, 4, 3, 1, 0, 1, 3, 1, 3, 1, + 4, 2, 6, 4, 1, 4, 3, 1, 1, 3, + 1, 1, 3, 3, 1, 1, 1, 3, 1, 0, + 1, 6, 5, 1, 2, 1, 1, 2, 0, 3, + 4, 3, 9, 1, 3, 1, 2, 3, 1, 2, + 2, 2, 3, 3, 3, 4, 3, 1, 1, 3, + 1, 3, 1, 1, 3, 1, 3, 0, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 3, 1, 1, + 3, 10, 1, 0, 1, 3, 4, 6, 0, 1, + 0, 1, 0, 1, 0, 1, 1, 2, 1, 1, + 1, 0, 2, 3, 4, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 5, 4, 3, 4, 2, 2, 4, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 2, 1, 2, 4, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 3, 3, 1, - 1, 2, 2, 1, 2, 1, 4, 3, 3, 3, - 6, 3, 1, 1, 2, 1, 1, 3, 3, 1, - 1, 1, 1, 3, 1, 4, 3, 1, 1, 1, - 0, 1, 1, 1, 1, 3, 1, 3, 1, 1, - 4, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 5, 4, 3, 4, 2, 2, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 2, 1, 2, 4, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 2, 3, 3, + 1, 1, 2, 2, 1, 2, 1, 4, 3, 3, + 3, 6, 3, 1, 1, 2, 1, 1, 3, 3, + 1, 1, 1, 1, 3, 1, 4, 3, 1, 1, + 1, 0, 1, 1, 1, 1, 3, 1, 3, 1, + 1, 4, 2, 3, 3, } var yyChk = [...]int{ - -1000, -92, -12, -8, -13, -18, -17, 127, 154, 162, - -32, -34, 97, 96, 99, 106, 110, 111, 115, 122, - 76, 95, 90, -26, 124, 101, 103, 161, 116, 119, - 112, 86, 113, -16, 128, -31, -33, -29, -27, -1, - 83, -28, -90, -88, 71, 58, 59, 49, 50, 55, - 57, 159, 126, 4, 5, 6, 7, 8, 60, 61, - 62, 63, 64, 65, 66, 67, -81, 13, 14, 16, - 77, 78, -30, -86, -87, -89, 84, 85, 141, 142, - 156, 138, 139, 140, 155, 137, 149, 165, -85, 88, - 166, -11, 135, 69, 94, -9, 157, -10, 159, 157, - -9, 162, 86, -15, 159, -13, 154, 159, 159, -41, - -26, 76, -41, -41, -42, -43, -30, -44, -45, 88, - -46, -47, -26, 161, 33, 34, 10, 12, 11, 35, - 37, 36, 51, 49, 50, 52, 68, 53, 54, 47, - 48, 40, 41, 38, 39, 42, 43, 44, 45, 46, - 30, 32, 159, 159, 159, 162, -26, 86, 31, -4, - 37, 128, -1, 86, 73, 74, 73, 75, 74, 17, - 18, 19, 20, 29, 21, 22, 23, 24, 25, 26, - 27, 28, 58, 59, 159, 133, -26, -29, -86, -87, - 159, -89, -11, -29, -26, -26, -26, -26, -26, 159, - -26, -26, 159, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, 153, 153, 93, 150, - -82, -83, 88, 151, 152, -82, 93, 162, -30, 159, - -51, -53, -52, -54, -26, 37, 134, -9, 157, 160, - -9, 161, 162, -12, -14, 163, -13, -18, -17, -26, - 97, -36, -37, -26, -26, 161, 161, 161, 161, 9, - 161, 9, 17, 161, 9, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, - -26, -26, 31, -26, -48, -49, -29, -26, -56, -57, - 86, -15, 161, 161, 86, 86, 162, 159, -13, 159, - 161, 31, -26, 37, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, -26, -91, 86, 162, - -30, 153, 153, -26, 160, -26, -26, 15, -7, -30, + -1000, -100, -11, -8, -12, -17, -16, 127, 154, 120, + 162, -31, -33, 97, 96, 99, 106, 110, 111, 115, + 122, 76, 95, 90, -25, 124, 101, 103, 161, 116, + 119, 112, 86, 113, -15, 128, -30, -32, -28, -26, + -1, 83, -27, -89, -87, 71, 58, 59, 49, 50, + 55, 57, 159, 126, 4, 5, 6, 7, 8, 60, + 61, 62, 63, 64, 65, 66, 67, -80, 13, 14, + 16, 77, 78, -29, -85, -86, -88, 84, 85, 141, + 142, 156, 138, 139, 140, 155, 137, 149, 165, -84, + 88, 166, -10, 135, 69, 94, -9, 157, 159, 157, + -9, 162, 86, -93, -91, -96, -9, 157, 113, 114, + -99, -98, -14, 159, -12, 154, 159, 159, -40, -25, + 76, -40, -40, -41, -42, -29, -43, -44, 88, -45, + -46, -25, 161, 33, 34, 10, 12, 11, 35, 37, + 36, 51, 49, 50, 52, 68, 53, 54, 47, 48, + 40, 41, 38, 39, 42, 43, 44, 45, 46, 30, + 32, 159, 159, 159, 162, -25, 86, 31, -4, 37, + 128, -1, 86, 73, 74, 73, 75, 74, 17, 18, + 19, 20, 29, 21, 22, 23, 24, 25, 26, 27, + 28, 58, 59, 159, 133, -25, -28, -85, -86, 159, + -88, -10, -28, -25, -25, -25, -25, -25, 159, -25, + -25, 159, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, 153, 153, 93, 150, -81, + -82, 88, 151, 152, -81, 93, 162, -29, 159, -50, + -52, -51, -53, -25, 37, 134, 157, -9, 160, -9, + 161, 162, -11, 161, -92, -96, -9, 157, 161, 9, + 157, 105, -9, -98, -13, 163, -12, -17, -16, -25, + 97, -35, -36, -25, -25, 161, 161, 161, 161, 9, + 161, 9, 17, 161, 9, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, 31, -25, -47, -48, -28, -25, -55, -56, + 86, -14, 161, 161, 86, 86, 162, 159, -12, 159, + 161, 31, -25, 37, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -90, 86, 162, + -29, 153, 153, -25, 160, -25, -25, 15, -7, -29, 86, -6, -5, 76, 77, 78, 79, 80, 81, 4, 5, 6, 7, 8, 10, 11, 12, 56, 70, 71, 82, 83, 73, 74, 75, 95, 96, 97, 98, 99, @@ -1364,73 +1378,79 @@ var yyChk = [...]int{ 120, 121, 122, 123, 124, 125, 126, 111, 112, 113, 114, 115, 13, 14, 134, 106, 107, 108, 109, 110, 135, 136, 131, 132, 154, 129, 130, 128, 137, 138, - 140, 139, 141, 142, 156, 155, -7, -30, 150, -83, - 150, -83, 93, 69, 133, -26, 87, -29, 165, -26, - -51, 164, 9, 15, -29, 159, 86, 161, -12, 163, - 160, 159, 161, 9, 160, -43, -45, -26, -47, 31, - -26, -93, 9, 105, 160, 9, 17, 163, 159, 162, - -62, -26, -26, -15, -26, 160, -26, 160, 160, 160, - -26, -84, 86, 89, 50, 88, 86, 163, 163, 69, - 163, 163, 160, -52, -26, 37, 134, -51, 163, -35, - -13, 31, -26, -36, -26, -39, 162, 31, -26, 160, - -49, -50, -29, 37, 134, 69, -58, -13, 31, -57, - -26, -59, -23, -24, -25, -19, -21, -22, 30, -11, - 135, 136, -62, 163, -63, -64, -71, 120, -65, 123, - -66, 81, 80, 79, 76, 77, 78, 160, 160, 75, - -13, 31, 163, 164, 89, -26, -29, 159, 160, -15, - 160, 161, -40, 161, -40, 161, 161, 160, 15, -29, - 159, -51, -15, -61, 117, 118, 160, 9, -2, 37, - -22, 163, -67, -68, 88, 114, 113, -72, -11, -66, - -13, 31, 161, -15, 164, -51, 98, 161, -36, 163, - 108, 109, -40, 107, -40, -55, -13, 31, -50, -51, - 164, 104, 159, 162, -20, 31, -25, -3, 158, 161, - 9, 17, -69, -70, -7, -4, -73, 9, 161, 162, - -15, 163, 160, 161, 160, -26, -94, 31, 161, 163, - 161, 107, -15, 160, 160, 161, -60, -11, -15, 162, - -21, 88, -68, -26, 161, 9, 17, -7, -11, 163, - -74, -75, -76, -77, -79, -78, -11, -7, 154, 86, - -38, -13, 31, -94, -15, 161, 102, -55, 88, 35, - 163, -15, 17, -70, -26, 159, 163, -75, 161, 161, - 121, 105, 153, -15, -15, 161, 160, -11, 163, -26, - -23, -72, 86, -5, -66, -7, 100, 162, 160, -7, - 161, -15, -20, 163, -80, 161, 162, -15, 163, + 140, 139, 141, 142, 156, 155, -7, -29, 150, -82, + 150, -82, 93, 69, 133, -25, 87, -28, 165, -25, + -50, 164, 9, 15, -28, 159, 86, 161, -11, 163, + 161, 161, 157, -9, -99, 157, -9, 162, 86, 157, + 160, 159, 161, 9, 160, -42, -44, -25, -46, 31, + -25, -101, 9, 105, 160, 9, 17, 163, 159, 162, + -61, -25, -25, -14, -25, 160, -25, 160, 160, 160, + -25, -83, 86, 89, 50, 88, 86, 163, 163, 69, + 163, 163, 160, -51, -25, 37, 134, -50, 163, 162, + 157, -94, -97, -98, -91, 162, -34, -12, 31, -25, + -35, -25, -38, 162, 31, -25, 160, -48, -49, -28, + 37, 134, 69, -57, -12, 31, -56, -25, -58, -22, + -23, -24, -18, -20, -21, 30, -10, 135, 136, -61, + 163, -62, -63, -70, 120, -64, 123, -65, 81, 80, + 79, 76, 77, 78, 160, 160, 75, -12, 31, 163, + 164, 89, -25, -28, 159, 160, -95, -98, 162, -101, + 9, -98, -94, -14, 160, 161, -39, 161, -39, 161, + 161, 160, 15, -28, 159, -50, -14, -60, 117, 118, + 160, 9, -2, 37, -21, 163, -66, -67, 88, 114, + 113, -71, -10, -65, -12, 31, 161, -14, 164, -50, + -101, 9, -95, 163, -97, -101, 98, 161, -35, 163, + 108, 109, -39, 107, -39, -54, -12, 31, -49, -50, + 164, 104, 159, 162, -19, 31, -24, -3, 158, 161, + 9, 17, -68, -69, -7, -4, -72, 9, 161, 162, + -14, 163, 160, 163, -98, -101, 163, 161, 160, -25, + -102, 31, 161, 163, 161, 107, -14, 160, 160, 161, + -59, -10, -14, 162, -20, 88, -67, -25, 161, 9, + 17, -7, -10, 163, -73, -74, -75, -76, -78, -77, + -10, -7, 154, 86, 163, -37, -12, 31, -102, -14, + 161, 102, -54, 88, 35, 163, -14, 17, -69, -25, + 159, 163, -74, 161, 161, 121, 105, 153, -14, -14, + 161, 160, -10, 163, -25, -22, -71, 86, -5, -65, + -7, 100, 162, 160, -7, 161, -14, -19, 163, -79, + 161, 162, -14, 163, } var yyDef = [...]int{ - 85, -2, 1, 84, 86, 87, 88, 0, 0, 94, - 99, 100, 0, 0, 0, 0, 380, 380, 380, 0, - 369, 0, 111, 0, 0, 0, 0, 117, 0, 0, - 0, 78, 249, 0, 0, 135, 0, -2, 379, 192, - 0, 383, 384, 371, 0, 0, 0, 0, 0, 0, + 84, -2, 1, 83, 85, 86, 87, 0, 0, 0, + 115, 120, 121, 0, 0, 0, 0, 401, 401, 401, + 0, 390, 0, 132, 0, 0, 0, 0, 138, 0, + 0, 0, 78, 270, 0, 0, 156, 0, -2, 400, + 213, 0, 404, 405, 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 329, 0, 331, 0, - 194, 195, 382, 0, 0, -2, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 0, 0, 350, 389, - 0, -2, 0, 163, 377, 81, 0, 80, 0, 0, - 0, 85, 78, 0, 0, 0, 0, 143, 0, 0, - 381, 369, 0, 0, 0, 176, 177, 0, 179, 180, - 0, 183, 184, 112, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 350, 0, 352, + 0, 215, 216, 403, 0, 0, -2, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 0, 0, 371, + 410, 0, -2, 0, 184, 398, 80, 0, 0, 0, + 0, 84, 78, 0, 0, 0, 110, 0, 96, 97, + 107, 112, 0, 0, 0, 0, 164, 0, 0, 402, + 390, 0, 0, 0, 197, 198, 0, 200, 201, 0, + 204, 205, 133, 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, 94, 0, 0, 121, 0, - 250, 0, 193, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 115, 0, 0, 142, 0, 271, + 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 277, 279, 0, 0, 264, -2, 0, 0, - 0, 374, 370, -2, 298, 299, 300, 301, 0, 0, - 316, 317, 0, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 330, 332, 334, 0, 0, 0, 346, - 0, 353, 355, 0, 0, 0, 0, 0, 391, 163, - 0, 162, 166, 164, 168, 0, 0, 82, 0, 0, - 83, 90, 85, 0, 93, 98, 95, 96, 97, 0, - 0, 0, 144, 146, 0, 105, 106, 107, 108, 0, - 109, 0, 0, 110, 0, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, -2, -2, -2, -2, -2, -2, -2, -2, - -2, 0, 0, 314, 188, 185, -2, 0, 0, 129, - 0, 0, 119, 120, 0, 0, 197, 0, 136, 0, - 139, 94, 262, 0, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 0, 385, 386, 0, - 388, 0, 0, 0, -2, 0, 0, 0, 367, 392, + 0, 298, 300, 0, 0, 285, -2, 0, 0, 0, + 395, 391, -2, 319, 320, 321, 322, 0, 0, 337, + 338, 0, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 351, 353, 355, 0, 0, 0, 367, 0, + 374, 376, 0, 0, 0, 0, 0, 412, 184, 0, + 183, 187, 185, 189, 0, 0, 0, 81, 0, 82, + 89, 84, 0, 92, 0, 0, 110, 0, 94, 0, + 0, 0, 110, 113, 114, 119, 116, 117, 118, 0, + 0, 0, 165, 167, 0, 126, 127, 128, 129, 0, + 130, 0, 0, 131, 0, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, -2, -2, -2, -2, -2, -2, -2, -2, + -2, 0, 0, 335, 209, 206, -2, 0, 0, 150, + 0, 0, 140, 141, 0, 0, 218, 0, 157, 0, + 160, 115, 283, 0, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 0, 406, 407, 0, + 409, 0, 0, 0, -2, 0, 0, 0, 388, 413, 76, 77, 69, 70, 71, 72, 73, 74, 75, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, @@ -1438,36 +1458,40 @@ var yyDef = [...]int{ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 368, 393, 345, 354, - 348, 351, 352, 0, 0, 0, 0, 372, 347, 0, - 0, 376, 163, 0, -2, 163, 79, 89, 0, 92, - 0, 0, 143, 0, 0, 175, 178, 181, 182, 0, - 313, 0, 189, 0, 0, 0, 0, 122, -2, 197, - 226, 0, 0, 0, 263, 0, 0, 373, 315, 318, - 333, 0, 362, 363, 0, 365, 357, 358, 359, 0, - 361, 390, 375, 165, 167, 0, 0, 0, 91, 101, - 141, 94, 0, 0, 145, 104, 151, 151, 312, 0, - 186, 0, -2, 0, 0, 163, 116, 131, 94, 128, - 130, 126, 0, 241, 243, 251, 248, 255, 0, 257, - 258, 259, 226, 191, 196, 0, 0, 0, -2, 222, - 228, 230, 231, 232, 233, 234, 235, 0, 0, 0, - 133, 94, 387, 356, 364, 0, -2, 163, 172, 0, - 0, 143, 0, 151, 0, 151, 113, 0, 0, -2, - 163, 0, 0, 118, 0, 0, 260, 247, 253, 252, - 256, 190, 0, 237, 238, 0, 249, 0, 202, 229, - 134, 94, 140, 137, 0, 0, 0, 102, 0, 147, - 0, 0, 0, 0, 0, 114, 173, 94, 0, 0, - -2, 0, 0, 94, 0, 0, 244, 0, 254, 198, - 0, 0, 0, 224, 0, 0, 200, 0, 204, 0, - 138, 360, 171, 142, 0, 0, 94, 154, 155, 148, - 149, 0, 0, 0, 160, 132, 0, 124, 0, 94, - 261, 245, 236, 239, 199, 0, 0, 0, 203, 205, - 0, 207, 0, 0, 217, 0, 0, 216, 57, -2, - 103, 156, 94, 94, 153, 150, 0, 115, 0, 0, - 127, 0, 0, 223, 225, -2, 206, 208, 209, 210, - 0, 0, 0, 0, 152, 174, 0, 125, 240, 246, - 0, 211, 212, 213, 215, 218, 0, 94, 260, 214, - 157, 0, 0, 123, 201, 219, 94, 0, 220, + 63, 64, 65, 66, 67, 68, 389, 414, 366, 375, + 369, 372, 373, 0, 0, 0, 0, 393, 368, 0, + 0, 397, 184, 0, -2, 184, 79, 88, 0, 91, + 93, 95, 0, 110, 106, 0, 110, 0, 111, 0, + 0, 0, 164, 0, 0, 196, 199, 202, 203, 0, + 334, 0, 210, 0, 0, 0, 0, 143, -2, 218, + 247, 0, 0, 0, 284, 0, 0, 394, 336, 339, + 354, 0, 383, 384, 0, 386, 378, 379, 380, 0, + 382, 411, 396, 186, 188, 0, 0, 0, 90, 0, + 0, 209, 103, 108, 0, 0, 122, 162, 115, 0, + 0, 166, 125, 172, 172, 333, 0, 207, 0, -2, + 0, 0, 184, 137, 152, 115, 149, 151, 147, 0, + 262, 264, 272, 269, 276, 0, 278, 279, 280, 247, + 212, 217, 0, 0, 0, -2, 243, 249, 251, 252, + 253, 254, 255, 256, 0, 0, 0, 154, 115, 408, + 377, 385, 0, -2, 184, 193, 209, 105, 0, 0, + 210, 109, 209, 0, 0, 164, 0, 172, 0, 172, + 134, 0, 0, -2, 184, 0, 0, 139, 0, 0, + 281, 268, 274, 273, 277, 211, 0, 258, 259, 0, + 270, 0, 223, 250, 155, 115, 161, 158, 0, 0, + 0, 210, 209, 100, 102, 0, 0, 123, 0, 168, + 0, 0, 0, 0, 0, 135, 194, 115, 0, 0, + -2, 0, 0, 115, 0, 0, 265, 0, 275, 219, + 0, 0, 0, 245, 0, 0, 221, 0, 225, 0, + 159, 381, 192, 98, 104, 0, 101, 163, 0, 0, + 115, 175, 176, 169, 170, 0, 0, 0, 181, 153, + 0, 145, 0, 115, 282, 266, 257, 260, 220, 0, + 0, 0, 224, 226, 0, 228, 0, 0, 238, 0, + 0, 237, 57, -2, 99, 124, 177, 115, 115, 174, + 171, 0, 136, 0, 0, 148, 0, 0, 244, 246, + -2, 227, 229, 230, 231, 0, 0, 0, 0, 173, + 195, 0, 146, 261, 267, 0, 232, 233, 234, 236, + 239, 0, 115, 281, 235, 178, 0, 0, 144, 222, + 240, 115, 0, 241, } var yyTok1 = [...]int{ @@ -1845,623 +1869,749 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:290 + //line parser.y:298 { fmt.Println(yyDollar[1].node) } case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:302 { yyVAL.value = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:302 { yyVAL.value = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:302 { yyVAL.value = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:302 { yyVAL.value = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:302 { yyVAL.value = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:302 { yyVAL.value = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:302 { yyVAL.value = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:302 { yyVAL.value = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:303 { yyVAL.value = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:304 { yyVAL.value = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:306 { yyVAL.value = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:299 + //line parser.y:307 { yyVAL.value = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:299 + //line parser.y:307 { yyVAL.value = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:299 + //line parser.y:307 { yyVAL.value = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:299 + //line parser.y:307 { yyVAL.value = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:299 + //line parser.y:307 { yyVAL.value = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:299 + //line parser.y:307 { yyVAL.value = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:299 + //line parser.y:307 { yyVAL.value = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:299 + //line parser.y:307 { yyVAL.value = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:300 + //line parser.y:308 { yyVAL.value = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:300 + //line parser.y:308 { yyVAL.value = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:300 + //line parser.y:308 { yyVAL.value = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:300 + //line parser.y:308 { yyVAL.value = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:300 + //line parser.y:308 { yyVAL.value = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:300 + //line parser.y:308 { yyVAL.value = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:300 + //line parser.y:308 { yyVAL.value = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:300 + //line parser.y:308 { yyVAL.value = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:304 + //line parser.y:312 { yyVAL.value = yyDollar[1].value } case 70: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:305 + //line parser.y:313 { yyVAL.value = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:305 + //line parser.y:313 { yyVAL.value = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:305 + //line parser.y:313 { yyVAL.value = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:305 + //line parser.y:313 { yyVAL.value = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:305 + //line parser.y:313 { yyVAL.value = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:305 + //line parser.y:313 { yyVAL.value = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:309 + //line parser.y:317 { yyVAL.node = Node("identifier").attribute("value", yyDollar[1].token) } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:310 + //line parser.y:318 { yyVAL.node = Node("identifier").attribute("value", yyDollar[1].value) } case 78: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:314 + //line parser.y:322 { yyVAL.node = Node("NamespaceParts").append(Node(yyDollar[1].token)) } case 79: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:315 + //line parser.y:323 { yyVAL.node = yyDollar[1].node.append(Node(yyDollar[3].token)) } case 80: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:319 - { - yyVAL.node = yyDollar[1].node - } - case 81: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:323 + //line parser.y:327 { yyVAL.node = Node("Name").append(yyDollar[1].node) } - case 82: + case 81: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:324 + //line parser.y:328 { yyVAL.node = Node("Name").append(yyDollar[2].node).attribute("FullyQualified", "true") } - case 83: + case 82: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:325 + //line parser.y:329 { yyVAL.node = Node("Name").append(yyDollar[3].node).attribute("Relative", "true") } - case 84: + case 83: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:329 + //line parser.y:333 { yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } - case 85: + case 84: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:330 + //line parser.y:334 { yyVAL.node = Node("Statements") } + case 85: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:338 + { + yyVAL.node = yyDollar[1].node + } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:334 + //line parser.y:339 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:335 + //line parser.y:340 { yyVAL.node = yyDollar[1].node } case 88: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:336 - { - yyVAL.node = yyDollar[1].node - } - case 89: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:338 + //line parser.y:342 { yyVAL.node = Node("THaltCompiler") } - case 90: + case 89: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:340 + //line parser.y:344 { yyVAL.node = Node("Namespace").append(yyDollar[2].node) } - case 91: + case 90: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:342 + //line parser.y:346 { yyVAL.node = Node("Namespace").append(yyDollar[2].node).append(yyDollar[4].node) } - case 92: + case 91: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:343 + //line parser.y:347 { yyVAL.node = Node("Namespace").append(yyDollar[3].node) } - case 93: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:347 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) - } - case 94: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:348 - { - yyVAL.node = Node("stmt") - } - case 95: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:352 - { - yyVAL.node = yyDollar[1].node - } - case 96: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:353 - { - yyVAL.node = yyDollar[1].node - } - case 97: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:354 - { - yyVAL.node = yyDollar[1].node - } - case 98: + case 92: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:357 + //line parser.y:348 { yyVAL.node = yyDollar[2].node } - case 99: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:358 + case 93: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:349 { - yyVAL.node = yyDollar[1].node + yyVAL.node = yyDollar[3].node.append(yyDollar[2].node) + } + case 94: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:350 + { + yyVAL.node = yyDollar[2].node + } + case 95: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:351 + { + yyVAL.node = yyDollar[3].node.append(yyDollar[2].node) + } + case 96: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:355 + { + yyVAL.node = Node("FuncUseType") + } + case 97: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:356 + { + yyVAL.node = Node("ConstUseType") + } + case 98: + yyDollar = yyS[yypt-6 : yypt+1] + //line parser.y:361 + { + yyVAL.node = Node("GroupUse").append(yyDollar[1].node).append(yyDollar[4].node) + } + case 99: + yyDollar = yyS[yypt-7 : yypt+1] + //line parser.y:363 + { + yyVAL.node = Node("GroupUse").append(yyDollar[2].node).append(yyDollar[5].node) } case 100: + yyDollar = yyS[yypt-6 : yypt+1] + //line parser.y:368 + { + yyVAL.node = Node("MixedGroupUse").append(yyDollar[1].node).append(yyDollar[4].node) + } + case 101: + yyDollar = yyS[yypt-7 : yypt+1] + //line parser.y:370 + { + yyVAL.node = Node("MixedGroupUse").append(yyDollar[2].node).append(yyDollar[5].node) + } + case 102: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:375 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + } + case 103: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:359 + //line parser.y:376 + { + yyVAL.node = Node("UseList").append(yyDollar[1].node) + } + case 104: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:380 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + } + case 105: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:381 + { + yyVAL.node = Node("UseList").append(yyDollar[1].node) + } + case 106: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:384 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + } + case 107: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:385 + { + yyVAL.node = Node("UseList").append(yyDollar[1].node) + } + case 108: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:388 { yyVAL.node = yyDollar[1].node } - case 101: + case 109: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:389 + { + yyVAL.node = yyDollar[2].node.append(yyDollar[1].node) + } + case 110: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:392 + { + yyVAL.node = Node("UseElem").append(yyDollar[1].node) + } + case 111: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:393 + { + yyVAL.node = Node("UseElem").append(yyDollar[1].node).append(Node("as").attribute("value", yyDollar[3].token)) + } + case 112: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:396 + { + yyVAL.node = yyDollar[1].node + } + case 113: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:397 + { + yyVAL.node = yyDollar[2].node + } + case 114: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:401 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) + } + case 115: + yyDollar = yyS[yypt-0 : yypt+1] + //line parser.y:402 + { + yyVAL.node = Node("stmt") + } + case 116: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:406 + { + yyVAL.node = yyDollar[1].node + } + case 117: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:407 + { + yyVAL.node = yyDollar[1].node + } + case 118: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:408 + { + yyVAL.node = yyDollar[1].node + } + case 119: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:411 + { + yyVAL.node = yyDollar[2].node + } + case 120: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:412 + { + yyVAL.node = yyDollar[1].node + } + case 121: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:413 + { + yyVAL.node = yyDollar[1].node + } + case 122: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:361 + //line parser.y:415 { yyVAL.node = Node("While"). append(Node("expr").append(yyDollar[3].node)). append(Node("stmt").append(yyDollar[5].node)) } - case 102: + case 123: yyDollar = yyS[yypt-7 : yypt+1] - //line parser.y:367 + //line parser.y:421 { yyVAL.node = Node("DoWhile"). append(Node("expr").append(yyDollar[5].node)). append(Node("stmt").append(yyDollar[2].node)) } - case 103: + case 124: yyDollar = yyS[yypt-9 : yypt+1] - //line parser.y:373 + //line parser.y:427 { yyVAL.node = Node("For"). append(Node("expr1").append(yyDollar[3].node)). @@ -2469,78 +2619,78 @@ yydefault: append(Node("expr3").append(yyDollar[7].node)). append(Node("stmt").append(yyDollar[9].node)) } - case 104: + case 125: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:380 + //line parser.y:434 { yyVAL.node = Node("Switch").append(Node("expr").append(yyDollar[3].node)).append(yyDollar[5].node) } - case 105: + case 126: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:381 + //line parser.y:435 { yyVAL.node = Node("Break").append(yyDollar[2].node) } - case 106: + case 127: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:382 + //line parser.y:436 { yyVAL.node = Node("Continue").append(yyDollar[2].node) } - case 107: + case 128: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:383 + //line parser.y:437 { yyVAL.node = Node("Return").append(yyDollar[2].node) } - case 108: + case 129: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:384 + //line parser.y:438 { yyVAL.node = yyDollar[2].node } - case 109: + case 130: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:385 + //line parser.y:439 { yyVAL.node = yyDollar[2].node } - case 110: + case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:386 + //line parser.y:440 { yyVAL.node = yyDollar[2].node } - case 111: + case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:387 + //line parser.y:441 { yyVAL.node = Node("Echo").append(Node("InlineHtml").attribute("value", yyDollar[1].token)) } - case 112: + case 133: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:388 + //line parser.y:442 { yyVAL.node = yyDollar[1].node } - case 113: + case 134: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:390 + //line parser.y:444 { yyVAL.node = Node("Unset").append(yyDollar[3].node) } - case 114: + case 135: yyDollar = yyS[yypt-7 : yypt+1] - //line parser.y:392 + //line parser.y:446 { yyVAL.node = Node("Foreach"). append(Node("expr").append(yyDollar[3].node)). append(Node("ForeachVariable").append(yyDollar[5].node)). append(yyDollar[7].node) } - case 115: + case 136: yyDollar = yyS[yypt-9 : yypt+1] - //line parser.y:399 + //line parser.y:453 { yyVAL.node = Node("Foreach"). append(Node("expr").append(yyDollar[3].node)). @@ -2548,501 +2698,501 @@ yydefault: append(Node("ForeachVariable").append(yyDollar[7].node)). append(yyDollar[9].node) } - case 116: + case 137: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:406 + //line parser.y:460 { yyVAL.node = Node("Declare").append(yyDollar[3].node).append(yyDollar[5].node) } - case 117: + case 138: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:407 + //line parser.y:461 { yyVAL.node = Node("") } - case 118: + case 139: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:409 + //line parser.y:463 { yyVAL.node = Node("Try"). append(yyDollar[3].node). append(yyDollar[5].node). append(yyDollar[6].node) } - case 119: + case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:415 + //line parser.y:469 { yyVAL.node = Node("Throw").append(yyDollar[2].node) } - case 120: + case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:416 + //line parser.y:470 { yyVAL.node = Node("GoTo").attribute("Label", yyDollar[2].token) } - case 121: + case 142: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:417 + //line parser.y:471 { yyVAL.node = Node("Label").attribute("name", yyDollar[1].token) } - case 122: + case 143: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:420 + //line parser.y:474 { yyVAL.node = Node("CatchList") } - case 123: + case 144: yyDollar = yyS[yypt-9 : yypt+1] - //line parser.y:422 + //line parser.y:476 { yyVAL.node = yyDollar[1].node.append(yyDollar[4].node).append(Node("Variable").attribute("name", yyDollar[5].token)).append(yyDollar[8].node) } - case 124: + case 145: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:425 + //line parser.y:479 { yyVAL.node = Node("CatchNameList").append(yyDollar[1].node) } - case 125: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:426 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) - } - case 126: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:430 - { - yyVAL.node = Node("") - } - case 127: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:431 - { - yyVAL.node = Node("Finnaly").append(yyDollar[3].node) - } - case 128: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:435 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) - } - case 129: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:436 - { - yyVAL.node = Node("ConstList").append(yyDollar[1].node) - } - case 130: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:440 - { - yyVAL.node = Node("Const").attribute("name", yyDollar[1].token).append(yyDollar[3].node) - } - case 131: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:444 - { - yyVAL.node = yyDollar[1].node - } - case 132: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:445 - { - yyVAL.node = yyDollar[2].node - } - case 133: - yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:450 - { - yyVAL.node = Node("If").append(Node("expr").append(yyDollar[3].node)).append(Node("stmt").append(yyDollar[5].node)) - } - case 134: - yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:454 - { - yyVAL.node = yyDollar[1].node.append(Node("ElseIf").append(Node("expr").append(yyDollar[4].node)).append(Node("stmt").append(yyDollar[6].node))) - } - case 135: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:460 - { - yyVAL.node = yyDollar[1].node - } - case 136: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:462 - { - yyVAL.node = yyDollar[1].node.append(Node("Else").append(Node("stmt").append(yyDollar[3].node))) - } - case 137: - yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:469 - { - yyVAL.node = Node("AltIf").append(Node("expr").append(yyDollar[3].node)).append(Node("stmt").append(yyDollar[6].node)) - } - case 138: - yyDollar = yyS[yypt-7 : yypt+1] - //line parser.y:473 - { - yyVAL.node = yyDollar[1].node.append(Node("AltElseIf").append(Node("expr").append(yyDollar[4].node)).append(Node("stmt").append(yyDollar[7].node))) - } - case 139: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:479 - { - yyVAL.node = yyDollar[1].node - } - case 140: - yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:481 - { - yyVAL.node = yyDollar[1].node.append(Node("AltElse").append(Node("stmt").append(yyDollar[4].node))) - } - case 141: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:487 - { - yyVAL.node = yyDollar[1].node - } - case 142: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:488 - { - yyVAL.node = yyDollar[2].node - } - case 143: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:492 - { - yyVAL.node = Node("") - } - case 144: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:493 - { - yyVAL.node = yyDollar[1].node - } - case 145: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:496 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) - } case 146: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:497 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:480 { - yyVAL.node = Node("ExpressionList").append(yyDollar[1].node) + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 147: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:501 + yyDollar = yyS[yypt-0 : yypt+1] + //line parser.y:484 { - yyVAL.node = yyDollar[2].node + yyVAL.node = Node("") } case 148: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:502 + //line parser.y:485 { - yyVAL.node = yyDollar[3].node + yyVAL.node = Node("Finnaly").append(yyDollar[3].node) } case 149: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:503 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:489 { - yyVAL.node = yyDollar[2].node + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 150: - yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:504 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:490 { - yyVAL.node = yyDollar[3].node + yyVAL.node = Node("ConstList").append(yyDollar[1].node) } case 151: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:508 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:494 { - yyVAL.node = Node("CaseList") + yyVAL.node = Node("Const").attribute("name", yyDollar[1].token).append(yyDollar[3].node) } case 152: - yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:510 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:498 { - yyVAL.node = yyDollar[1].node.append(Node("Case").append(Node("expr").append(yyDollar[3].node)).append(yyDollar[5].node)) + yyVAL.node = yyDollar[1].node } case 153: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:514 + //line parser.y:499 { - yyVAL.node = yyDollar[1].node.append(Node("Default").append(yyDollar[4].node)) + yyVAL.node = yyDollar[2].node + } + case 154: + yyDollar = yyS[yypt-5 : yypt+1] + //line parser.y:504 + { + yyVAL.node = Node("If").append(Node("expr").append(yyDollar[3].node)).append(Node("stmt").append(yyDollar[5].node)) + } + case 155: + yyDollar = yyS[yypt-6 : yypt+1] + //line parser.y:508 + { + yyVAL.node = yyDollar[1].node.append(Node("ElseIf").append(Node("expr").append(yyDollar[4].node)).append(Node("stmt").append(yyDollar[6].node))) } case 156: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:525 + //line parser.y:514 { yyVAL.node = yyDollar[1].node } case 157: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:526 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:516 { - yyVAL.node = yyDollar[2].node + yyVAL.node = yyDollar[1].node.append(Node("Else").append(Node("stmt").append(yyDollar[3].node))) } case 158: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:530 + yyDollar = yyS[yypt-6 : yypt+1] + //line parser.y:523 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("AltIf").append(Node("expr").append(yyDollar[3].node)).append(Node("stmt").append(yyDollar[6].node)) } case 159: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:531 + yyDollar = yyS[yypt-7 : yypt+1] + //line parser.y:527 { - yyVAL.node = Node("Ref").append(yyDollar[2].node) + yyVAL.node = yyDollar[1].node.append(Node("AltElseIf").append(Node("expr").append(yyDollar[4].node)).append(Node("stmt").append(yyDollar[7].node))) } case 160: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:532 - { - yyVAL.node = Node("List").append(yyDollar[3].node) - } - case 161: yyDollar = yyS[yypt-3 : yypt+1] //line parser.y:533 { - yyVAL.node = Node("ShortList").append(yyDollar[2].node) + yyVAL.node = yyDollar[1].node + } + case 161: + yyDollar = yyS[yypt-6 : yypt+1] + //line parser.y:535 + { + yyVAL.node = yyDollar[1].node.append(Node("AltElse").append(Node("stmt").append(yyDollar[4].node))) } case 162: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:537 - { /* TODO: allow single trailing comma */ + //line parser.y:541 + { yyVAL.node = yyDollar[1].node } case 163: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:541 - { - yyVAL.node = Node("") - } - case 164: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-4 : yypt+1] //line parser.y:542 - { - yyVAL.node = yyDollar[1].node - } - case 165: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:547 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) - } - case 166: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:548 - { - yyVAL.node = Node("ArrayPairList").append(yyDollar[1].node) - } - case 167: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:552 - { - yyVAL.node = Node("ArrayElement").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 168: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:553 - { - yyVAL.node = Node("ArrayElement").append(yyDollar[1].node) - } - case 169: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:554 - { - yyVAL.node = Node("ArrayElement").append(yyDollar[1].node).append(Node("Ref").append(yyDollar[4].node)) - } - case 170: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:555 - { - yyVAL.node = Node("ArrayElement").append(Node("Ref").append(yyDollar[2].node)) - } - case 171: - yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:557 - { - yyVAL.node = Node("ArrayElement"). - append(yyDollar[1].node). - append(Node("ArrayList").append(yyDollar[5].node)) - } - case 172: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:563 - { - yyVAL.node = Node("ArrayElement"). - append(Node("ArrayList").append(yyDollar[3].node)) - } - case 173: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:570 - { - yyVAL.node = yyDollar[1].node - } - case 174: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:571 { yyVAL.node = yyDollar[2].node } - case 175: + case 164: + yyDollar = yyS[yypt-0 : yypt+1] + //line parser.y:546 + { + yyVAL.node = Node("") + } + case 165: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:547 + { + yyVAL.node = yyDollar[1].node + } + case 166: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:575 + //line parser.y:550 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } - case 176: + case 167: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:576 + //line parser.y:551 { - yyVAL.node = Node("GlobalVarList").append(yyDollar[1].node) + yyVAL.node = Node("ExpressionList").append(yyDollar[1].node) + } + case 168: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:555 + { + yyVAL.node = yyDollar[2].node + } + case 169: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:556 + { + yyVAL.node = yyDollar[3].node + } + case 170: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:557 + { + yyVAL.node = yyDollar[2].node + } + case 171: + yyDollar = yyS[yypt-5 : yypt+1] + //line parser.y:558 + { + yyVAL.node = yyDollar[3].node + } + case 172: + yyDollar = yyS[yypt-0 : yypt+1] + //line parser.y:562 + { + yyVAL.node = Node("CaseList") + } + case 173: + yyDollar = yyS[yypt-5 : yypt+1] + //line parser.y:564 + { + yyVAL.node = yyDollar[1].node.append(Node("Case").append(Node("expr").append(yyDollar[3].node)).append(yyDollar[5].node)) + } + case 174: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:568 + { + yyVAL.node = yyDollar[1].node.append(Node("Default").append(yyDollar[4].node)) } case 177: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:580 + //line parser.y:579 { yyVAL.node = yyDollar[1].node } case 178: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:584 + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:580 { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + yyVAL.node = yyDollar[2].node } case 179: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:585 + //line parser.y:584 { - yyVAL.node = Node("StaticVarList").append(yyDollar[1].node) + yyVAL.node = yyDollar[1].node } case 180: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:589 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:585 { - yyVAL.node = Node("StaticVariable").attribute("Name", yyDollar[1].token) + yyVAL.node = Node("Ref").append(yyDollar[2].node) } case 181: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:590 + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:586 { - yyVAL.node = Node("StaticVariable").attribute("Name", yyDollar[1].token).append(Node("expr").append(yyDollar[3].node)) + yyVAL.node = Node("List").append(yyDollar[3].node) } case 182: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:594 + //line parser.y:587 { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + yyVAL.node = Node("ShortList").append(yyDollar[2].node) } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:595 - { - yyVAL.node = Node("EchoList").append(yyDollar[1].node) + //line parser.y:591 + { /* TODO: allow single trailing comma */ + yyVAL.node = yyDollar[1].node } case 184: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:599 + yyDollar = yyS[yypt-0 : yypt+1] + //line parser.y:595 { - yyVAL.node = Node("Echo").append(yyDollar[1].node) + yyVAL.node = Node("") } case 185: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:603 + //line parser.y:596 { - yyVAL.node = Node("UnsetVariablesList").append(yyDollar[1].node) + yyVAL.node = yyDollar[1].node } case 186: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:604 + //line parser.y:601 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:608 + //line parser.y:602 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("ArrayPairList").append(yyDollar[1].node) + } + case 188: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:606 + { + yyVAL.node = Node("ArrayElement").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 189: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:607 + { + yyVAL.node = Node("ArrayElement").append(yyDollar[1].node) } case 190: - yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:618 + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:608 { - yyVAL.node = yyDollar[1].node.attribute("name", yyDollar[3].token).append(yyDollar[5].node) + yyVAL.node = Node("ArrayElement").append(yyDollar[1].node).append(Node("Ref").append(yyDollar[4].node)) } case 191: - yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:619 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:609 { - yyVAL.node = Node("Class").attribute("name", yyDollar[2].token).append(yyDollar[4].node) + yyVAL.node = Node("ArrayElement").append(Node("Ref").append(yyDollar[2].node)) } case 192: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:623 + yyDollar = yyS[yypt-6 : yypt+1] + //line parser.y:611 { - yyVAL.node = Node("Class").attribute(yyDollar[1].value, "true") + yyVAL.node = Node("ArrayElement"). + append(yyDollar[1].node). + append(Node("ArrayList").append(yyDollar[5].node)) } case 193: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:624 + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:617 { - yyVAL.node = yyDollar[1].node.attribute(yyDollar[2].value, "true") + yyVAL.node = Node("ArrayElement"). + append(Node("ArrayList").append(yyDollar[3].node)) } case 194: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:628 + //line parser.y:624 { - yyVAL.value = "abstract" + yyVAL.node = yyDollar[1].node } case 195: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:629 + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:625 { - yyVAL.value = "final" + yyVAL.node = yyDollar[2].node } case 196: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:633 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:629 { - yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 197: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:634 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:630 { - yyVAL.node = Node("Stmt") + yyVAL.node = Node("GlobalVarList").append(yyDollar[1].node) } case 198: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:634 + { + yyVAL.node = yyDollar[1].node + } + case 199: yyDollar = yyS[yypt-3 : yypt+1] //line parser.y:638 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + } + case 200: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:639 + { + yyVAL.node = Node("StaticVarList").append(yyDollar[1].node) + } + case 201: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:643 + { + yyVAL.node = Node("StaticVariable").attribute("Name", yyDollar[1].token) + } + case 202: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:644 + { + yyVAL.node = Node("StaticVariable").attribute("Name", yyDollar[1].token).append(Node("expr").append(yyDollar[3].node)) + } + case 203: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:648 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + } + case 204: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:649 + { + yyVAL.node = Node("EchoList").append(yyDollar[1].node) + } + case 205: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:653 + { + yyVAL.node = Node("Echo").append(yyDollar[1].node) + } + case 206: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:657 + { + yyVAL.node = Node("UnsetVariablesList").append(yyDollar[1].node) + } + case 207: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:658 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + } + case 208: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:662 + { + yyVAL.node = yyDollar[1].node + } + case 211: + yyDollar = yyS[yypt-6 : yypt+1] + //line parser.y:672 + { + yyVAL.node = yyDollar[1].node.attribute("name", yyDollar[3].token).append(yyDollar[5].node) + } + case 212: + yyDollar = yyS[yypt-5 : yypt+1] + //line parser.y:673 + { + yyVAL.node = Node("Class").attribute("name", yyDollar[2].token).append(yyDollar[4].node) + } + case 213: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:677 + { + yyVAL.node = Node("Class").attribute(yyDollar[1].value, "true") + } + case 214: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:678 + { + yyVAL.node = yyDollar[1].node.attribute(yyDollar[2].value, "true") + } + case 215: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:682 + { + yyVAL.value = "abstract" + } + case 216: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:683 + { + yyVAL.value = "final" + } + case 217: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:687 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) + } + case 218: + yyDollar = yyS[yypt-0 : yypt+1] + //line parser.y:688 + { + yyVAL.node = Node("Stmt") + } + case 219: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:692 { yyVAL.node = yyDollar[2].node.append(yyDollar[1].node) } - case 199: + case 220: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:639 + //line parser.y:693 { yyVAL.node = yyDollar[3].node.append(yyDollar[1].node) } - case 200: + case 221: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:640 + //line parser.y:694 { yyVAL.node = Node("Use").append(yyDollar[2].node).append(yyDollar[3].node) } - case 201: + case 222: yyDollar = yyS[yypt-9 : yypt+1] - //line parser.y:643 + //line parser.y:697 { yyVAL.node = Node("Function"). append(yyDollar[1].node). @@ -3052,237 +3202,237 @@ yydefault: append(yyDollar[8].node). append(yyDollar[9].node) } - case 202: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:655 - { - yyVAL.node = Node("NameList").append(yyDollar[1].node) - } - case 203: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:656 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) - } - case 204: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:660 - { - yyVAL.node = Node("") - } - case 205: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:661 - { - yyVAL.node = Node("") - } - case 206: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:662 - { - yyVAL.node = yyDollar[2].node - } - case 207: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:666 - { - yyVAL.node = Node("TraitAdaptionList").append(yyDollar[1].node) - } - case 208: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:667 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) - } - case 209: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:671 - { - yyVAL.node = yyDollar[1].node - } - case 210: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:672 - { - yyVAL.node = yyDollar[1].node - } - case 211: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:677 - { - yyVAL.node = Node("TraitPrecedence").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 212: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:681 - { - yyVAL.node = yyDollar[1].node.append(Node("as").attribute("value", yyDollar[3].token)) - } - case 213: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:683 - { - yyVAL.node = yyDollar[1].node.append(Node("as").append(Node("reservedNonModifiers"))) - } - case 214: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:685 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node).append(yyDollar[4].node) - } - case 215: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:686 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) - } - case 216: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:689 - { - yyVAL.node = Node("TraitMethodRef").append(yyDollar[1].node) - } - case 217: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:690 - { - yyVAL.node = yyDollar[1].node - } - case 218: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:694 - { - yyVAL.node = Node("TraitMethodRef").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 219: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:698 - { - yyVAL.node = Node("") - } - case 220: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:699 - { - yyVAL.node = yyDollar[2].node - } - case 221: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:703 - { - yyVAL.node = yyDollar[1].node - } - case 222: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:704 - { - yyVAL.node = Node("VarMemberModifier") - } case 223: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:708 - { - yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) - } - case 224: yyDollar = yyS[yypt-1 : yypt+1] //line parser.y:709 { - yyVAL.node = Node("ConstList").append(yyDollar[1].node) + yyVAL.node = Node("NameList").append(yyDollar[1].node) + } + case 224: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:710 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 225: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:713 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:714 { - yyVAL.node = Node("Const").append(yyDollar[3].node) + yyVAL.node = Node("") } case 226: - yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:717 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:715 { - yyVAL.node = Node("PublicMemberModifier") + yyVAL.node = Node("") } case 227: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:718 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:716 { - yyVAL.node = yyDollar[1].node + yyVAL.node = yyDollar[2].node } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:721 + //line parser.y:720 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("TraitAdaptionList").append(yyDollar[1].node) } case 229: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:722 + //line parser.y:721 { yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } case 230: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line parser.y:725 { - yyVAL.node = Node("PublicMemberModifier") + yyVAL.node = yyDollar[1].node } case 231: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] //line parser.y:726 { - yyVAL.node = Node("ProtectedMemberModifier") + yyVAL.node = yyDollar[1].node } case 232: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:727 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:731 { - yyVAL.node = Node("PrivateMemberModifier") + yyVAL.node = Node("TraitPrecedence").append(yyDollar[1].node).append(yyDollar[3].node) } case 233: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:728 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:735 { - yyVAL.node = Node("StaticMemberModifier") + yyVAL.node = yyDollar[1].node.append(Node("as").attribute("value", yyDollar[3].token)) } case 234: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:729 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:737 { - yyVAL.node = Node("AbstractMemberModifier") + yyVAL.node = yyDollar[1].node.append(Node("as").append(Node("reservedNonModifiers"))) } case 235: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:730 + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:739 { - yyVAL.node = Node("FinalMemberModifier") + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node).append(yyDollar[4].node) } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:734 + //line parser.y:740 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 237: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:735 + //line parser.y:743 { - yyVAL.node = Node("PropertyList").append(yyDollar[1].node) + yyVAL.node = Node("TraitMethodRef").append(yyDollar[1].node) } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:738 + //line parser.y:744 { - yyVAL.node = Node("Property").attribute("name", yyDollar[1].token) + yyVAL.node = yyDollar[1].node } case 239: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:739 + //line parser.y:748 + { + yyVAL.node = Node("TraitMethodRef").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 240: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:752 + { + yyVAL.node = Node("") + } + case 241: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:753 + { + yyVAL.node = yyDollar[2].node + } + case 242: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:757 + { + yyVAL.node = yyDollar[1].node + } + case 243: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:758 + { + yyVAL.node = Node("VarMemberModifier") + } + case 244: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:762 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + } + case 245: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:763 + { + yyVAL.node = Node("ConstList").append(yyDollar[1].node) + } + case 246: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:767 + { + yyVAL.node = Node("Const").append(yyDollar[3].node) + } + case 247: + yyDollar = yyS[yypt-0 : yypt+1] + //line parser.y:771 + { + yyVAL.node = Node("PublicMemberModifier") + } + case 248: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:772 + { + yyVAL.node = yyDollar[1].node + } + case 249: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:775 + { + yyVAL.node = yyDollar[1].node + } + case 250: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:776 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) + } + case 251: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:779 + { + yyVAL.node = Node("PublicMemberModifier") + } + case 252: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:780 + { + yyVAL.node = Node("ProtectedMemberModifier") + } + case 253: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:781 + { + yyVAL.node = Node("PrivateMemberModifier") + } + case 254: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:782 + { + yyVAL.node = Node("StaticMemberModifier") + } + case 255: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:783 + { + yyVAL.node = Node("AbstractMemberModifier") + } + case 256: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:784 + { + yyVAL.node = Node("FinalMemberModifier") + } + case 257: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:788 + { + yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) + } + case 258: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:789 + { + yyVAL.node = Node("PropertyList").append(yyDollar[1].node) + } + case 259: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:792 + { + yyVAL.node = Node("Property").attribute("name", yyDollar[1].token) + } + case 260: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:793 { yyVAL.node = Node("Property").attribute("name", yyDollar[1].token).append(Node("Default").append(yyDollar[3].node)) } - case 240: + case 261: yyDollar = yyS[yypt-10 : yypt+1] - //line parser.y:744 + //line parser.y:798 { yyVAL.node = Node("Function"). attribute("name", yyDollar[3].token). @@ -3291,33 +3441,33 @@ yydefault: append(yyDollar[7].node). append(yyDollar[9].node) } - case 241: + case 262: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:755 + //line parser.y:809 { yyVAL.node = yyDollar[1].node } - case 242: + case 263: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:756 + //line parser.y:810 { yyVAL.node = Node("Parameter list") } - case 243: + case 264: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:759 + //line parser.y:813 { yyVAL.node = Node("Parameter list").append(yyDollar[1].node) } - case 244: + case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:760 + //line parser.y:814 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } - case 245: + case 266: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:764 + //line parser.y:818 { yyVAL.node = Node("Parameter"). append(yyDollar[1].node). @@ -3325,9 +3475,9 @@ yydefault: attribute("is_variadic", yyDollar[3].value). attribute("var", yyDollar[4].token) } - case 246: + case 267: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:772 + //line parser.y:826 { yyVAL.node = Node("Parameter"). append(yyDollar[1].node). @@ -3336,886 +3486,886 @@ yydefault: attribute("var", yyDollar[4].token). append(yyDollar[6].node) } - case 247: + case 268: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:783 + //line parser.y:837 { yyVAL.node = Node("No type") } - case 248: + case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:784 + //line parser.y:838 { yyVAL.node = yyDollar[1].node } - case 249: + case 270: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:788 + //line parser.y:842 { yyVAL.value = "false" } - case 250: + case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:789 + //line parser.y:843 { yyVAL.value = "true" } - case 251: + case 272: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:793 + //line parser.y:847 { yyVAL.value = "false" } - case 252: + case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:794 + //line parser.y:848 { yyVAL.value = "true" } - case 253: + case 274: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:798 + //line parser.y:852 { yyVAL.value = "false" } - case 254: + case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:799 + //line parser.y:853 { yyVAL.value = "true" } - case 255: + case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:803 + //line parser.y:857 { yyVAL.node = yyDollar[1].node } - case 256: + case 277: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:804 + //line parser.y:858 { yyVAL.node = yyDollar[2].node yyVAL.node.attribute("nullable", "true") } - case 257: + case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:808 + //line parser.y:862 { yyVAL.node = yyDollar[1].node } - case 258: + case 279: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:809 + //line parser.y:863 { yyVAL.node = Node("array type") } - case 259: + case 280: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:810 + //line parser.y:864 { yyVAL.node = Node("callable type") } - case 260: + case 281: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:814 + //line parser.y:868 { yyVAL.node = Node("void") } - case 261: + case 282: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:815 + //line parser.y:869 { yyVAL.node = yyDollar[2].node } - case 262: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:819 - { - yyVAL.node = Node("Assign").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 263: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:820 - { - yyVAL.node = Node("AssignRef").append(yyDollar[1].node).append(yyDollar[4].node) - } - case 264: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:821 - { - yyVAL.node = Node("Clone").append(yyDollar[2].node) - } - case 265: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:822 - { - yyVAL.node = Node("AssignAdd").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 266: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:823 - { - yyVAL.node = Node("AssignSub").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 267: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:824 - { - yyVAL.node = Node("AssignMul").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 268: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:825 - { - yyVAL.node = Node("AssignPow").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 269: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:826 - { - yyVAL.node = Node("AssignDiv").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 270: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:827 - { - yyVAL.node = Node("AssignConcat").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 271: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:828 - { - yyVAL.node = Node("AssignMod").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 272: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:829 - { - yyVAL.node = Node("AssignAnd").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 273: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:830 - { - yyVAL.node = Node("AssignOr").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 274: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:831 - { - yyVAL.node = Node("AssignXor").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 275: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:832 - { - yyVAL.node = Node("AssignShiftLeft").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 276: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:833 - { - yyVAL.node = Node("AssignShiftRight").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 277: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:834 - { - yyVAL.node = Node("PostIncrement").append(yyDollar[1].node) - } - case 278: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:835 - { - yyVAL.node = Node("PreIncrement").append(yyDollar[2].node) - } - case 279: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:836 - { - yyVAL.node = Node("PostDecrement").append(yyDollar[1].node) - } - case 280: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:837 - { - yyVAL.node = Node("PreDecrement").append(yyDollar[2].node) - } - case 281: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:838 - { - yyVAL.node = Node("Or").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 282: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:839 - { - yyVAL.node = Node("And").append(yyDollar[1].node).append(yyDollar[3].node) - } case 283: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:840 + //line parser.y:873 { - yyVAL.node = Node("Or").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("Assign").append(yyDollar[1].node).append(yyDollar[3].node) } case 284: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:841 + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:874 { - yyVAL.node = Node("And").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignRef").append(yyDollar[1].node).append(yyDollar[4].node) } case 285: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:842 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:875 { - yyVAL.node = Node("Xor").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("Clone").append(yyDollar[2].node) } case 286: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:843 + //line parser.y:876 { - yyVAL.node = Node("BitwiseOr").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignAdd").append(yyDollar[1].node).append(yyDollar[3].node) } case 287: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:844 + //line parser.y:877 { - yyVAL.node = Node("BitwiseAnd").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignSub").append(yyDollar[1].node).append(yyDollar[3].node) } case 288: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:845 + //line parser.y:878 { - yyVAL.node = Node("BitwiseXor").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignMul").append(yyDollar[1].node).append(yyDollar[3].node) } case 289: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:846 + //line parser.y:879 { - yyVAL.node = Node("Concat").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignPow").append(yyDollar[1].node).append(yyDollar[3].node) } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:847 + //line parser.y:880 { - yyVAL.node = Node("Add").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignDiv").append(yyDollar[1].node).append(yyDollar[3].node) } case 291: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:848 + //line parser.y:881 { - yyVAL.node = Node("Sub").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignConcat").append(yyDollar[1].node).append(yyDollar[3].node) } case 292: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:849 + //line parser.y:882 { - yyVAL.node = Node("Mul").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignMod").append(yyDollar[1].node).append(yyDollar[3].node) } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:850 + //line parser.y:883 { - yyVAL.node = Node("Pow").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignAnd").append(yyDollar[1].node).append(yyDollar[3].node) } case 294: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:851 + //line parser.y:884 { - yyVAL.node = Node("Div").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignOr").append(yyDollar[1].node).append(yyDollar[3].node) } case 295: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:852 + //line parser.y:885 { - yyVAL.node = Node("Mod").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignXor").append(yyDollar[1].node).append(yyDollar[3].node) } case 296: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:853 + //line parser.y:886 { - yyVAL.node = Node("ShiftLeft").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignShiftLeft").append(yyDollar[1].node).append(yyDollar[3].node) } case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:854 + //line parser.y:887 { - yyVAL.node = Node("ShiftRight").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("AssignShiftRight").append(yyDollar[1].node).append(yyDollar[3].node) } case 298: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:855 + //line parser.y:888 { - yyVAL.node = Node("UnaryPlus").append(yyDollar[2].node) + yyVAL.node = Node("PostIncrement").append(yyDollar[1].node) } case 299: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:856 + //line parser.y:889 { - yyVAL.node = Node("UnaryMinus").append(yyDollar[2].node) + yyVAL.node = Node("PreIncrement").append(yyDollar[2].node) } case 300: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:857 + //line parser.y:890 { - yyVAL.node = Node("BooleanNot").append(yyDollar[2].node) + yyVAL.node = Node("PostDecrement").append(yyDollar[1].node) } case 301: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:858 + //line parser.y:891 { - yyVAL.node = Node("BitwiseNot").append(yyDollar[2].node) + yyVAL.node = Node("PreDecrement").append(yyDollar[2].node) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:859 + //line parser.y:892 { - yyVAL.node = Node("Identical").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("Or").append(yyDollar[1].node).append(yyDollar[3].node) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:860 + //line parser.y:893 { - yyVAL.node = Node("NotIdentical").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("And").append(yyDollar[1].node).append(yyDollar[3].node) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:861 + //line parser.y:894 { - yyVAL.node = Node("Equal").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("Or").append(yyDollar[1].node).append(yyDollar[3].node) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:862 + //line parser.y:895 { - yyVAL.node = Node("NotEqual").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("And").append(yyDollar[1].node).append(yyDollar[3].node) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:863 + //line parser.y:896 { - yyVAL.node = Node("Spaceship").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("Xor").append(yyDollar[1].node).append(yyDollar[3].node) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:864 + //line parser.y:897 { - yyVAL.node = Node("Smaller").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("BitwiseOr").append(yyDollar[1].node).append(yyDollar[3].node) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:865 + //line parser.y:898 { - yyVAL.node = Node("SmallerOrEqual").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("BitwiseAnd").append(yyDollar[1].node).append(yyDollar[3].node) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:866 + //line parser.y:899 { - yyVAL.node = Node("Greater").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("BitwiseXor").append(yyDollar[1].node).append(yyDollar[3].node) } case 310: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:867 + //line parser.y:900 { - yyVAL.node = Node("GreaterOrEqual").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("Concat").append(yyDollar[1].node).append(yyDollar[3].node) } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:868 + //line parser.y:901 { - yyVAL.node = yyDollar[2].node + yyVAL.node = Node("Add").append(yyDollar[1].node).append(yyDollar[3].node) } case 312: - yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:869 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:902 { - yyVAL.node = Node("Ternary").append(yyDollar[1].node).append(yyDollar[3].node).append(yyDollar[5].node) + yyVAL.node = Node("Sub").append(yyDollar[1].node).append(yyDollar[3].node) } case 313: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:870 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:903 { - yyVAL.node = Node("Ternary").append(yyDollar[1].node).append(yyDollar[4].node) + yyVAL.node = Node("Mul").append(yyDollar[1].node).append(yyDollar[3].node) } case 314: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:871 - { - yyVAL.node = Node("Coalesce").append(yyDollar[1].node).append(yyDollar[3].node) - } - case 315: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:872 - { - yyVAL.node = Node("Empty").append(yyDollar[3].node) - } - case 316: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:873 - { - yyVAL.node = Node("Include").append(yyDollar[2].node) - } - case 317: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:874 - { - yyVAL.node = Node("IncludeOnce").append(yyDollar[2].node) - } - case 318: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:875 - { - yyVAL.node = Node("Eval").append(yyDollar[3].node) - } - case 319: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:876 - { - yyVAL.node = Node("Require").append(yyDollar[2].node) - } - case 320: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:877 - { - yyVAL.node = Node("RequireOnce").append(yyDollar[2].node) - } - case 321: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:878 - { - yyVAL.node = Node("CastInt").append(yyDollar[2].node) - } - case 322: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:879 - { - yyVAL.node = Node("CastDouble").append(yyDollar[2].node) - } - case 323: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:880 - { - yyVAL.node = Node("CastString").append(yyDollar[2].node) - } - case 324: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:881 - { - yyVAL.node = Node("CastArray").append(yyDollar[2].node) - } - case 325: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:882 - { - yyVAL.node = Node("CastObject").append(yyDollar[2].node) - } - case 326: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:883 - { - yyVAL.node = Node("CastBool").append(yyDollar[2].node) - } - case 327: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:884 - { - yyVAL.node = Node("CastUnset").append(yyDollar[2].node) - } - case 328: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:885 - { - yyVAL.node = Node("Silence").append(yyDollar[2].node) - } - case 329: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:886 - { - yyVAL.node = yyDollar[1].node - } - case 330: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:887 - { - yyVAL.node = Node("Print").append(yyDollar[2].node) - } - case 331: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:888 - { - yyVAL.node = Node("Yield") - } - case 332: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:889 - { - yyVAL.node = Node("Yield").append(yyDollar[2].node) - } - case 333: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:890 - { - yyVAL.node = Node("Yield").append(yyDollar[2].node).append(yyDollar[4].node) - } - case 334: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:891 - { - yyVAL.node = Node("YieldFrom").append(yyDollar[2].node) - } - case 335: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:895 - { - yyVAL.node = Node("Scalar").append(Node("Lnumber").attribute("value", yyDollar[1].token)) - } - case 336: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:896 - { - yyVAL.node = Node("Scalar").append(Node("Dnumber").attribute("value", yyDollar[1].token)) - } - case 337: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:897 - { - yyVAL.node = Node("Scalar").append(Node("__LINE__")) - } - case 338: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:898 - { - yyVAL.node = Node("Scalar").append(Node("__FILE__")) - } - case 339: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:899 - { - yyVAL.node = Node("Scalar").append(Node("__DIR__")) - } - case 340: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:900 - { - yyVAL.node = Node("Scalar").append(Node("__TRAIT__")) - } - case 341: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:901 - { - yyVAL.node = Node("Scalar").append(Node("__METHOD__")) - } - case 342: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:902 - { - yyVAL.node = Node("Scalar").append(Node("__FUNCTION__")) - } - case 343: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:903 - { - yyVAL.node = Node("Scalar").append(Node("__NAMESPACE__")) - } - case 344: - yyDollar = yyS[yypt-1 : yypt+1] //line parser.y:904 { - yyVAL.node = Node("Scalar").append(Node("__CLASS__")) + yyVAL.node = Node("Pow").append(yyDollar[1].node).append(yyDollar[3].node) } - case 345: + case 315: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:905 + { + yyVAL.node = Node("Div").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 316: yyDollar = yyS[yypt-3 : yypt+1] //line parser.y:906 { - yyVAL.node = Node("Scalar").append(Node("Heredoc").attribute("value", yyDollar[2].token)) + yyVAL.node = Node("Mod").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 317: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:907 + { + yyVAL.node = Node("ShiftLeft").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 318: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:908 + { + yyVAL.node = Node("ShiftRight").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 319: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:909 + { + yyVAL.node = Node("UnaryPlus").append(yyDollar[2].node) + } + case 320: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:910 + { + yyVAL.node = Node("UnaryMinus").append(yyDollar[2].node) + } + case 321: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:911 + { + yyVAL.node = Node("BooleanNot").append(yyDollar[2].node) + } + case 322: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:912 + { + yyVAL.node = Node("BitwiseNot").append(yyDollar[2].node) + } + case 323: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:913 + { + yyVAL.node = Node("Identical").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 324: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:914 + { + yyVAL.node = Node("NotIdentical").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 325: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:915 + { + yyVAL.node = Node("Equal").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 326: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:916 + { + yyVAL.node = Node("NotEqual").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 327: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:917 + { + yyVAL.node = Node("Spaceship").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 328: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:918 + { + yyVAL.node = Node("Smaller").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 329: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:919 + { + yyVAL.node = Node("SmallerOrEqual").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 330: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:920 + { + yyVAL.node = Node("Greater").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 331: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:921 + { + yyVAL.node = Node("GreaterOrEqual").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 332: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:922 + { + yyVAL.node = yyDollar[2].node + } + case 333: + yyDollar = yyS[yypt-5 : yypt+1] + //line parser.y:923 + { + yyVAL.node = Node("Ternary").append(yyDollar[1].node).append(yyDollar[3].node).append(yyDollar[5].node) + } + case 334: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:924 + { + yyVAL.node = Node("Ternary").append(yyDollar[1].node).append(yyDollar[4].node) + } + case 335: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:925 + { + yyVAL.node = Node("Coalesce").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 336: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:926 + { + yyVAL.node = Node("Empty").append(yyDollar[3].node) + } + case 337: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:927 + { + yyVAL.node = Node("Include").append(yyDollar[2].node) + } + case 338: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:928 + { + yyVAL.node = Node("IncludeOnce").append(yyDollar[2].node) + } + case 339: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:929 + { + yyVAL.node = Node("Eval").append(yyDollar[3].node) + } + case 340: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:930 + { + yyVAL.node = Node("Require").append(yyDollar[2].node) + } + case 341: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:931 + { + yyVAL.node = Node("RequireOnce").append(yyDollar[2].node) + } + case 342: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:932 + { + yyVAL.node = Node("CastInt").append(yyDollar[2].node) + } + case 343: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:933 + { + yyVAL.node = Node("CastDouble").append(yyDollar[2].node) + } + case 344: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:934 + { + yyVAL.node = Node("CastString").append(yyDollar[2].node) + } + case 345: + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:935 + { + yyVAL.node = Node("CastArray").append(yyDollar[2].node) } case 346: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:908 + //line parser.y:936 { - yyVAL.node = Node("Scalar").append(Node("Heredoc")) + yyVAL.node = Node("CastObject").append(yyDollar[2].node) } case 347: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:909 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:937 { - yyVAL.node = yyDollar[2].node + yyVAL.node = Node("CastBool").append(yyDollar[2].node) } case 348: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:910 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:938 { - yyVAL.node = yyDollar[2].node + yyVAL.node = Node("CastUnset").append(yyDollar[2].node) } case 349: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:911 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:939 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("Silence").append(yyDollar[2].node) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:912 + //line parser.y:940 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:916 + //line parser.y:941 { - yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) + yyVAL.node = Node("Print").append(yyDollar[2].node) } case 352: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:917 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:942 { - yyVAL.node = yyDollar[1].node.append(Node("String").attribute("value", yyDollar[2].token)) + yyVAL.node = Node("Yield") } case 353: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:918 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:943 { - yyVAL.node = Node("EncapsList").append(yyDollar[1].node) + yyVAL.node = Node("Yield").append(yyDollar[2].node) } case 354: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:919 + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:944 { - yyVAL.node = Node("EncapsList").append(Node("String").attribute("value", yyDollar[1].token)).append(yyDollar[2].node) + yyVAL.node = Node("Yield").append(yyDollar[2].node).append(yyDollar[4].node) } case 355: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:922 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:945 { - yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token) + yyVAL.node = Node("YieldFrom").append(yyDollar[2].node) } case 356: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:923 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:949 { - yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token).append(Node("offset").append(yyDollar[3].node)) + yyVAL.node = Node("Scalar").append(Node("Lnumber").attribute("value", yyDollar[1].token)) } case 357: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:924 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:950 { - yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token).append(Node("property").attribute("value", yyDollar[3].token)) + yyVAL.node = Node("Scalar").append(Node("Dnumber").attribute("value", yyDollar[1].token)) } case 358: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:925 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:951 { - yyVAL.node = Node("Variable").append(Node("expr").append(yyDollar[2].node)) + yyVAL.node = Node("Scalar").append(Node("__LINE__")) } case 359: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:926 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:952 { - yyVAL.node = Node("Variable").attribute("value", yyDollar[2].token) + yyVAL.node = Node("Scalar").append(Node("__FILE__")) } case 360: - yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:928 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:953 { - yyVAL.node = Node("Variable").attribute("value", yyDollar[2].token).append(Node("offset").append(yyDollar[4].node)) + yyVAL.node = Node("Scalar").append(Node("__DIR__")) } case 361: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:929 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:954 { - yyVAL.node = yyDollar[2].node + yyVAL.node = Node("Scalar").append(Node("__TRAIT__")) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:932 + //line parser.y:955 { - yyVAL.node = Node("OffsetString").attribute("value", yyDollar[1].token) + yyVAL.node = Node("Scalar").append(Node("__METHOD__")) } case 363: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:933 + //line parser.y:956 { - yyVAL.node = Node("OffsetNumString").attribute("value", yyDollar[1].token) + yyVAL.node = Node("Scalar").append(Node("__FUNCTION__")) } case 364: - yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:934 + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:957 { - yyVAL.node = Node("OffsetNegateNumString").attribute("value", yyDollar[2].token) + yyVAL.node = Node("Scalar").append(Node("__NAMESPACE__")) } case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:935 + //line parser.y:958 { - yyVAL.node = Node("OffsetVariable").attribute("value", yyDollar[1].token) + yyVAL.node = Node("Scalar").append(Node("__CLASS__")) } case 366: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:939 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:960 { - yyVAL.node = Node("Const").append(yyDollar[1].node) + yyVAL.node = Node("Scalar").append(Node("Heredoc").attribute("value", yyDollar[2].token)) } case 367: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:940 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:962 { - yyVAL.node = Node("Const").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = Node("Scalar").append(Node("Heredoc")) } case 368: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:942 + //line parser.y:963 { - yyVAL.node = Node("Const").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = yyDollar[2].node } case 369: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:946 + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:964 { - yyVAL.node = Node("Static") + yyVAL.node = yyDollar[2].node } case 370: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:947 + //line parser.y:965 { yyVAL.node = yyDollar[1].node } case 371: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:951 + //line parser.y:966 { yyVAL.node = yyDollar[1].node } case 372: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:955 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:970 { - yyVAL.node = yyDollar[1].node + yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } case 373: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:956 + yyDollar = yyS[yypt-2 : yypt+1] + //line parser.y:971 { - yyVAL.node = yyDollar[2].node + yyVAL.node = yyDollar[1].node.append(Node("String").attribute("value", yyDollar[2].token)) } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:957 - { - yyVAL.node = yyDollar[1].node - } - case 375: - yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:961 - { - yyVAL.node = yyDollar[3].node - } - case 376: - yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:962 - { - yyVAL.node = yyDollar[2].node - } - case 377: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:963 - { - yyVAL.node = Node("String").attribute("value", yyDollar[1].token) - } - case 378: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:967 - { - yyVAL.node = yyDollar[1].node - } - case 379: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:968 - { - yyVAL.node = yyDollar[1].node - } - case 380: - yyDollar = yyS[yypt-0 : yypt+1] //line parser.y:972 { - yyVAL.node = Node("") + yyVAL.node = Node("EncapsList").append(yyDollar[1].node) } - case 381: - yyDollar = yyS[yypt-1 : yypt+1] + case 375: + yyDollar = yyS[yypt-2 : yypt+1] //line parser.y:973 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("EncapsList").append(Node("String").attribute("value", yyDollar[1].token)).append(yyDollar[2].node) } - case 382: + case 376: yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:976 + { + yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token) + } + case 377: + yyDollar = yyS[yypt-4 : yypt+1] //line parser.y:977 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token).append(Node("offset").append(yyDollar[3].node)) } - case 383: - yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:981 + case 378: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:978 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token).append(Node("property").attribute("value", yyDollar[3].token)) } - case 384: - yyDollar = yyS[yypt-1 : yypt+1] + case 379: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:979 + { + yyVAL.node = Node("Variable").append(Node("expr").append(yyDollar[2].node)) + } + case 380: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:980 + { + yyVAL.node = Node("Variable").attribute("value", yyDollar[2].token) + } + case 381: + yyDollar = yyS[yypt-6 : yypt+1] //line parser.y:982 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("Variable").attribute("value", yyDollar[2].token).append(Node("offset").append(yyDollar[4].node)) } - case 385: + case 382: yyDollar = yyS[yypt-3 : yypt+1] //line parser.y:983 { - yyVAL.node = Node("Property").append(yyDollar[1].node).append(yyDollar[3].node) + yyVAL.node = yyDollar[2].node } - case 386: + case 383: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:986 + { + yyVAL.node = Node("OffsetString").attribute("value", yyDollar[1].token) + } + case 384: yyDollar = yyS[yypt-1 : yypt+1] //line parser.y:987 { - yyVAL.node = Node("PropertyName").attribute("value", yyDollar[1].token) + yyVAL.node = Node("OffsetNumString").attribute("value", yyDollar[1].token) } - case 387: - yyDollar = yyS[yypt-3 : yypt+1] + case 385: + yyDollar = yyS[yypt-2 : yypt+1] //line parser.y:988 { - yyVAL.node = yyDollar[2].node + yyVAL.node = Node("OffsetNegateNumString").attribute("value", yyDollar[2].token) } - case 388: + case 386: yyDollar = yyS[yypt-1 : yypt+1] //line parser.y:989 { - yyVAL.node = yyDollar[1].node + yyVAL.node = Node("OffsetVariable").attribute("value", yyDollar[1].token) } - case 389: + case 387: yyDollar = yyS[yypt-1 : yypt+1] //line parser.y:993 { - yyVAL.node = Node("Variable").attribute("name", yyDollar[1].token) + yyVAL.node = Node("Const").append(yyDollar[1].node) + } + case 388: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:994 + { + yyVAL.node = Node("Const").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 389: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:996 + { + yyVAL.node = Node("Const").append(yyDollar[1].node).append(yyDollar[3].node) } case 390: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1000 + { + yyVAL.node = Node("Static") + } + case 391: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1001 + { + yyVAL.node = yyDollar[1].node + } + case 392: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1005 + { + yyVAL.node = yyDollar[1].node + } + case 393: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1009 + { + yyVAL.node = yyDollar[1].node + } + case 394: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:1010 + { + yyVAL.node = yyDollar[2].node + } + case 395: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1011 + { + yyVAL.node = yyDollar[1].node + } + case 396: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:994 + //line parser.y:1015 + { + yyVAL.node = yyDollar[3].node + } + case 397: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:1016 + { + yyVAL.node = yyDollar[2].node + } + case 398: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1017 + { + yyVAL.node = Node("String").attribute("value", yyDollar[1].token) + } + case 399: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1021 + { + yyVAL.node = yyDollar[1].node + } + case 400: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1022 + { + yyVAL.node = yyDollar[1].node + } + case 401: + yyDollar = yyS[yypt-0 : yypt+1] + //line parser.y:1026 + { + yyVAL.node = Node("") + } + case 402: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1027 + { + yyVAL.node = yyDollar[1].node + } + case 403: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1031 + { + yyVAL.node = yyDollar[1].node + } + case 404: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1035 + { + yyVAL.node = yyDollar[1].node + } + case 405: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1036 + { + yyVAL.node = yyDollar[1].node + } + case 406: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:1037 + { + yyVAL.node = Node("Property").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 407: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1041 + { + yyVAL.node = Node("PropertyName").attribute("value", yyDollar[1].token) + } + case 408: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:1042 + { + yyVAL.node = yyDollar[2].node + } + case 409: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1043 + { + yyVAL.node = yyDollar[1].node + } + case 410: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:1047 + { + yyVAL.node = Node("Variable").attribute("name", yyDollar[1].token) + } + case 411: + yyDollar = yyS[yypt-4 : yypt+1] + //line parser.y:1048 { yyVAL.node = Node("Variable").append(yyDollar[3].node) } - case 391: + case 412: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:995 + //line parser.y:1049 { yyVAL.node = Node("Variable").append(yyDollar[2].node) } - case 392: + case 413: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:1000 + //line parser.y:1054 { yyVAL.node = Node("StaticProp").append(yyDollar[1].node).append(yyDollar[3].node) } - case 393: + case 414: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:1002 + //line parser.y:1056 { yyVAL.node = Node("StaticProp").append(yyDollar[1].node).append(yyDollar[3].node) } diff --git a/parser.y b/parser.y index 4871cf2..9813377 100644 --- a/parser.y +++ b/parser.y @@ -199,7 +199,6 @@ func (n node) attribute(key string, value string) node { %type identifier %type top_statement %type namespace_name -%type namespace_name_parts %type name %type top_statement_list %type statement @@ -281,6 +280,15 @@ func (n node) attribute(key string, value string) node { %type dereferencable_scalar %type static_member %type property_name +%type use_type +%type group_use_declaration +%type mixed_group_use_declaration +%type inline_use_declarations +%type unprefixed_use_declarations +%type use_declarations +%type inline_use_declaration +%type unprefixed_use_declaration +%type use_declaration %% @@ -310,13 +318,9 @@ identifier: | semi_reserved { $$ = Node("identifier").attribute("value", $1) } ; -namespace_name_parts: - T_STRING { $$ = Node("NamespaceParts").append(Node($1)) } - | namespace_name_parts T_NS_SEPARATOR T_STRING { $$ = $1.append(Node($3)) } -; - namespace_name: - namespace_name_parts { $$ = $1; } + T_STRING { $$ = Node("NamespaceParts").append(Node($1)); } + | namespace_name T_NS_SEPARATOR T_STRING { $$ = $1.append(Node($3)); } ; name: @@ -341,6 +345,56 @@ top_statement: | T_NAMESPACE namespace_name '{' top_statement_list '}' { $$ = Node("Namespace").append($2).append($4) } | T_NAMESPACE '{' top_statement_list '}' { $$ = Node("Namespace").append($3) } + | T_USE mixed_group_use_declaration ';' { $$ = $2; } + | T_USE use_type group_use_declaration ';' { $$ = $3.append($2) } + | T_USE use_declarations ';' { $$ = $2; } + | T_USE use_type use_declarations ';' { $$ = $3.append($2) } +; + +use_type: + T_FUNCTION { $$ = Node("FuncUseType"); } + | T_CONST { $$ = Node("ConstUseType"); } +; + +group_use_declaration: + namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' + { $$ = Node("GroupUse").append($1).append($4) } + | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' + { $$ = Node("GroupUse").append($2).append($5) } +; + +mixed_group_use_declaration: + namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' + { $$ = Node("MixedGroupUse").append($1).append($4); } + | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' + { $$ = Node("MixedGroupUse").append($2).append($5); } +; + +inline_use_declarations: + inline_use_declarations ',' inline_use_declaration + { $$ = $1.append($3) } + | inline_use_declaration { $$ = Node("UseList").append($1) } +; +unprefixed_use_declarations: + unprefixed_use_declarations ',' unprefixed_use_declaration + { $$ = $1.append($3) } + | unprefixed_use_declaration { $$ = Node("UseList").append($1) } +; +use_declarations: + use_declarations ',' use_declaration { $$ = $1.append($3) } + | use_declaration { $$ = Node("UseList").append($1) } +; +inline_use_declaration: + unprefixed_use_declaration { $$ = $1; } + | use_type unprefixed_use_declaration { $$ = $2.append($1) } +; +unprefixed_use_declaration: + namespace_name { $$ = Node("UseElem").append($1); } + | namespace_name T_AS T_STRING { $$ = Node("UseElem").append($1).append(Node("as").attribute("value", $3)); } +; +use_declaration: + unprefixed_use_declaration { $$ = $1; } + | T_NS_SEPARATOR unprefixed_use_declaration { $$ = $2; } ; inner_statement_list: @@ -1007,14 +1061,8 @@ static_member: %% const src = ` [ - 'a' => 'b', - ] - ]; -} - +use A, B as C; +use \D\{function E, F}; ` func main() {