From fe17700c90bf2b40f571793a41497fa876ebf46c Mon Sep 17 00:00:00 2001 From: vadim Date: Thu, 30 Nov 2017 18:15:49 +0200 Subject: [PATCH] parse variables --- parser.go | 2326 ++++++++++++++++++++++++++++------------------------- parser.y | 23 +- 2 files changed, 1234 insertions(+), 1115 deletions(-) diff --git a/parser.go b/parser.go index fcfcdb2..e06a7b5 100644 --- a/parser.go +++ b/parser.go @@ -367,12 +367,10 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line parser.y:984 +//line parser.y:1001 const src = `{$test->test}; ` @@ -389,705 +387,761 @@ var yyExca = [...]int{ 1, -1, -2, 0, -1, 36, + 133, 369, 153, 369, -2, 375, - -1, 82, + -1, 74, + 133, 371, 153, 371, -2, 346, - -1, 89, + -1, 90, 153, 367, -2, 363, - -1, 269, + -1, 184, + 133, 369, + 153, 369, + -2, 275, + -1, 190, + 133, 369, + 153, 369, + -2, 277, + -1, 276, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, -2, 299, - -1, 270, + -1, 277, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, -2, 300, - -1, 271, + -1, 278, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, -2, 301, - -1, 272, + -1, 279, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, -2, 302, - -1, 273, + -1, 280, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, -2, 303, - -1, 274, + -1, 281, 43, 0, 44, 0, 45, 0, 46, 0, -2, 304, - -1, 275, + -1, 282, 43, 0, 44, 0, 45, 0, 46, 0, -2, 305, - -1, 276, + -1, 283, 43, 0, 44, 0, 45, 0, 46, 0, -2, 306, - -1, 277, + -1, 284, 43, 0, 44, 0, 45, 0, 46, 0, -2, 307, - -1, 314, + -1, 290, + 133, 369, + 153, 369, + -2, 184, + -1, 328, + 133, 370, 153, 370, -2, 308, - -1, 433, + -1, 428, + 133, 369, + 153, 369, + -2, 167, + -1, 449, 163, 239, -2, 244, - -1, 500, + -1, 492, + 133, 369, + 153, 369, + -2, 155, + -1, 518, 88, 218, -2, 224, - -1, 630, + -1, 536, + 133, 369, + 153, 369, + -2, 166, + -1, 549, + 133, 369, + 153, 369, + -2, 156, + -1, 590, + 133, 373, + 153, 373, + -2, 158, + -1, 649, 105, 76, -2, 78, - -1, 646, + -1, 665, 163, 239, -2, 244, } const yyPrivate = 57344 -const yyLast = 5712 +const yyLast = 5925 var yyAct = [...]int{ - 22, 99, 585, 575, 484, 89, 502, 339, 622, 548, - 566, 584, 597, 544, 488, 155, 106, 106, 106, 486, - 233, 118, 473, 4, 218, 238, 489, 435, 523, 152, - 36, 220, 286, 101, 117, 114, 282, 571, 111, 84, - 514, 529, 181, 430, 209, 184, 185, 186, 187, 188, - 331, 190, 191, 669, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 657, 203, 204, 205, 69, 605, - 604, 595, 593, 182, 183, 537, 519, 471, 455, 84, - 646, 588, 573, 531, 518, 433, 416, 112, 222, 335, - 296, 294, 217, 452, 192, 189, 561, 562, 180, 150, - 490, 236, 149, 148, 240, 241, 561, 562, 104, 103, - 100, 506, 507, 508, 505, 504, 503, 85, 676, 677, - 668, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 280, 600, - 284, 215, 475, 288, 216, 499, 98, 85, 501, 560, - 506, 507, 508, 505, 504, 503, 299, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 283, - 592, 313, 295, 210, 477, 451, 453, 469, 322, 528, - 315, 616, 610, 316, 598, 671, 542, 429, 581, 574, - 434, 293, 251, 84, 499, 492, 493, 501, 248, 246, - 151, 98, 325, 656, 650, 649, 329, 636, 222, 98, - 606, 601, 594, 558, 102, 553, 527, 93, 336, 413, - 526, 589, 590, 524, 522, 417, 297, 290, 244, 243, - 242, 230, 330, 327, 579, 495, 211, 212, 98, 476, - 422, 319, 118, 321, 334, 96, 228, 210, 321, 319, - 328, 210, 214, 653, 226, 210, 322, 210, 492, 493, - 206, 225, 651, 652, 447, 210, 323, 535, 536, 102, - 425, 85, 93, 237, 421, 420, 423, 102, 547, 546, - 93, 67, 68, 640, 515, 436, 545, 437, 612, 115, - 438, 439, 602, 561, 562, 564, 561, 562, 287, 92, - 445, 449, 448, 446, 414, 112, 468, 97, 443, 96, - 211, 212, 599, 320, 211, 212, 292, 207, 211, 212, - 211, 212, 291, 222, 457, 98, 222, 318, 211, 212, - 324, 615, 157, 122, 124, 123, 639, 159, 580, 153, - 132, 208, 250, 162, 164, 163, 160, 161, 247, 245, - 460, 156, 540, 146, 456, 147, 120, 121, 125, 127, - 126, 139, 140, 137, 138, 141, 142, 143, 144, 145, - 135, 136, 129, 130, 128, 131, 133, 134, 506, 507, - 508, 505, 504, 503, 38, 576, 552, 298, 154, 643, - 617, 132, 582, 227, 431, 249, 229, 135, 136, 129, - 130, 128, 131, 133, 134, 588, 538, 464, 240, 466, - 427, 131, 133, 134, 105, 470, 418, 158, 132, 332, - 426, 234, 482, 213, 5, 235, 462, 132, 6, 491, - 1, 108, 109, 465, 82, 94, 91, 90, 83, 444, - 479, 63, 675, 516, 625, 626, 624, 623, 283, 474, - 621, 512, 494, 481, 472, 520, 142, 143, 144, 145, - 135, 136, 129, 130, 128, 131, 133, 134, 222, 587, - 498, 583, 533, 543, 500, 497, 496, 534, 607, 517, - 483, 132, 478, 285, 221, 219, 491, 555, 525, 281, - 116, 113, 532, 110, 467, 549, 530, 550, 129, 130, - 128, 131, 133, 134, 631, 554, 239, 541, 461, 222, - 10, 35, 9, 240, 34, 40, 37, 132, 485, 487, - 551, 32, 222, 231, 2, 95, 3, 338, 578, 539, - 0, 0, 0, 556, 491, 0, 0, 0, 559, 567, - 0, 0, 569, 563, 591, 565, 570, 0, 577, 0, - 474, 0, 596, 586, 0, 0, 0, 0, 0, 0, - 603, 0, 0, 0, 0, 0, 609, 0, 0, 608, - 0, 0, 491, 614, 0, 0, 0, 0, 0, 618, - 0, 611, 0, 628, 619, 613, 627, 0, 0, 635, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 634, - 0, 0, 642, 0, 0, 638, 632, 0, 645, 0, - 0, 0, 0, 0, 628, 567, 0, 627, 644, 0, - 648, 0, 0, 0, 0, 654, 655, 0, 0, 0, - 0, 0, 0, 0, 660, 0, 658, 0, 0, 0, - 0, 661, 491, 0, 0, 0, 666, 549, 0, 665, - 664, 662, 0, 0, 0, 122, 124, 123, 670, 0, - 672, 0, 0, 673, 346, 347, 348, 349, 350, 678, - 351, 352, 353, 389, 390, 146, 0, 147, 120, 121, - 125, 127, 126, 139, 140, 137, 138, 141, 142, 143, - 144, 145, 135, 136, 129, 130, 128, 131, 133, 134, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 132, 0, 0, 354, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 355, 356, 0, 359, 360, 361, 340, 341, 342, 343, - 344, 345, 357, 358, 0, 0, 630, 0, 0, 0, - 0, 0, 0, 0, 0, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 392, 393, 394, 395, - 396, 384, 385, 386, 387, 388, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 0, 404, 402, - 403, 399, 400, 0, 391, 397, 398, 405, 406, 408, - 407, 409, 410, 346, 347, 348, 349, 350, 521, 351, - 352, 353, 389, 390, 629, 412, 411, 93, 0, 0, - 146, 647, 147, 120, 121, 125, 127, 126, 139, 140, - 137, 138, 141, 142, 143, 144, 145, 135, 136, 129, - 130, 128, 131, 133, 134, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 354, 0, 0, 132, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, - 356, 0, 359, 360, 361, 340, 341, 342, 343, 344, - 345, 357, 358, 0, 0, 630, 0, 0, 0, 0, - 0, 0, 0, 0, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 392, 393, 394, 395, 396, - 384, 385, 386, 387, 388, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 0, 404, 402, 403, - 399, 400, 0, 391, 397, 398, 405, 406, 408, 407, - 409, 410, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 629, 412, 411, 93, 123, 0, 0, - 620, 50, 51, 52, 53, 54, 0, 0, 0, 0, - 64, 65, 0, 66, 0, 146, 0, 147, 120, 121, - 125, 127, 126, 139, 140, 137, 138, 141, 142, 143, - 144, 145, 135, 136, 129, 130, 128, 131, 133, 134, - 0, 0, 0, 0, 0, 0, 44, 45, 0, 0, - 0, 0, 46, 132, 47, 42, 43, 55, 56, 57, - 58, 59, 60, 61, 62, 0, 87, 0, 41, 0, - 0, 0, 0, 19, 67, 68, 0, 0, 0, 0, - 39, 70, 71, 30, 0, 84, 0, 21, 0, 0, - 0, 88, 20, 12, 11, 0, 13, 0, 24, 0, - 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, - 31, 0, 17, 27, 0, 0, 28, 0, 0, 18, - 0, 23, 0, 49, 0, 33, 0, 0, 0, 0, - 0, 0, 86, 0, 79, 75, 76, 77, 72, 73, - 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, - 0, 102, 78, 74, 93, 0, 26, 8, 679, 48, - 317, 0, 81, 85, 50, 51, 52, 53, 54, 0, - 0, 0, 0, 64, 65, 146, 66, 147, 120, 121, - 125, 127, 126, 139, 140, 137, 138, 141, 142, 143, - 144, 145, 135, 136, 129, 130, 128, 131, 133, 134, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, - 45, 0, 0, 132, 0, 46, 0, 47, 42, 43, - 55, 56, 57, 58, 59, 60, 61, 62, 0, 87, - 0, 41, 0, 0, 0, 0, 19, 67, 68, 0, - 0, 0, 0, 39, 70, 71, 30, 0, 84, 0, - 21, 0, 0, 0, 88, 20, 12, 11, 0, 13, + 22, 100, 604, 594, 520, 336, 502, 567, 641, 603, + 585, 616, 563, 506, 491, 156, 107, 107, 107, 504, + 245, 119, 507, 289, 240, 451, 293, 4, 229, 153, + 90, 118, 542, 227, 74, 115, 88, 102, 590, 112, + 533, 425, 73, 548, 183, 446, 688, 191, 192, 193, + 194, 195, 676, 197, 198, 218, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 71, 210, 211, 212, + 72, 624, 36, 623, 614, 189, 189, 612, 556, 188, + 188, 538, 489, 473, 665, 113, 592, 186, 186, 607, + 550, 537, 449, 231, 432, 429, 303, 580, 581, 301, + 580, 581, 243, 470, 226, 247, 248, 199, 524, 525, + 526, 523, 522, 521, 89, 185, 185, 184, 190, 196, + 181, 151, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 287, + 619, 291, 517, 579, 295, 519, 225, 493, 524, 525, + 526, 523, 522, 521, 88, 150, 149, 306, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 189, 219, 320, 105, 188, 104, 416, 302, 327, 495, + 508, 547, 186, 561, 611, 469, 108, 329, 99, 445, + 330, 101, 517, 695, 696, 519, 99, 471, 88, 322, + 687, 88, 635, 629, 93, 593, 332, 410, 600, 450, + 185, 419, 290, 300, 152, 423, 690, 231, 487, 258, + 617, 255, 675, 253, 669, 598, 224, 668, 99, 608, + 609, 97, 89, 513, 220, 221, 99, 510, 511, 324, + 655, 625, 189, 620, 494, 91, 188, 438, 422, 119, + 424, 613, 577, 189, 186, 572, 103, 188, 546, 95, + 545, 413, 543, 415, 103, 186, 541, 95, 415, 413, + 333, 411, 187, 323, 433, 304, 89, 441, 297, 89, + 439, 437, 185, 436, 421, 510, 511, 251, 250, 249, + 237, 235, 452, 185, 453, 428, 103, 454, 455, 95, + 672, 123, 125, 124, 103, 99, 326, 95, 325, 214, + 113, 213, 182, 670, 457, 219, 671, 417, 554, 555, + 416, 147, 461, 148, 121, 122, 126, 128, 127, 140, + 141, 138, 139, 142, 143, 144, 145, 146, 136, 137, + 130, 131, 129, 132, 134, 135, 219, 486, 618, 219, + 244, 223, 634, 94, 215, 92, 566, 565, 599, 133, + 534, 98, 108, 219, 123, 125, 124, 564, 631, 257, + 219, 254, 99, 252, 88, 116, 97, 414, 220, 221, + 93, 418, 333, 411, 147, 294, 148, 121, 122, 126, + 128, 127, 140, 141, 138, 139, 142, 143, 144, 145, + 146, 136, 137, 130, 131, 129, 132, 134, 135, 220, + 221, 216, 220, 221, 621, 580, 581, 231, 475, 659, + 231, 91, 133, 482, 247, 484, 220, 221, 69, 70, + 467, 488, 412, 220, 221, 583, 580, 581, 500, 430, + 103, 299, 465, 95, 483, 474, 480, 217, 187, 234, + 298, 236, 89, 478, 99, 574, 160, 490, 154, 133, + 497, 535, 157, 499, 189, 189, 512, 559, 188, 188, + 509, 530, 658, 539, 161, 162, 186, 186, 463, 158, + 466, 464, 163, 165, 164, 595, 231, 132, 134, 135, + 552, 524, 525, 526, 523, 522, 521, 189, 38, 571, + 305, 188, 155, 133, 185, 185, 290, 492, 662, 186, + 544, 636, 601, 569, 189, 447, 256, 540, 188, 551, + 607, 560, 557, 573, 443, 434, 186, 426, 231, 509, + 241, 159, 247, 5, 222, 442, 1, 185, 568, 536, + 106, 231, 570, 136, 137, 130, 131, 129, 132, 134, + 135, 321, 578, 588, 185, 41, 549, 109, 110, 42, + 87, 575, 586, 610, 133, 462, 582, 596, 584, 189, + 65, 615, 605, 188, 589, 694, 644, 242, 509, 622, + 6, 186, 645, 643, 642, 628, 130, 131, 129, 132, + 134, 135, 633, 640, 606, 516, 602, 562, 637, 630, + 518, 515, 647, 632, 514, 133, 553, 626, 654, 185, + 501, 492, 496, 627, 292, 230, 509, 653, 228, 288, + 117, 661, 114, 111, 657, 485, 650, 664, 638, 651, + 646, 246, 479, 647, 10, 663, 35, 9, 586, 667, + 34, 40, 37, 503, 673, 674, 505, 32, 343, 344, + 345, 346, 347, 679, 348, 349, 350, 386, 387, 238, + 2, 646, 680, 96, 3, 685, 684, 683, 681, 335, + 597, 558, 0, 0, 0, 0, 0, 689, 0, 691, + 677, 0, 692, 0, 0, 0, 509, 0, 697, 0, + 0, 568, 0, 0, 0, 0, 0, 0, 0, 0, + 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 352, 353, 0, 356, 357, 358, + 337, 338, 339, 340, 341, 342, 354, 355, 0, 0, + 334, 0, 88, 0, 0, 0, 0, 0, 0, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 389, 390, 391, 392, 393, 381, 382, 383, 384, 385, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 0, 401, 399, 400, 396, 397, 0, 388, 394, + 395, 402, 403, 405, 404, 406, 407, 343, 344, 345, + 346, 347, 0, 348, 349, 350, 386, 387, 398, 409, + 408, 0, 0, 0, 0, 0, 0, 0, 0, 147, + 89, 148, 121, 122, 126, 128, 127, 140, 141, 138, + 139, 142, 143, 144, 145, 146, 136, 137, 130, 131, + 129, 132, 134, 135, 0, 0, 0, 0, 0, 351, + 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, + 0, 0, 0, 352, 353, 0, 356, 357, 358, 337, + 338, 339, 340, 341, 342, 354, 355, 0, 0, 649, + 0, 0, 0, 0, 0, 0, 0, 0, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 389, + 390, 391, 392, 393, 381, 382, 383, 384, 385, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 0, 401, 399, 400, 396, 397, 0, 388, 394, 395, + 402, 403, 405, 404, 406, 407, 343, 344, 345, 346, + 347, 124, 348, 349, 350, 386, 387, 648, 409, 408, + 95, 0, 0, 0, 666, 0, 0, 0, 0, 147, + 0, 148, 121, 122, 126, 128, 127, 140, 141, 138, + 139, 142, 143, 144, 145, 146, 136, 137, 130, 131, + 129, 132, 134, 135, 0, 0, 0, 0, 351, 0, + 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, + 0, 0, 352, 353, 0, 356, 357, 358, 337, 338, + 339, 340, 341, 342, 354, 355, 0, 0, 649, 0, + 0, 0, 0, 0, 0, 0, 0, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 389, 390, + 391, 392, 393, 381, 382, 383, 384, 385, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 0, + 401, 399, 400, 396, 397, 0, 388, 394, 395, 402, + 403, 405, 404, 406, 407, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 648, 409, 408, 95, + 331, 0, 0, 639, 52, 53, 54, 55, 56, 0, + 0, 0, 0, 66, 67, 147, 68, 148, 121, 122, + 126, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 47, 0, 0, 133, 0, 48, 0, 49, 44, 45, + 57, 58, 59, 60, 61, 62, 63, 64, 0, 92, + 0, 43, 0, 0, 0, 0, 19, 69, 70, 0, + 0, 0, 0, 39, 75, 76, 30, 0, 88, 0, + 21, 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, - 0, 0, 18, 0, 23, 0, 49, 0, 33, 0, - 0, 0, 0, 0, 0, 86, 0, 79, 75, 76, - 77, 72, 73, 0, 0, 0, 0, 0, 0, 80, - 0, 0, 0, 0, 102, 78, 74, 93, 0, 26, - 8, 674, 48, 0, 0, 81, 85, 50, 51, 52, - 53, 54, 0, 0, 0, 0, 64, 65, 0, 66, - 147, 120, 121, 125, 127, 126, 139, 140, 137, 138, - 141, 142, 143, 144, 145, 135, 136, 129, 130, 128, - 131, 133, 134, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 0, 0, 132, 0, 46, 0, - 47, 42, 43, 55, 56, 57, 58, 59, 60, 61, - 62, 0, 87, 0, 41, 0, 0, 0, 0, 19, - 67, 68, 0, 0, 0, 0, 39, 70, 71, 30, - 0, 84, 0, 21, 0, 0, 0, 88, 20, 12, - 11, 0, 13, 667, 24, 0, 25, 0, 0, 14, + 0, 0, 18, 0, 23, 0, 51, 0, 33, 0, + 0, 0, 0, 0, 0, 91, 0, 84, 80, 81, + 82, 77, 78, 0, 0, 0, 0, 0, 0, 85, + 0, 0, 0, 0, 103, 83, 79, 95, 0, 26, + 8, 698, 50, 0, 0, 86, 89, 52, 53, 54, + 55, 56, 0, 0, 0, 0, 66, 67, 0, 68, + 148, 121, 122, 126, 128, 127, 140, 141, 138, 139, + 142, 143, 144, 145, 146, 136, 137, 130, 131, 129, + 132, 134, 135, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 47, 0, 0, 133, 0, 48, 0, + 49, 44, 45, 57, 58, 59, 60, 61, 62, 63, + 64, 0, 92, 0, 43, 0, 0, 0, 0, 19, + 69, 70, 0, 0, 0, 0, 39, 75, 76, 30, + 0, 88, 0, 21, 0, 0, 0, 93, 20, 12, + 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, - 0, 0, 28, 0, 0, 18, 0, 23, 0, 49, - 0, 33, 0, 0, 0, 0, 0, 0, 86, 0, - 79, 75, 76, 77, 72, 73, 0, 0, 0, 0, - 0, 0, 80, 0, 0, 0, 0, 102, 78, 74, - 93, 0, 26, 8, 0, 48, 0, 0, 81, 85, - 50, 51, 52, 53, 54, 0, 0, 0, 0, 64, - 65, 0, 66, 121, 125, 127, 126, 139, 140, 137, - 138, 141, 142, 143, 144, 145, 135, 136, 129, 130, - 128, 131, 133, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 132, 0, 0, - 0, 46, 0, 47, 42, 43, 55, 56, 57, 58, - 59, 60, 61, 62, 0, 87, 0, 41, 0, 0, - 0, 0, 19, 67, 68, 0, 0, 0, 0, 39, - 70, 71, 30, 0, 84, 0, 21, 0, 0, 0, - 88, 20, 12, 11, 0, 13, 0, 24, 0, 25, + 0, 0, 28, 0, 0, 18, 0, 23, 0, 51, + 0, 33, 0, 0, 0, 0, 0, 0, 91, 0, + 84, 80, 81, 82, 77, 78, 0, 0, 0, 0, + 0, 0, 85, 0, 0, 0, 0, 103, 83, 79, + 95, 0, 26, 8, 693, 50, 0, 0, 86, 89, + 52, 53, 54, 55, 56, 0, 0, 0, 0, 66, + 67, 0, 68, 122, 126, 128, 127, 140, 141, 138, + 139, 142, 143, 144, 145, 146, 136, 137, 130, 131, + 129, 132, 134, 135, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 47, 133, 0, 0, + 0, 48, 0, 49, 44, 45, 57, 58, 59, 60, + 61, 62, 63, 64, 0, 92, 0, 43, 0, 0, + 0, 0, 19, 69, 70, 0, 0, 0, 0, 39, + 75, 76, 30, 0, 88, 0, 21, 0, 0, 0, + 93, 20, 12, 11, 0, 13, 686, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, 0, 0, 18, 0, - 23, 0, 49, 0, 33, 0, 0, 0, 0, 0, - 0, 86, 0, 79, 75, 76, 77, 72, 73, 0, - 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, - 102, 78, 74, 93, 0, 26, 8, 659, 48, 0, - 0, 81, 85, 50, 51, 52, 53, 54, 0, 0, - 0, 0, 64, 65, 0, 66, 0, 125, 127, 126, - 139, 140, 137, 138, 141, 142, 143, 144, 145, 135, - 136, 129, 130, 128, 131, 133, 134, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 132, 0, 0, 0, 46, 0, 47, 42, 43, 55, - 56, 57, 58, 59, 60, 61, 62, 0, 87, 0, - 41, 0, 0, 0, 0, 19, 67, 68, 0, 0, - 0, 0, 39, 70, 71, 30, 0, 84, 0, 21, - 0, 0, 0, 88, 20, 12, 11, 0, 13, 0, + 23, 0, 51, 0, 33, 0, 0, 0, 0, 0, + 0, 91, 0, 84, 80, 81, 82, 77, 78, 0, + 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, + 103, 83, 79, 95, 0, 26, 8, 0, 50, 0, + 0, 86, 89, 52, 53, 54, 55, 56, 0, 0, + 0, 0, 66, 67, 0, 68, 0, 126, 128, 127, + 140, 141, 138, 139, 142, 143, 144, 145, 146, 136, + 137, 130, 131, 129, 132, 134, 135, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, + 133, 0, 0, 0, 48, 0, 49, 44, 45, 57, + 58, 59, 60, 61, 62, 63, 64, 0, 92, 0, + 43, 0, 0, 0, 0, 19, 69, 70, 0, 0, + 0, 0, 39, 75, 76, 30, 0, 88, 0, 21, + 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, 0, - 0, 18, 0, 23, 0, 49, 0, 33, 0, 0, - 0, 0, 0, 0, 86, 0, 79, 75, 76, 77, - 72, 73, 0, 0, 0, 0, 0, 0, 80, 0, - 0, 0, 0, 102, 78, 74, 93, 0, 26, 8, - 641, 48, 0, 0, 81, 85, 50, 51, 52, 53, - 54, 0, 0, 0, 0, 64, 65, 0, 66, 0, - 0, 127, 126, 139, 140, 137, 138, 141, 142, 143, - 144, 145, 135, 136, 129, 130, 128, 131, 133, 134, + 0, 18, 0, 23, 0, 51, 0, 33, 0, 0, + 0, 0, 0, 0, 91, 0, 84, 80, 81, 82, + 77, 78, 0, 0, 0, 0, 0, 0, 85, 0, + 0, 0, 0, 103, 83, 79, 95, 0, 26, 8, + 678, 50, 0, 0, 86, 89, 52, 53, 54, 55, + 56, 0, 0, 0, 0, 66, 67, 0, 68, 0, + 0, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 45, 132, 0, 0, 0, 46, 0, 47, - 42, 43, 55, 56, 57, 58, 59, 60, 61, 62, - 0, 87, 0, 41, 0, 0, 0, 0, 19, 67, - 68, 0, 0, 0, 0, 39, 70, 71, 30, 0, - 84, 0, 21, 0, 0, 0, 88, 20, 12, 11, - 0, 13, 0, 24, 637, 25, 0, 0, 14, 0, + 0, 46, 47, 133, 0, 0, 0, 48, 0, 49, + 44, 45, 57, 58, 59, 60, 61, 62, 63, 64, + 0, 92, 0, 43, 0, 0, 0, 0, 19, 69, + 70, 0, 0, 0, 0, 39, 75, 76, 30, 0, + 88, 0, 21, 0, 0, 0, 93, 20, 12, 11, + 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, - 0, 28, 0, 0, 18, 0, 23, 0, 49, 0, - 33, 0, 0, 0, 0, 0, 0, 86, 0, 79, - 75, 76, 77, 72, 73, 0, 0, 0, 0, 0, - 0, 80, 0, 0, 0, 0, 102, 78, 74, 93, - 0, 26, 8, 0, 48, 0, 0, 81, 85, 50, - 51, 52, 53, 54, 0, 0, 0, 0, 64, 65, - 0, 66, 126, 139, 140, 137, 138, 141, 142, 143, - 144, 145, 135, 136, 129, 130, 128, 131, 133, 134, + 0, 28, 0, 0, 18, 0, 23, 0, 51, 0, + 33, 0, 0, 0, 0, 0, 0, 91, 0, 84, + 80, 81, 82, 77, 78, 0, 0, 0, 0, 0, + 0, 85, 0, 0, 0, 0, 103, 83, 79, 95, + 0, 26, 8, 660, 50, 0, 0, 86, 89, 52, + 53, 54, 55, 56, 0, 0, 0, 0, 66, 67, + 0, 68, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 132, 44, 45, 0, 0, 0, 0, - 46, 0, 47, 42, 43, 55, 56, 57, 58, 59, - 60, 61, 62, 0, 87, 0, 41, 0, 0, 0, - 0, 19, 67, 68, 0, 0, 0, 0, 39, 70, - 71, 30, 0, 84, 0, 21, 0, 0, 0, 88, - 20, 12, 11, 0, 13, 0, 24, 0, 25, 572, + 0, 0, 0, 133, 46, 47, 0, 0, 0, 0, + 48, 0, 49, 44, 45, 57, 58, 59, 60, 61, + 62, 63, 64, 0, 92, 0, 43, 0, 0, 0, + 0, 19, 69, 70, 0, 0, 0, 0, 39, 75, + 76, 30, 0, 88, 0, 21, 0, 0, 0, 93, + 20, 12, 11, 0, 13, 0, 24, 656, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, 0, 0, 18, 0, 23, - 0, 49, 0, 33, 0, 0, 0, 0, 0, 0, - 86, 0, 79, 75, 76, 77, 72, 73, 0, 0, - 0, 0, 0, 0, 80, 0, 0, 0, 0, 102, - 78, 74, 93, 0, 26, 8, 0, 48, 0, 0, - 81, 85, 50, 51, 52, 53, 54, 0, 0, 0, - 0, 64, 65, 0, 66, 139, 140, 137, 138, 141, - 142, 143, 144, 145, 135, 136, 129, 130, 128, 131, - 133, 134, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 44, 45, 0, - 0, 0, 0, 46, 0, 47, 42, 43, 55, 56, - 57, 58, 59, 60, 61, 62, 0, 87, 0, 41, - 0, 0, 0, 0, 19, 67, 68, 0, 0, 0, - 0, 39, 70, 71, 30, 0, 84, 0, 21, 0, - 0, 0, 88, 20, 12, 11, 557, 13, 0, 24, - 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, + 0, 51, 0, 33, 0, 0, 0, 0, 0, 0, + 91, 0, 84, 80, 81, 82, 77, 78, 0, 0, + 0, 0, 0, 0, 85, 0, 0, 0, 0, 103, + 83, 79, 95, 0, 26, 8, 0, 50, 0, 0, + 86, 89, 52, 53, 54, 55, 56, 0, 0, 0, + 0, 66, 67, 0, 68, 140, 141, 138, 139, 142, + 143, 144, 145, 146, 136, 137, 130, 131, 129, 132, + 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 133, 0, 46, 47, 0, + 0, 0, 0, 48, 0, 49, 44, 45, 57, 58, + 59, 60, 61, 62, 63, 64, 0, 92, 0, 43, + 0, 0, 0, 0, 19, 69, 70, 0, 0, 0, + 0, 39, 75, 76, 30, 0, 88, 0, 21, 0, + 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, + 0, 25, 591, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, 0, 0, - 18, 0, 23, 0, 49, 0, 33, 0, 0, 0, - 0, 0, 0, 86, 0, 79, 75, 76, 77, 72, - 73, 0, 0, 0, 0, 0, 0, 80, 0, 0, - 0, 0, 102, 78, 74, 93, 0, 26, 8, 0, - 48, 0, 0, 81, 85, 50, 51, 52, 53, 54, - 0, 0, 0, 0, 64, 65, 0, 66, 0, 0, + 18, 0, 23, 0, 51, 0, 33, 0, 0, 0, + 0, 0, 0, 91, 0, 84, 80, 81, 82, 77, + 78, 0, 0, 0, 0, 0, 0, 85, 0, 0, + 0, 0, 103, 83, 79, 95, 0, 26, 8, 0, + 50, 0, 0, 86, 89, 52, 53, 54, 55, 56, + 0, 0, 0, 0, 66, 67, 0, 68, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 165, 166, 167, 168, 170, 171, 172, 173, - 174, 175, 176, 177, 169, 0, 0, 0, 0, 0, - 44, 45, 0, 0, 0, 0, 46, 0, 47, 42, - 43, 55, 56, 57, 58, 59, 60, 61, 62, 0, - 87, 0, 41, 178, 179, 0, 511, 19, 67, 68, - 0, 0, 0, 0, 39, 70, 71, 30, 0, 84, - 0, 21, 0, 0, 0, 88, 20, 12, 11, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, + 46, 47, 0, 0, 0, 0, 48, 0, 49, 44, + 45, 57, 58, 59, 60, 61, 62, 63, 64, 0, + 92, 0, 43, 0, 0, 0, 0, 19, 69, 70, + 0, 0, 0, 0, 39, 75, 76, 30, 0, 88, + 0, 21, 0, 0, 0, 93, 20, 12, 11, 576, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, - 28, 0, 0, 18, 0, 23, 0, 49, 0, 33, - 0, 0, 0, 0, 0, 0, 86, 0, 79, 75, - 76, 77, 72, 73, 0, 0, 0, 0, 0, 0, - 80, 0, 0, 0, 0, 102, 78, 74, 93, 0, - 26, 8, 0, 48, 0, 0, 81, 85, 50, 51, - 52, 53, 54, 0, 0, 0, 0, 64, 65, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 44, 45, 0, 0, 0, 0, 46, - 0, 47, 42, 43, 55, 56, 57, 58, 59, 60, - 61, 62, 0, 87, 0, 41, 0, 0, 0, 0, - 19, 67, 68, 0, 0, 0, 0, 39, 70, 71, - 30, 0, 84, 0, 21, 0, 0, 0, 88, 20, + 28, 0, 0, 18, 0, 23, 0, 51, 0, 33, + 0, 0, 0, 0, 0, 0, 91, 0, 84, 80, + 81, 82, 77, 78, 0, 0, 0, 0, 0, 0, + 85, 0, 0, 0, 0, 103, 83, 79, 95, 0, + 26, 8, 0, 50, 0, 0, 86, 89, 52, 53, + 54, 55, 56, 0, 0, 0, 0, 66, 67, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 166, 167, 168, 169, 171, + 172, 173, 174, 175, 176, 177, 178, 170, 0, 0, + 0, 0, 0, 46, 47, 0, 0, 0, 0, 48, + 0, 49, 44, 45, 57, 58, 59, 60, 61, 62, + 63, 64, 0, 92, 0, 43, 179, 180, 0, 529, + 19, 69, 70, 0, 0, 0, 0, 39, 75, 76, + 30, 0, 88, 0, 21, 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, 0, 0, 18, 0, 23, 0, - 49, 0, 33, 0, 0, 0, 0, 0, 0, 86, - 0, 79, 75, 76, 77, 72, 73, 0, 0, 0, - 0, 0, 0, 80, 0, 0, 0, 0, 102, 78, - 74, 93, 0, 26, 8, 432, 48, 0, 0, 81, - 85, 50, 51, 52, 53, 54, 0, 0, 0, 0, - 64, 65, 0, 66, 0, 0, 0, 0, 0, 0, + 51, 0, 33, 0, 0, 0, 0, 0, 0, 91, + 0, 84, 80, 81, 82, 77, 78, 0, 0, 0, + 0, 0, 0, 85, 0, 0, 0, 0, 103, 83, + 79, 95, 0, 26, 8, 0, 50, 0, 0, 86, + 89, 52, 53, 54, 55, 56, 0, 0, 0, 0, + 66, 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 0, 0, - 0, 0, 46, 0, 47, 42, 43, 55, 56, 57, - 58, 59, 60, 61, 62, 0, 87, 0, 41, 0, - 0, 0, 0, 19, 67, 68, 0, 0, 0, 0, - 39, 70, 71, 30, 0, 84, 0, 21, 0, 0, - 0, 88, 20, 12, 11, 0, 13, 0, 24, 0, + 0, 0, 0, 0, 0, 0, 46, 47, 0, 0, + 0, 0, 48, 0, 49, 44, 45, 57, 58, 59, + 60, 61, 62, 63, 64, 0, 92, 0, 43, 0, + 0, 0, 0, 19, 69, 70, 0, 0, 0, 0, + 39, 75, 76, 30, 0, 88, 0, 21, 0, 0, + 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, 0, 0, 18, - 0, 23, 0, 49, 0, 33, 0, 0, 0, 0, - 0, 0, 86, 0, 79, 75, 76, 77, 72, 73, - 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, - 0, 102, 78, 74, 93, 0, 26, 8, 232, 48, - 0, 0, 81, 85, 50, 51, 52, 53, 54, 0, - 0, 0, 0, 64, 65, 0, 66, 0, 0, 0, + 0, 23, 0, 51, 0, 33, 0, 0, 0, 0, + 0, 0, 91, 0, 84, 80, 81, 82, 77, 78, + 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, + 0, 103, 83, 79, 95, 0, 26, 8, 448, 50, + 0, 0, 86, 89, 52, 53, 54, 55, 56, 0, + 0, 0, 0, 66, 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, - 45, 0, 0, 0, 0, 46, 0, 47, 42, 43, - 55, 56, 57, 58, 59, 60, 61, 62, 0, 87, - 0, 41, 0, 0, 0, 0, 19, 67, 68, 0, - 0, 0, 0, 39, 70, 71, 30, 0, 84, 0, - 21, 0, 0, 0, 88, 20, 12, 11, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 47, 0, 0, 0, 0, 48, 0, 49, 44, 45, + 57, 58, 59, 60, 61, 62, 63, 64, 0, 92, + 0, 43, 0, 0, 0, 0, 19, 69, 70, 0, + 0, 0, 0, 39, 75, 76, 30, 0, 88, 0, + 21, 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, - 0, 0, 18, 0, 23, 0, 49, 0, 33, 0, - 0, 0, 0, 0, 0, 86, 0, 79, 75, 76, - 77, 72, 73, 0, 0, 0, 0, 0, 0, 80, - 0, 0, 0, 0, 102, 78, 74, 93, 0, 26, - 8, 0, 48, 0, 0, 81, 85, 50, 51, 52, - 53, 54, 0, 0, 0, 0, 64, 65, 0, 66, + 0, 0, 18, 0, 23, 0, 51, 0, 33, 0, + 0, 0, 0, 0, 0, 91, 0, 84, 80, 81, + 82, 77, 78, 0, 0, 0, 0, 0, 0, 85, + 0, 0, 0, 0, 103, 83, 79, 95, 0, 26, + 8, 239, 50, 0, 0, 86, 89, 52, 53, 54, + 55, 56, 0, 0, 0, 0, 66, 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 0, 0, 0, 0, 46, 0, - 47, 42, 43, 55, 56, 57, 58, 59, 60, 61, - 62, 0, 87, 0, 41, 0, 0, 0, 0, 19, - 67, 68, 0, 0, 0, 0, 39, 70, 71, 30, - 0, 84, 0, 21, 0, 0, 0, 88, 20, 12, + 0, 0, 46, 47, 0, 0, 0, 0, 48, 0, + 49, 44, 45, 57, 58, 59, 60, 61, 62, 63, + 64, 0, 92, 0, 43, 0, 0, 0, 0, 19, + 69, 70, 0, 0, 0, 0, 39, 75, 76, 30, + 0, 88, 0, 21, 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, - 0, 0, 28, 0, 0, 18, 0, 23, 0, 49, - 0, 33, 0, 0, 0, 0, 0, 0, 86, 0, - 79, 75, 76, 77, 72, 73, 0, 0, 0, 0, - 0, 0, 80, 0, 0, 0, 0, 7, 78, 74, - 93, 0, 26, 8, 0, 48, 0, 0, 81, 85, - 50, 51, 52, 53, 54, 0, 0, 0, 0, 64, - 65, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 568, 0, 0, + 0, 0, 28, 0, 0, 18, 0, 23, 0, 51, + 0, 33, 0, 0, 0, 0, 0, 0, 91, 0, + 84, 80, 81, 82, 77, 78, 0, 0, 0, 0, + 0, 0, 85, 0, 0, 0, 0, 103, 83, 79, + 95, 0, 26, 8, 0, 50, 0, 0, 86, 89, + 52, 53, 54, 55, 56, 0, 0, 0, 0, 66, + 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 0, 0, 0, - 0, 46, 0, 47, 42, 43, 55, 56, 57, 58, - 59, 60, 61, 62, 0, 87, 0, 41, 0, 0, - 0, 0, 19, 0, 0, 0, 0, 0, 0, 39, - 70, 71, 30, 0, 84, 0, 21, 0, 0, 0, - 88, 20, 12, 11, 0, 13, 0, 24, 0, 25, - 0, 0, 14, 0, 0, 0, 15, 16, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 47, 0, 0, 0, + 0, 48, 0, 49, 44, 45, 57, 58, 59, 60, + 61, 62, 63, 64, 0, 92, 0, 43, 0, 0, + 0, 0, 19, 69, 70, 0, 0, 0, 0, 39, + 75, 76, 30, 0, 88, 0, 21, 0, 0, 0, + 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, + 0, 0, 14, 0, 0, 0, 15, 16, 29, 31, 0, 17, 27, 0, 0, 28, 0, 0, 18, 0, - 23, 0, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 79, 75, 76, 77, 72, 73, 0, - 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, - 102, 78, 74, 93, 0, 26, 8, 0, 48, 0, - 0, 81, 85, 50, 51, 52, 53, 54, 0, 0, - 0, 0, 64, 65, 0, 66, 0, 0, 0, 0, + 23, 0, 51, 0, 33, 0, 0, 0, 0, 0, + 0, 91, 0, 84, 80, 81, 82, 77, 78, 0, + 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, + 7, 83, 79, 95, 0, 26, 8, 0, 50, 0, + 0, 86, 89, 52, 53, 54, 55, 56, 0, 0, + 0, 0, 66, 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 633, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 0, 0, 0, 0, 46, 0, 47, 42, 43, 55, - 56, 57, 58, 59, 60, 61, 62, 0, 87, 0, - 41, 0, 0, 0, 0, 19, 0, 0, 0, 0, - 0, 0, 39, 70, 71, 30, 0, 84, 0, 21, - 0, 0, 0, 88, 20, 12, 11, 0, 13, 0, + 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, + 0, 0, 0, 0, 48, 0, 49, 44, 45, 57, + 58, 59, 60, 61, 62, 63, 64, 0, 92, 0, + 43, 0, 0, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 39, 75, 76, 30, 0, 88, 0, 21, + 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 0, 0, 17, 27, 0, 0, 28, 0, - 0, 18, 0, 23, 0, 49, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 79, 75, 76, 77, - 72, 73, 0, 0, 0, 0, 0, 0, 80, 0, - 0, 0, 0, 102, 78, 74, 93, 0, 26, 8, - 0, 48, 0, 0, 81, 85, 50, 51, 52, 53, - 54, 0, 0, 0, 0, 64, 65, 0, 66, 0, + 0, 18, 0, 23, 0, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 91, 0, 84, 80, 81, 82, + 77, 78, 0, 0, 0, 0, 0, 0, 85, 0, + 0, 0, 0, 103, 83, 79, 95, 0, 26, 8, + 0, 50, 0, 0, 86, 89, 52, 53, 54, 55, + 56, 0, 0, 0, 0, 66, 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 513, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 0, 46, 0, 47, - 42, 43, 55, 56, 57, 58, 59, 60, 61, 62, - 0, 87, 0, 41, 0, 0, 0, 0, 19, 0, - 0, 0, 0, 0, 0, 39, 70, 71, 30, 0, - 84, 0, 21, 0, 0, 0, 88, 20, 12, 11, + 0, 46, 47, 0, 0, 0, 0, 48, 0, 49, + 44, 45, 57, 58, 59, 60, 61, 62, 63, 64, + 0, 92, 0, 43, 0, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 39, 75, 76, 30, 0, + 88, 0, 21, 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 0, 0, 17, 27, 0, - 0, 28, 0, 0, 18, 0, 23, 0, 49, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 79, - 75, 76, 77, 72, 73, 0, 0, 0, 0, 0, - 0, 80, 0, 0, 0, 0, 102, 78, 74, 93, - 0, 26, 8, 0, 48, 0, 0, 81, 85, 50, - 51, 52, 53, 54, 0, 0, 0, 0, 64, 65, - 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, + 0, 28, 0, 0, 18, 0, 23, 0, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 0, 84, + 80, 81, 82, 77, 78, 0, 0, 0, 0, 0, + 0, 85, 0, 0, 0, 0, 103, 83, 79, 95, + 0, 26, 8, 0, 50, 0, 0, 86, 89, 52, + 53, 54, 55, 56, 0, 0, 0, 0, 66, 67, + 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 0, 0, 0, 0, - 46, 0, 47, 42, 43, 55, 56, 57, 58, 59, - 60, 61, 62, 0, 87, 0, 41, 0, 0, 0, - 0, 19, 0, 0, 0, 0, 0, 0, 39, 70, - 71, 30, 0, 84, 0, 21, 0, 0, 0, 88, + 0, 0, 0, 0, 46, 47, 0, 0, 0, 0, + 48, 0, 49, 44, 45, 57, 58, 59, 60, 61, + 62, 63, 64, 0, 92, 0, 43, 0, 0, 0, + 0, 19, 0, 0, 0, 0, 0, 0, 39, 75, + 76, 30, 0, 88, 0, 21, 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 0, 0, 17, 27, 0, 0, 28, 0, 0, 18, 0, 23, - 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 79, 75, 76, 77, 72, 73, 0, 0, - 0, 0, 0, 0, 80, 0, 0, 0, 0, 102, - 78, 74, 93, 0, 26, 8, 0, 48, 0, 0, - 81, 85, 50, 51, 52, 53, 54, 0, 0, 0, - 0, 64, 65, 0, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 463, + 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 0, 84, 80, 81, 82, 77, 78, 0, 0, + 0, 0, 0, 0, 85, 0, 0, 0, 0, 103, + 83, 79, 95, 0, 26, 8, 0, 50, 0, 0, + 86, 89, 52, 53, 54, 55, 56, 0, 0, 0, + 0, 66, 67, 0, 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 45, 0, - 0, 0, 0, 46, 0, 47, 42, 43, 55, 56, - 57, 58, 59, 60, 61, 62, 0, 87, 0, 41, + 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, + 0, 0, 0, 48, 0, 49, 44, 45, 57, 58, + 59, 60, 61, 62, 63, 64, 0, 92, 0, 43, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, - 0, 39, 70, 71, 30, 0, 84, 0, 21, 0, - 0, 0, 88, 20, 12, 11, 0, 13, 0, 24, + 0, 39, 75, 76, 30, 0, 88, 0, 21, 0, + 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 0, 0, 17, 27, 0, 0, 28, 0, 0, - 18, 0, 23, 0, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 79, 75, 76, 77, 72, - 73, 0, 0, 0, 0, 0, 0, 80, 0, 0, - 0, 0, 102, 78, 74, 93, 0, 26, 8, 0, - 48, 0, 0, 81, 85, 50, 51, 52, 53, 54, - 0, 0, 0, 0, 64, 65, 0, 66, 0, 0, + 18, 0, 23, 0, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 0, 84, 80, 81, 82, 77, + 78, 0, 0, 0, 0, 0, 0, 85, 0, 0, + 0, 0, 103, 83, 79, 95, 0, 26, 8, 0, + 50, 0, 0, 86, 89, 52, 53, 54, 55, 56, + 0, 0, 0, 0, 66, 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 0, 0, 0, 0, 46, 0, 47, 42, - 43, 55, 56, 57, 58, 59, 60, 61, 62, 0, - 87, 0, 41, 0, 0, 0, 0, 19, 0, 0, - 0, 0, 0, 0, 39, 70, 71, 30, 0, 84, - 0, 21, 0, 0, 0, 88, 20, 12, 11, 0, + 46, 47, 0, 0, 0, 0, 48, 0, 49, 44, + 45, 57, 58, 59, 60, 61, 62, 63, 64, 0, + 92, 0, 43, 0, 0, 0, 0, 19, 0, 0, + 0, 0, 0, 0, 39, 75, 76, 30, 0, 88, + 0, 21, 0, 0, 0, 93, 20, 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, 14, 0, 0, 0, 15, 16, 29, 0, 0, 17, 27, 0, 0, - 28, 0, 0, 18, 0, 23, 0, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 79, 75, - 76, 77, 72, 73, 0, 0, 0, 0, 0, 0, - 80, 0, 0, 0, 0, 102, 78, 74, 93, 0, - 26, 8, 0, 48, 124, 123, 81, 85, 346, 347, - 348, 349, 350, 0, 351, 352, 353, 389, 390, 0, - 0, 0, 0, 146, 0, 147, 120, 121, 125, 127, - 126, 139, 140, 137, 138, 141, 142, 143, 144, 145, - 135, 136, 129, 130, 128, 131, 133, 134, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 354, 132, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 355, 356, 0, 359, 360, 361, - 340, 341, 342, 343, 344, 345, 357, 358, 0, 0, - 337, 0, 0, 0, 0, 0, 0, 0, 0, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 392, 393, 394, 395, 396, 384, 385, 386, 387, 388, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 0, 404, 402, 403, 399, 400, 0, 391, 397, - 398, 405, 406, 408, 407, 409, 410, 346, 347, 348, - 349, 350, 0, 351, 352, 353, 389, 390, 401, 412, - 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 0, 0, 18, 0, 23, 0, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 91, 0, 84, 80, + 81, 82, 77, 78, 0, 0, 0, 0, 0, 0, + 85, 0, 0, 0, 0, 103, 83, 79, 95, 0, + 26, 8, 0, 50, 0, 0, 86, 89, 52, 53, + 54, 55, 56, 0, 0, 0, 0, 66, 67, 0, + 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, + 0, 0, 0, 46, 47, 0, 0, 0, 0, 48, + 0, 49, 44, 45, 57, 58, 59, 60, 61, 62, + 63, 64, 0, 92, 0, 43, 0, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 39, 75, 76, + 30, 0, 88, 0, 21, 0, 0, 0, 93, 20, + 12, 11, 0, 13, 0, 24, 0, 25, 0, 0, + 14, 0, 0, 0, 15, 16, 29, 0, 0, 17, + 27, 0, 0, 28, 0, 0, 18, 0, 23, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 84, 80, 81, 82, 77, 78, 0, 0, 0, + 0, 0, 0, 85, 0, 0, 0, 0, 103, 83, + 79, 95, 0, 26, 8, 0, 50, 125, 124, 86, + 89, 343, 344, 345, 346, 347, 0, 348, 349, 350, + 386, 387, 0, 0, 0, 0, 147, 0, 148, 121, + 122, 126, 128, 127, 140, 141, 138, 139, 142, 143, + 144, 145, 146, 136, 137, 130, 131, 129, 132, 134, + 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 351, 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 352, 353, 0, + 356, 357, 358, 337, 338, 339, 340, 341, 342, 354, + 355, 0, 0, 334, 0, 0, 0, 0, 0, 0, + 0, 0, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 389, 390, 391, 392, 393, 381, 382, + 383, 384, 385, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 0, 401, 399, 400, 396, 397, + 0, 388, 394, 395, 402, 403, 405, 404, 406, 407, + 343, 344, 345, 346, 347, 0, 348, 349, 350, 386, + 387, 398, 409, 408, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 355, 356, 0, 359, 360, 361, 506, - 507, 508, 505, 504, 503, 357, 358, 0, 0, 663, - 0, 0, 0, 0, 0, 0, 0, 0, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 392, - 393, 394, 395, 396, 384, 385, 386, 387, 388, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 0, 404, 402, 403, 399, 400, 0, 391, 397, 398, - 405, 406, 408, 407, 409, 410, 0, 0, 0, 0, - 0, 50, 51, 52, 53, 54, 0, 401, 412, 411, - 64, 65, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 0, 0, - 0, 0, 46, 0, 47, 42, 43, 55, 56, 57, - 58, 59, 60, 61, 62, 0, 87, 0, 41, 0, - 122, 124, 123, 107, 0, 0, 0, 0, 0, 0, - 0, 70, 71, 98, 0, 84, 0, 0, 0, 0, - 146, 88, 147, 120, 121, 125, 127, 126, 139, 140, - 137, 138, 141, 142, 143, 144, 145, 135, 136, 129, - 130, 128, 131, 133, 134, 50, 51, 52, 53, 54, - 0, 0, 0, 49, 64, 65, 0, 66, 132, 0, - 0, 224, 86, 0, 79, 75, 76, 77, 72, 73, - 0, 0, 0, 0, 0, 0, 80, 0, 458, 0, - 0, 102, 78, 74, 93, 0, 0, 0, 0, 48, - 44, 45, 81, 85, 0, 0, 46, 0, 47, 42, - 43, 55, 56, 57, 58, 59, 60, 61, 62, 0, - 87, 0, 41, 0, 0, 0, 0, 107, 0, 0, - 0, 0, 0, 0, 0, 70, 71, 98, 0, 84, - 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 510, 0, 0, 0, 0, 0, 50, - 51, 52, 53, 54, 0, 0, 0, 49, 64, 65, - 0, 66, 0, 0, 0, 459, 86, 0, 79, 75, - 76, 77, 72, 73, 0, 0, 0, 0, 0, 0, - 80, 0, 0, 0, 0, 102, 78, 74, 93, 0, - 0, 0, 0, 48, 44, 45, 81, 85, 0, 0, - 46, 0, 47, 42, 43, 55, 56, 57, 58, 59, - 60, 61, 62, 0, 87, 0, 41, 0, 122, 124, - 123, 107, 0, 0, 0, 0, 0, 0, 0, 70, - 71, 98, 326, 84, 0, 0, 0, 0, 146, 88, - 147, 120, 121, 125, 127, 126, 139, 140, 137, 138, - 141, 142, 143, 144, 145, 135, 136, 129, 130, 128, - 131, 133, 134, 50, 51, 52, 53, 54, 0, 0, - 0, 49, 64, 65, 0, 66, 132, 0, 0, 0, - 86, 0, 79, 75, 76, 77, 72, 73, 0, 0, - 0, 0, 0, 0, 80, 0, 300, 0, 0, 102, - 78, 74, 93, 0, 0, 0, 0, 48, 44, 45, - 81, 85, 0, 0, 46, 0, 47, 42, 43, 55, - 56, 57, 58, 59, 60, 61, 62, 0, 87, 0, - 41, 0, 0, 0, 0, 107, 0, 0, 0, 0, - 0, 0, 0, 70, 71, 98, 0, 84, 0, 0, - 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, + 0, 0, 351, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 352, 353, 0, 356, + 357, 358, 524, 525, 526, 523, 522, 521, 354, 355, + 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, + 0, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 389, 390, 391, 392, 393, 381, 382, 383, + 384, 385, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 0, 401, 399, 400, 396, 397, 0, + 388, 394, 395, 402, 403, 405, 404, 406, 407, 0, + 0, 0, 0, 0, 52, 53, 54, 55, 56, 0, + 398, 409, 408, 66, 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 509, 0, 0, 0, 0, 0, 50, 51, 52, - 53, 54, 0, 0, 0, 49, 64, 65, 0, 66, - 0, 0, 0, 0, 86, 0, 79, 75, 76, 77, - 72, 73, 0, 0, 279, 0, 0, 0, 80, 0, - 0, 0, 0, 102, 78, 74, 93, 0, 0, 0, - 0, 48, 44, 45, 81, 85, 0, 0, 46, 0, - 47, 42, 43, 55, 56, 57, 58, 59, 60, 61, - 62, 0, 87, 0, 41, 0, 122, 124, 123, 107, - 0, 0, 0, 0, 0, 0, 0, 70, 71, 98, - 0, 84, 0, 0, 0, 0, 146, 88, 147, 120, - 121, 125, 127, 126, 139, 140, 137, 138, 141, 142, - 143, 144, 145, 135, 136, 129, 130, 128, 131, 133, - 134, 50, 51, 52, 53, 54, 0, 0, 0, 49, - 64, 65, 0, 66, 132, 0, 0, 0, 86, 0, - 79, 75, 76, 77, 72, 73, 0, 0, 0, 0, - 0, 0, 80, 0, 0, 0, 0, 102, 78, 74, - 93, 0, 0, 0, 0, 48, 44, 45, 81, 85, - 0, 0, 46, 0, 47, 42, 43, 55, 56, 57, - 58, 59, 60, 61, 62, 0, 87, 0, 41, 0, - 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, - 0, 70, 71, 98, 0, 84, 0, 0, 0, 0, - 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, + 0, 0, 0, 0, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 47, 0, 0, 0, 0, 48, 0, 49, 44, 45, + 57, 58, 59, 60, 61, 62, 63, 64, 0, 92, + 0, 43, 0, 123, 125, 124, 108, 0, 0, 0, + 0, 0, 0, 0, 75, 76, 99, 0, 88, 0, + 0, 0, 0, 147, 93, 148, 121, 122, 126, 128, + 127, 140, 141, 138, 139, 142, 143, 144, 145, 146, + 136, 137, 130, 131, 129, 132, 134, 135, 52, 53, + 54, 55, 56, 0, 0, 0, 51, 66, 67, 0, + 68, 133, 0, 0, 233, 91, 0, 84, 80, 81, + 82, 77, 78, 0, 0, 0, 0, 0, 0, 85, + 0, 476, 0, 0, 103, 83, 79, 95, 0, 0, + 0, 0, 50, 46, 47, 86, 89, 0, 0, 48, + 0, 49, 44, 45, 57, 58, 59, 60, 61, 62, + 63, 64, 0, 92, 0, 43, 0, 0, 0, 0, + 108, 0, 0, 0, 0, 0, 0, 0, 75, 76, + 99, 0, 88, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 79, 75, 76, 77, 72, 73, - 0, 0, 0, 0, 0, 0, 80, 122, 124, 123, - 0, 102, 78, 74, 93, 0, 0, 0, 0, 48, - 0, 0, 81, 85, 0, 0, 0, 146, 0, 147, - 120, 121, 125, 127, 126, 139, 140, 137, 138, 141, - 142, 143, 144, 145, 135, 136, 129, 130, 128, 131, - 133, 134, 122, 124, 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 0, 0, 146, 0, 147, 120, 121, 125, 127, 126, - 139, 140, 137, 138, 141, 142, 143, 144, 145, 135, - 136, 129, 130, 128, 131, 133, 134, 122, 124, 123, + 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, + 0, 0, 52, 53, 54, 55, 56, 0, 0, 0, + 51, 66, 67, 0, 68, 0, 0, 0, 477, 91, + 0, 84, 80, 81, 82, 77, 78, 0, 0, 0, + 0, 0, 0, 85, 0, 0, 0, 0, 103, 83, + 79, 95, 0, 0, 0, 0, 50, 46, 47, 86, + 89, 0, 0, 48, 0, 49, 44, 45, 57, 58, + 59, 60, 61, 62, 63, 64, 0, 92, 0, 43, + 0, 123, 125, 124, 108, 0, 0, 0, 0, 0, + 0, 0, 75, 76, 99, 420, 88, 0, 0, 0, + 0, 147, 93, 148, 121, 122, 126, 128, 127, 140, + 141, 138, 139, 142, 143, 144, 145, 146, 136, 137, + 130, 131, 129, 132, 134, 135, 52, 53, 54, 55, + 56, 0, 0, 0, 51, 66, 67, 0, 68, 133, + 0, 0, 0, 91, 0, 84, 80, 81, 82, 77, + 78, 0, 0, 0, 0, 0, 0, 85, 0, 307, + 0, 0, 103, 83, 79, 95, 0, 0, 0, 0, + 50, 46, 47, 86, 89, 0, 0, 48, 0, 49, + 44, 45, 57, 58, 59, 60, 61, 62, 63, 64, + 0, 92, 0, 43, 0, 0, 0, 0, 108, 0, + 0, 0, 0, 0, 0, 0, 75, 76, 99, 0, + 88, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 0, 0, 0, 0, 0, 0, 146, 0, 147, - 120, 121, 125, 127, 126, 139, 140, 137, 138, 141, - 142, 143, 144, 145, 135, 136, 129, 130, 128, 131, - 133, 134, 122, 124, 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 441, 0, 146, 0, 147, 120, 121, 125, 127, 126, - 139, 140, 137, 138, 141, 142, 143, 144, 145, 135, - 136, 129, 130, 128, 131, 133, 134, 122, 124, 123, + 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, + 52, 53, 54, 55, 56, 0, 0, 0, 51, 66, + 67, 0, 68, 0, 0, 0, 0, 91, 0, 84, + 80, 81, 82, 77, 78, 0, 0, 286, 0, 0, + 0, 85, 0, 0, 0, 0, 103, 83, 79, 95, + 0, 0, 0, 0, 50, 46, 47, 86, 89, 0, + 0, 48, 0, 49, 44, 45, 57, 58, 59, 60, + 61, 62, 63, 64, 0, 92, 0, 43, 0, 123, + 125, 124, 108, 0, 0, 0, 0, 0, 0, 0, + 75, 76, 99, 0, 88, 0, 0, 0, 0, 147, + 93, 148, 121, 122, 126, 128, 127, 140, 141, 138, + 139, 142, 143, 144, 145, 146, 136, 137, 130, 131, + 129, 132, 134, 135, 52, 53, 54, 55, 56, 0, + 0, 0, 51, 66, 67, 0, 68, 133, 0, 0, + 0, 91, 0, 84, 80, 81, 82, 77, 78, 0, + 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, + 103, 83, 79, 95, 0, 0, 0, 0, 50, 46, + 47, 86, 89, 0, 0, 48, 0, 49, 44, 45, + 57, 58, 59, 60, 61, 62, 63, 64, 0, 92, + 0, 43, 0, 0, 0, 0, 108, 0, 0, 0, + 0, 0, 0, 0, 75, 76, 99, 0, 88, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 0, 0, 0, 0, 440, 0, 146, 0, 147, - 120, 121, 125, 127, 126, 139, 140, 137, 138, 141, - 142, 143, 144, 145, 135, 136, 129, 130, 128, 131, - 133, 134, 122, 124, 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 419, 0, 146, 0, 147, 120, 121, 125, 127, 126, - 139, 140, 137, 138, 141, 142, 143, 144, 145, 135, - 136, 129, 130, 128, 131, 133, 134, 122, 124, 123, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 0, 0, 0, 0, 415, 0, 146, 0, 147, - 120, 121, 125, 127, 126, 139, 140, 137, 138, 141, - 142, 143, 144, 145, 135, 136, 129, 130, 128, 131, - 133, 134, 122, 124, 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 314, 0, 146, 598, 147, 120, 121, 125, 127, 126, - 139, 140, 137, 138, 141, 142, 143, 144, 145, 135, - 136, 129, 130, 128, 131, 133, 134, 122, 124, 123, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 0, 0, 454, 0, 0, 0, 146, 0, 147, - 120, 121, 125, 127, 126, 139, 140, 137, 138, 141, - 142, 143, 144, 145, 135, 136, 129, 130, 128, 131, - 133, 134, 122, 124, 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 450, 0, - 0, 0, 146, 0, 147, 120, 121, 125, 127, 126, - 139, 140, 137, 138, 141, 142, 143, 144, 145, 135, - 136, 129, 130, 128, 131, 133, 134, 122, 124, 123, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 599, 0, 0, 0, 0, 0, 146, 0, 147, - 120, 121, 125, 127, 126, 139, 140, 137, 138, 141, - 142, 143, 144, 145, 135, 136, 129, 130, 128, 131, - 133, 134, 122, 124, 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 289, 0, 0, 0, - 0, 0, 146, 424, 147, 120, 121, 125, 127, 126, - 139, 140, 137, 138, 141, 142, 143, 144, 145, 135, - 136, 129, 130, 128, 131, 133, 134, 0, 122, 124, - 123, 0, 428, 333, 0, 0, 0, 0, 0, 0, - 132, 119, 0, 0, 0, 0, 0, 0, 146, 0, - 147, 120, 121, 125, 127, 126, 139, 140, 137, 138, - 141, 142, 143, 144, 145, 135, 136, 129, 130, 128, - 131, 133, 134, 122, 124, 123, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, - 0, 0, 0, 146, 0, 147, 120, 121, 125, 127, - 126, 139, 140, 137, 138, 141, 142, 143, 144, 145, - 135, 136, 129, 130, 128, 131, 133, 134, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, + 0, 0, 460, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 91, 0, 84, 80, 81, + 82, 77, 78, 0, 0, 0, 0, 0, 0, 85, + 123, 125, 124, 0, 103, 83, 79, 95, 0, 0, + 0, 0, 50, 0, 0, 86, 89, 0, 0, 0, + 147, 0, 148, 121, 122, 126, 128, 127, 140, 141, + 138, 139, 142, 143, 144, 145, 146, 136, 137, 130, + 131, 129, 132, 134, 135, 123, 125, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 0, 0, 147, 0, 148, 121, 122, + 126, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, + 123, 125, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, + 147, 0, 148, 121, 122, 126, 128, 127, 140, 141, + 138, 139, 142, 143, 144, 145, 146, 136, 137, 130, + 131, 129, 132, 134, 135, 123, 125, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 459, 0, 147, 0, 148, 121, 122, + 126, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, + 123, 125, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 458, 0, + 147, 0, 148, 121, 122, 126, 128, 127, 140, 141, + 138, 139, 142, 143, 144, 145, 146, 136, 137, 130, + 131, 129, 132, 134, 135, 123, 125, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 456, 0, 147, 0, 148, 121, 122, + 126, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, + 123, 125, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 435, 0, + 147, 0, 148, 121, 122, 126, 128, 127, 140, 141, + 138, 139, 142, 143, 144, 145, 146, 136, 137, 130, + 131, 129, 132, 134, 135, 123, 125, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 431, 0, 147, 0, 148, 121, 122, + 126, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, + 123, 125, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 328, 0, + 147, 0, 148, 121, 122, 126, 128, 127, 140, 141, + 138, 139, 142, 143, 144, 145, 146, 136, 137, 130, + 131, 129, 132, 134, 135, 123, 125, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 532, 0, 0, 0, 147, 617, 148, 121, 122, + 126, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, + 123, 125, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, 472, 0, 0, 0, + 147, 0, 148, 121, 122, 126, 128, 127, 140, 141, + 138, 139, 142, 143, 144, 145, 146, 136, 137, 130, + 131, 129, 132, 134, 135, 123, 125, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 468, 0, 0, 0, 147, 0, 148, 121, 122, + 126, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, + 123, 125, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 618, 0, 0, 0, 0, 0, + 147, 0, 148, 121, 122, 126, 128, 127, 140, 141, + 138, 139, 142, 143, 144, 145, 146, 136, 137, 130, + 131, 129, 132, 134, 135, 123, 125, 124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 296, + 0, 0, 0, 0, 0, 147, 440, 148, 121, 122, + 126, 128, 127, 140, 141, 138, 139, 142, 143, 144, + 145, 146, 136, 137, 130, 131, 129, 132, 134, 135, + 0, 123, 125, 124, 0, 444, 427, 0, 0, 0, + 0, 0, 0, 133, 120, 0, 0, 0, 0, 0, + 0, 147, 0, 148, 121, 122, 126, 128, 127, 140, + 141, 138, 139, 142, 143, 144, 145, 146, 136, 137, + 130, 131, 129, 132, 134, 135, 123, 125, 124, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, + 0, 0, 0, 0, 0, 0, 147, 0, 148, 121, + 122, 126, 128, 127, 140, 141, 138, 139, 142, 143, + 144, 145, 146, 136, 137, 130, 131, 129, 132, 134, + 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 133, } var yyPact = [...]int{ - -1000, -1000, 2923, -1000, -1000, -1000, -1000, 162, -1000, -1000, - -1000, -52, 3901, -53, -54, 4917, 4917, 4917, -49, 211, - 4917, -1000, 5462, -59, -60, -63, -1000, 50, 4917, 263, - 367, 324, 214, 261, 283, 280, 2285, -1000, -1000, -64, - -1000, 4917, -49, -49, 4917, 4917, 4917, 4917, 4917, -67, - 4917, 4917, -68, 4917, 4917, 4917, 4917, 4917, 4917, 4917, - 4917, 4917, 4917, -1000, 4917, 4917, 4917, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 177, 169, -1000, -1000, -1000, -9, -70, 4347, -1000, -1000, - 118, 111, -1000, 249, -1000, 99, 249, 82, -1000, 2597, - 4917, 186, 98, 4917, 4917, 81, 5643, -1000, 80, 79, - 200, -1000, -1000, 199, -1000, 388, 193, -1000, 5643, -1000, - 4917, 4917, 4917, 4917, 4917, 4917, 4917, 4917, 4917, 4917, - 4917, 4917, 4917, 4917, 4917, 4917, 4917, 4917, 4917, 4917, - 4917, 4917, 4917, 4917, 4917, 4917, 4803, 4917, -49, 4917, - 222, -1000, 5417, 78, -1000, 246, -1000, 240, -1000, 41, - -71, 3901, -72, 77, 366, 4689, 4917, 4917, 4917, 4917, - 4917, 4917, 4917, 4917, 4917, 4917, 4917, 4917, -1000, -1000, - 4917, -1000, -1000, -1000, 282, 282, 282, 282, 5237, 4917, - 5643, 5643, 4917, 5643, 5643, 282, 282, 282, 282, 282, - 282, 282, 282, 800, 1115, 800, 187, -1000, 173, -1000, - 207, 4575, -49, 95, 179, 4917, -1000, 4347, -114, 420, - -1000, -1000, 5598, -49, -73, 4064, 4064, -1000, 228, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 5192, -76, 76, 417, - 5643, 5147, -1000, -1000, -1000, -1000, -49, -1000, 211, 4917, - -1000, 4917, 1439, 1602, 4053, 800, 955, 1765, 2087, 1925, - 369, 369, 369, 282, 282, 282, 282, 459, 459, 423, - 423, 423, 423, 423, 360, 360, 360, 360, 5552, 4917, - 1278, 411, -1000, -1000, 5507, 34, -1000, 387, 2434, -1000, - -1000, -77, 40, -1000, 4917, -1000, 4917, -1000, -1000, 800, - 4917, 800, 800, 800, 800, 800, 800, 800, 800, 800, - 800, 800, 800, 5102, -1000, 5057, 4866, 4917, -1000, -1000, - -1000, -1000, -1000, 224, 225, 5327, 24, 25, -1000, 5282, - -85, -1000, 4347, 4461, -1000, 4347, -1000, -1000, -1000, -1000, + -1000, -1000, 3046, -1000, -1000, -1000, -1000, 229, -1000, -1000, + -1000, 39, 4024, 23, 21, 5040, 5040, 5040, -52, 297, + 5040, -1000, 5675, 4, 3, -41, -1000, 64, 5040, 382, + 481, 435, 361, 380, 411, 419, 2408, -1000, -1000, -42, + -1000, -1000, 189, 5040, 296, 296, 5040, 5040, 5040, 5040, + 5040, -43, 5040, 5040, -55, 5040, 5040, 5040, 5040, 5040, + 5040, 5040, 5040, 5040, 5040, -1000, 5040, 5040, 5040, -1000, + -1000, -1000, 168, 166, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 271, 268, -1000, -1000, 76, + -1000, -58, 4470, -1000, -1000, 378, 144, 378, 141, -1000, + 2720, 5040, 263, 84, 5040, 5040, 140, 5856, -1000, 139, + 138, 224, -1000, -1000, 222, -1000, 509, 220, -1000, 5856, + -1000, 5040, 5040, 5040, 5040, 5040, 5040, 5040, 5040, 5040, + 5040, 5040, 5040, 5040, 5040, 5040, 5040, 5040, 5040, 5040, + 5040, 5040, 5040, 5040, 5040, 5040, 5040, 4926, 5040, 296, + 5040, 309, -1000, 5630, 129, -1000, 374, -1000, 365, -1000, + 63, -63, 4024, -66, 126, 479, 4812, 5040, 5040, 5040, + 5040, 5040, 5040, 5040, 5040, 5040, 5040, 5040, 5040, -1000, + -1000, 5040, 123, -1000, -1000, 165, 163, 5040, -1000, -1000, + -1000, 401, 401, 401, 401, 5405, 5040, 5856, 5856, 5040, + 5856, 5856, 401, 401, 401, 401, 401, 401, 401, 401, + 789, 1075, 789, 654, 654, 292, -1000, 237, -1000, 258, + 4698, 296, 93, 285, 5040, -1000, 4470, -123, 528, -1000, + -1000, 5811, 296, -67, -1000, 363, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 5360, -68, 125, 526, 5856, 5315, -1000, + -1000, -1000, -1000, -52, -1000, 297, 5040, -1000, 5040, 1399, + 1562, 4176, 789, 929, 1725, 2047, 1885, 445, 445, 445, + 401, 401, 401, 401, 547, 547, 2205, 2205, 2205, 2205, + 2205, 506, 506, 506, 506, 5765, 5040, 1238, 525, -1000, + -1000, 5720, 36, -1000, 508, 2557, -1000, -1000, -70, 59, + -1000, 5040, -1000, 5040, -1000, -1000, 789, 5040, 789, 789, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 5270, -1000, -1000, 5040, -1000, -52, -52, 5225, -1000, 5180, + 4989, 5040, -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, -1000, -1000, -1000, -1000, -1000, @@ -1095,50 +1149,52 @@ 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, -1000, -1000, 3738, 4917, 4917, 4917, 156, - -1000, -1000, 5643, -1000, 4917, 1278, -86, -49, 115, 3575, - 222, 4917, -1000, 70, -1000, 84, 4638, 4410, 2271, 2087, - 3412, -1000, -1000, 800, -124, -1000, -1000, 205, -1000, -1000, - -1000, -1000, 4917, -1000, -1000, -1000, -1000, 5643, -49, -78, - -87, -1000, -1000, -1000, 655, 75, 5643, -1000, 74, 71, - 1278, 67, -1000, 26, -1000, -49, -79, 4347, -1000, -1000, - -1000, -1000, 5643, 160, -88, 407, -1000, 325, -1000, -1000, - 133, -1000, -1000, -1000, 35, -1000, -1000, 208, 175, 125, - 312, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3901, - 365, 66, -1000, -1000, -1000, -1000, 333, -1000, 4347, -1000, - 2108, 64, 4917, -2, -1000, 198, -1000, -1000, 3086, 115, - -1000, 4347, -127, 1945, -1000, -80, 39, 364, 70, 86, - -1000, -1000, -1000, 189, -1000, 385, 4064, 324, 72, -1000, - -1000, -1000, -1000, -1000, 2760, 19, -91, 63, -1000, -92, - -1000, 4917, 163, -12, 62, 195, -1000, -1000, -1000, -93, - -94, -1000, 61, 125, -1000, 32, 70, -1000, 210, -1000, - -1000, 208, 4917, 182, -1000, 383, 4064, -1000, 125, -1000, - 809, 2760, -1000, -1000, -1000, 3249, 5372, -1000, -1000, -1000, - -1000, -1000, 58, 1782, 3086, -1000, -1000, 258, -1000, 1619, - -1000, -1000, 382, -1000, 5643, -1000, 4064, 4917, -82, -1000, - -1000, 670, -1000, 56, 55, 151, 168, 110, -1000, 98, - -1000, -1000, -1000, -1000, -1000, 2760, -1000, 54, -1000, -99, - 125, -1000, 1456, 4917, -1000, 5643, 70, -1000, -1000, -1000, - -1000, 125, 4203, 4064, 1293, 2760, -1000, -40, -1000, -1000, - 5643, -110, 406, -1000, -1000, 4064, -1000, 36, -1000, 364, - -1000, -1000, 1130, -41, -1000, -1000, -1000, -1000, 967, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 402, 354, 5540, + 34, 46, -1000, 5495, -80, -1000, 4470, 4584, -1000, 4470, + -1000, 3861, 5040, 5040, 5040, 197, -1000, -1000, 5856, -1000, + 5040, 1238, -81, 296, 120, 3698, 309, 5040, -1000, 160, + -1000, 82, 4761, 4533, 2394, 2047, 3535, 5450, -1000, -1000, + -1000, 789, -124, -1000, -1000, 281, -1000, -1000, -1000, -1000, + 5040, -1000, -1000, -1000, -1000, 5856, 296, -71, -82, -1000, + -1000, -1000, 364, 117, 5856, -1000, 113, 111, 1238, 109, + -1000, 28, -1000, 296, -72, 4470, -1000, -1000, -1000, -1000, + 5856, 211, -85, 523, -1000, 440, -1000, -1000, 112, -1000, + -1000, -1000, 32, -1000, -1000, 289, 253, 152, 425, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 4024, 478, 106, + -1000, -1000, -1000, -1000, -1000, 301, -1000, 4470, -1000, 2231, + 103, 5040, -8, -1000, 338, -1000, -1000, 3209, 120, -1000, + 4470, -126, 2068, -1000, -76, 55, 464, 160, 77, -1000, + -1000, -1000, 209, -1000, 505, 4187, 435, 80, -1000, -1000, + -1000, -1000, -1000, 2883, 33, -86, 102, -1000, -89, -1000, + 5040, 199, -11, 94, 317, -1000, -1000, -1000, -90, -92, + -1000, 92, 152, -1000, 53, 160, -1000, 290, -1000, -1000, + 289, 5040, 203, -1000, 504, 4187, -1000, 152, -1000, 932, + 2883, -1000, -1000, -1000, 3372, 5585, -1000, -1000, -1000, -1000, + -1000, 91, 1905, 3209, -1000, -1000, 394, -1000, 1742, -1000, + -1000, 501, -1000, 5856, -1000, 4187, 5040, -78, -1000, -1000, + 793, -1000, 78, 75, 202, 221, 157, -1000, 84, -1000, + -1000, -1000, -1000, -1000, 2883, -1000, 73, -1000, -111, 152, + -1000, 1579, 5040, -1000, 5856, 160, -1000, -1000, -1000, -1000, + 152, 4326, 4187, 1416, 2883, -1000, 50, -1000, -1000, 5856, + -117, 521, -1000, -1000, 4187, -1000, 67, -1000, 464, -1000, + -1000, 1253, 44, -1000, -1000, -1000, -1000, 1090, -1000, } var yyPgo = [...]int{ - 0, 394, 539, 538, 15, 7, 537, 2, 536, 309, - 535, 5, 534, 20, 533, 1, 531, 435, 431, 529, - 3, 14, 26, 4, 528, 19, 0, 526, 525, 30, - 68, 524, 522, 521, 520, 518, 25, 516, 514, 504, - 28, 424, 503, 38, 501, 35, 500, 34, 499, 36, - 22, 24, 31, 495, 494, 10, 493, 32, 492, 490, - 488, 487, 27, 486, 485, 484, 6, 483, 13, 481, - 11, 480, 9, 479, 460, 8, 457, 456, 455, 454, - 452, 451, 351, 44, 449, 448, 447, 446, 445, 444, - 440, 430, 12, + 0, 508, 681, 680, 15, 5, 679, 2, 674, 363, + 673, 30, 670, 24, 669, 1, 657, 587, 540, 656, + 3, 13, 22, 6, 653, 19, 0, 652, 651, 72, + 66, 650, 647, 646, 644, 642, 20, 641, 636, 635, + 32, 550, 633, 39, 632, 35, 630, 31, 629, 23, + 14, 33, 28, 628, 625, 10, 624, 26, 622, 620, + 617, 616, 25, 614, 611, 610, 4, 607, 12, 606, + 9, 605, 7, 604, 603, 8, 594, 593, 592, 586, + 585, 580, 457, 55, 575, 570, 70, 42, 569, 34, + 565, 561, 546, 545, 11, } var yyR1 = [...]int{ - 0, 90, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 92, 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, @@ -1153,10 +1209,10 @@ var yyR1 = [...]int{ 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, 92, 92, 38, 38, 50, 50, 50, 50, 51, + 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, 91, 91, 17, 17, 16, + 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, @@ -1176,7 +1232,8 @@ var yyR1 = [...]int{ 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, 30, 30, 30, + 29, 29, 29, 91, 91, 91, 30, 30, 30, 90, + 90, } var yyR2 = [...]int{ @@ -1218,78 +1275,81 @@ var yyR2 = [...]int{ 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, 4, 2, + 1, 1, 3, 1, 3, 1, 1, 4, 2, 3, + 3, } var yyChk = [...]int{ - -1000, -90, -12, -8, -13, -18, -17, 154, 160, -32, + -1000, -92, -12, -8, -13, -18, -17, 154, 160, -32, -34, 97, 96, 99, 106, 110, 111, 115, 122, 76, 95, 90, -26, 124, 101, 103, 159, 116, 119, 112, 86, 113, -16, 128, -31, -33, -29, -27, -1, 83, - -28, 71, 58, 59, 49, 50, 55, 57, 162, 126, - 4, 5, 6, 7, 8, 60, 61, 62, 63, 64, - 65, 66, 67, -81, 13, 14, 16, 77, 78, -30, - 84, 85, 141, 142, 156, 138, 139, 140, 155, 137, - 149, 165, -89, -85, 88, 166, 135, 69, 94, -11, - -86, -87, -9, 157, -88, -10, 157, -9, 86, -15, - 162, -13, 154, 162, 162, -41, -26, 76, -41, -41, - -42, -43, -30, -44, -45, 88, -46, -47, -26, 159, - 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, 162, 162, - 162, 160, -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, - 162, -26, -29, -29, -26, -26, -26, -26, -26, 162, - -26, -26, 162, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, 93, 150, -82, -83, - 88, 151, 152, -82, 93, 160, -30, 162, -51, -53, - -52, -54, -26, 37, 134, 153, 153, -9, 157, -9, - 159, -14, 161, -13, -18, -17, -26, 97, -36, -37, - -26, -26, 159, 159, 159, 159, 9, 159, 9, 17, - 159, 9, -26, -26, -26, -26, -26, -26, -26, -26, + -28, -90, -88, 71, 58, 59, 49, 50, 55, 57, + 162, 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, 157, -9, 86, + -15, 162, -13, 154, 162, 162, -41, -26, 76, -41, + -41, -42, -43, -30, -44, -45, 88, -46, -47, -26, + 159, 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, 162, + 162, 162, 160, -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, 162, 133, -26, -29, -86, -87, 162, -89, -11, + -29, -26, -26, -26, -26, -26, 162, -26, -26, 162, -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, 159, - 159, 86, 86, 160, 162, -13, 162, 159, 31, -26, - 37, -26, -26, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, 163, -26, -26, 15, 150, -83, - 150, -83, 93, 69, 133, -26, 87, -29, 165, -26, - -51, 164, 9, 15, -29, 162, -7, 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, 100, 101, 102, - 103, 104, 105, 116, 117, 118, 119, 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, 86, 163, 162, 159, 9, 163, - -43, -45, -26, -47, 31, -26, -91, 9, 105, 163, - 9, 17, 161, 162, 160, -62, -26, -26, -15, -26, - 163, 163, 163, -26, -84, 86, 89, 50, 88, 86, - 161, 161, 69, 161, 161, 163, -52, -26, 37, 134, - -51, -35, -13, 31, -26, -36, -26, -39, 160, 31, - -26, 163, -49, -50, -29, 37, 134, 69, -58, -13, - 31, -57, -26, -59, -23, -24, -25, -19, -21, -22, - 30, -11, 135, 136, -62, 161, -63, -64, -71, 120, - -65, 123, -66, 81, 80, 79, 76, 77, 78, 163, - 163, 75, -13, 31, 164, 89, -26, -29, 162, 163, - -15, 163, 159, -40, 159, -40, 159, 159, 163, 15, - -29, 162, -51, -15, -61, 117, 118, 163, 9, -2, - 37, -22, 161, -67, -68, 88, 114, 113, -72, -11, - -66, -13, 31, 159, -15, 164, -51, 98, 159, -36, - 161, 108, 109, -40, 107, -40, -55, -13, 31, -50, - -51, 164, 104, 162, 160, -20, 31, -25, -3, 158, - 159, 9, 17, -69, -70, -7, -4, -73, 9, 159, - 160, -15, 161, 163, 159, 163, -26, -92, 31, 159, - 161, 159, 107, -15, 163, 163, 159, -60, -11, -15, - 160, -21, 88, -68, -26, 159, 9, 17, -7, -11, - 161, -74, -75, -76, -77, -79, -78, -11, -7, 154, - 86, -38, -13, 31, -92, -15, 159, 102, -55, 88, - 35, 161, -15, 17, -70, -26, 162, 161, -75, 159, - 159, 121, 105, 153, -15, -15, 159, 163, -11, 161, - -26, -23, -72, 86, -5, -66, -7, 100, 160, 163, - -7, 159, -15, -20, 161, -80, 159, 160, -15, 161, + -26, -26, -26, 153, 153, 93, 150, -82, -83, 88, + 151, 152, -82, 93, 160, -30, 162, -51, -53, -52, + -54, -26, 37, 134, -9, 157, -9, 159, -14, 161, + -13, -18, -17, -26, 97, -36, -37, -26, -26, 159, + 159, 159, 159, 9, 159, 9, 17, 159, 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, 159, 159, 86, 86, + 160, 162, -13, 162, 159, 31, -26, 37, -26, -26, + -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, + -26, -91, 86, 160, -30, 153, 153, -26, 163, -26, + -26, 15, -7, -30, 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, 100, 101, 102, 103, 104, 105, + 116, 117, 118, 119, 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, 162, + 86, 163, 162, 159, 9, 163, -43, -45, -26, -47, + 31, -26, -93, 9, 105, 163, 9, 17, 161, 162, + 160, -62, -26, -26, -15, -26, 163, -26, 163, 163, + 163, -26, -84, 86, 89, 50, 88, 86, 161, 161, + 69, 161, 161, 163, -52, -26, 37, 134, -51, -35, + -13, 31, -26, -36, -26, -39, 160, 31, -26, 163, + -49, -50, -29, 37, 134, 69, -58, -13, 31, -57, + -26, -59, -23, -24, -25, -19, -21, -22, 30, -11, + 135, 136, -62, 161, -63, -64, -71, 120, -65, 123, + -66, 81, 80, 79, 76, 77, 78, 163, 163, 75, + -13, 31, 161, 164, 89, -26, -29, 162, 163, -15, + 163, 159, -40, 159, -40, 159, 159, 163, 15, -29, + 162, -51, -15, -61, 117, 118, 163, 9, -2, 37, + -22, 161, -67, -68, 88, 114, 113, -72, -11, -66, + -13, 31, 159, -15, 164, -51, 98, 159, -36, 161, + 108, 109, -40, 107, -40, -55, -13, 31, -50, -51, + 164, 104, 162, 160, -20, 31, -25, -3, 158, 159, + 9, 17, -69, -70, -7, -4, -73, 9, 159, 160, + -15, 161, 163, 159, 163, -26, -94, 31, 159, 161, + 159, 107, -15, 163, 163, 159, -60, -11, -15, 160, + -21, 88, -68, -26, 159, 9, 17, -7, -11, 161, + -74, -75, -76, -77, -79, -78, -11, -7, 154, 86, + -38, -13, 31, -94, -15, 159, 102, -55, 88, 35, + 161, -15, 17, -70, -26, 162, 161, -75, 159, 159, + 121, 105, 153, -15, -15, 159, 163, -11, 161, -26, + -23, -72, 86, -5, -66, -7, 100, 160, 163, -7, + 159, -15, -20, 161, -80, 159, 160, -15, 161, } var yyDef = [...]int{ @@ -1297,70 +1357,72 @@ var yyDef = [...]int{ 97, 0, 0, 0, 0, 377, 377, 377, 0, 366, 0, 108, 0, 0, 0, 0, 114, 0, 0, 0, 78, 246, 0, 0, 132, 0, -2, 376, 189, 0, - 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 380, 381, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 326, 0, 328, 0, 191, 192, 379, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 0, 0, -2, 347, 381, 0, 0, 160, 374, -2, - 0, 0, 81, 0, 368, 80, 0, 0, 78, 0, - 0, 0, 0, 140, 0, 0, 378, 366, 0, 0, - 0, 173, 174, 0, 176, 177, 0, 180, 181, 109, + 0, 0, 0, 0, 0, 326, 0, 328, 0, 191, + 192, 379, 0, 0, -2, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 0, 0, 347, 386, 0, + -2, 0, 160, 374, 81, 0, 80, 0, 0, 78, + 0, 0, 0, 0, 140, 0, 0, 378, 366, 0, + 0, 0, 173, 174, 0, 176, 177, 0, 180, 181, + 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 91, 0, 0, 118, 0, 247, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 91, 0, 0, 118, 0, 247, 0, 190, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 274, 276, - 0, 261, 275, 277, 295, 296, 297, 298, 0, 0, - 313, 314, 0, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 327, 329, 331, 0, 343, 0, 350, - 352, 0, 0, 0, 0, 0, 383, 160, 0, 159, - 163, 161, 165, 0, 0, 0, 0, 82, 0, 83, - 89, 90, 95, 92, 93, 94, 0, 0, 0, 141, - 143, 0, 102, 103, 104, 105, 0, 106, 0, 0, - 107, 0, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, -2, - -2, -2, -2, -2, -2, -2, -2, -2, 0, 0, - 311, 185, 182, 184, 0, 0, 126, 0, 0, 116, - 117, 0, 0, 194, 0, 133, 0, 136, 91, 259, - 0, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 0, -2, 0, 0, 0, 342, 351, - 345, 348, 349, 0, 0, 0, 0, 0, 344, 0, - 0, 373, 160, 0, 167, 160, 364, 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, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 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, 365, 79, 0, 0, 140, 0, 0, - 172, 175, 178, 179, 0, 310, 0, 186, 0, 0, - 0, 0, 119, -2, 194, 223, 0, 0, 0, 260, - 0, 312, 315, 330, 0, 359, 360, 0, 362, 354, - 355, 356, 0, 358, 382, 372, 162, 164, 0, 0, - 0, 98, 138, 91, 0, 0, 142, 101, 148, 148, - 309, 0, 183, 0, 155, 0, 0, 160, 113, 128, - 91, 125, 127, 123, 0, 238, 240, 248, 245, 252, - 0, 254, 255, 256, 223, 188, 193, 0, 0, 0, - -2, 219, 225, 227, 228, 229, 230, 231, 232, 0, - 0, 0, 130, 91, 353, 361, 0, 166, 160, 169, - 0, 0, 140, 0, 148, 0, 148, 110, 0, 0, - 156, 160, 0, 0, 115, 0, 0, 257, 244, 250, - 249, 253, 187, 0, 234, 235, 0, 246, 0, 199, - 226, 131, 91, 137, 134, 0, 0, 0, 99, 0, - 144, 0, 0, 0, 0, 0, 111, 170, 91, 0, - 0, 158, 0, 0, 91, 0, 0, 241, 0, 251, - 195, 0, 0, 0, 221, 0, 0, 197, 0, 201, - 0, 135, 357, 168, 139, 0, 0, 91, 151, 152, - 145, 146, 0, 0, 0, 157, 129, 0, 121, 0, - 91, 258, 242, 233, 236, 196, 0, 0, 0, 200, - 202, 0, 204, 0, 0, 214, 0, 0, 213, 57, - -2, 100, 153, 91, 91, 150, 147, 0, 112, 0, - 0, 124, 0, 0, 220, 222, -2, 203, 205, 206, - 207, 0, 0, 0, 0, 149, 171, 0, 122, 237, - 243, 0, 208, 209, 210, 212, 215, 0, 91, 257, - 211, 154, 0, 0, 120, 198, 216, 91, 0, 217, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, + 276, 0, 0, 261, -2, 0, 0, 0, 371, 367, + -2, 295, 296, 297, 298, 0, 0, 313, 314, 0, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 327, 329, 331, 0, 0, 0, 343, 0, 350, 352, + 0, 0, 0, 0, 0, 388, 160, 0, 159, 163, + 161, 165, 0, 0, 82, 0, 83, 89, 90, 95, + 92, 93, 94, 0, 0, 0, 141, 143, 0, 102, + 103, 104, 105, 0, 106, 0, 0, 107, 0, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, -2, -2, -2, -2, + -2, -2, -2, -2, -2, 0, 0, 311, 185, 182, + -2, 0, 0, 126, 0, 0, 116, 117, 0, 0, + 194, 0, 133, 0, 136, 91, 259, 0, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 0, 382, 383, 0, 385, 0, 0, 0, -2, 0, + 0, 0, 364, 389, 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, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 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, + 365, 390, 342, 351, 345, 348, 349, 0, 0, 0, + 0, 369, 344, 0, 0, 373, 160, 0, -2, 160, + 79, 0, 0, 140, 0, 0, 172, 175, 178, 179, + 0, 310, 0, 186, 0, 0, 0, 0, 119, -2, + 194, 223, 0, 0, 0, 260, 0, 0, 370, 312, + 315, 330, 0, 359, 360, 0, 362, 354, 355, 356, + 0, 358, 387, 372, 162, 164, 0, 0, 0, 98, + 138, 91, 0, 0, 142, 101, 148, 148, 309, 0, + 183, 0, -2, 0, 0, 160, 113, 128, 91, 125, + 127, 123, 0, 238, 240, 248, 245, 252, 0, 254, + 255, 256, 223, 188, 193, 0, 0, 0, -2, 219, + 225, 227, 228, 229, 230, 231, 232, 0, 0, 0, + 130, 91, 384, 353, 361, 0, -2, 160, 169, 0, + 0, 140, 0, 148, 0, 148, 110, 0, 0, -2, + 160, 0, 0, 115, 0, 0, 257, 244, 250, 249, + 253, 187, 0, 234, 235, 0, 246, 0, 199, 226, + 131, 91, 137, 134, 0, 0, 0, 99, 0, 144, + 0, 0, 0, 0, 0, 111, 170, 91, 0, 0, + -2, 0, 0, 91, 0, 0, 241, 0, 251, 195, + 0, 0, 0, 221, 0, 0, 197, 0, 201, 0, + 135, 357, 168, 139, 0, 0, 91, 151, 152, 145, + 146, 0, 0, 0, 157, 129, 0, 121, 0, 91, + 258, 242, 233, 236, 196, 0, 0, 0, 200, 202, + 0, 204, 0, 0, 214, 0, 0, 213, 57, -2, + 100, 153, 91, 91, 150, 147, 0, 112, 0, 0, + 124, 0, 0, 220, 222, -2, 203, 205, 206, 207, + 0, 0, 0, 0, 149, 171, 0, 122, 237, 243, + 0, 208, 209, 210, 212, 215, 0, 91, 257, 211, + 154, 0, 0, 120, 198, 216, 91, 0, 217, } var yyTok1 = [...]int{ @@ -1738,589 +1800,589 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:288 + //line parser.y:290 { fmt.Println(yyDollar[1].node) } case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:292 + //line parser.y:294 { yyVAL.value = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:292 + //line parser.y:294 { yyVAL.value = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:292 + //line parser.y:294 { yyVAL.value = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:292 + //line parser.y:294 { yyVAL.value = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:292 + //line parser.y:294 { yyVAL.value = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:292 + //line parser.y:294 { yyVAL.value = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:292 + //line parser.y:294 { yyVAL.value = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:292 + //line parser.y:294 { yyVAL.value = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:293 + //line parser.y:295 { yyVAL.value = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:294 + //line parser.y:296 { yyVAL.value = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:295 + //line parser.y:297 { yyVAL.value = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:296 + //line parser.y:298 { yyVAL.value = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:299 { yyVAL.value = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:299 { yyVAL.value = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:299 { yyVAL.value = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:299 { yyVAL.value = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:299 { yyVAL.value = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:299 { yyVAL.value = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:299 { yyVAL.value = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:297 + //line parser.y:299 { yyVAL.value = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:300 { yyVAL.value = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:300 { yyVAL.value = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:300 { yyVAL.value = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:300 { yyVAL.value = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:300 { yyVAL.value = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:300 { yyVAL.value = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:300 { yyVAL.value = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:298 + //line parser.y:300 { yyVAL.value = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:302 + //line parser.y:304 { yyVAL.value = yyDollar[1].value } case 70: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:303 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:303 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:303 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:303 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:303 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:303 + //line parser.y:305 { yyVAL.value = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:307 + //line parser.y:309 { yyVAL.node = Node("identifier").attribute("value", yyDollar[1].token) } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:308 + //line parser.y:310 { yyVAL.node = Node("identifier").attribute("value", yyDollar[1].value) } case 78: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:312 + //line parser.y:314 { yyVAL.node = Node("NamespaceParts").append(Node(yyDollar[1].token)) } case 79: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:313 + //line parser.y:315 { yyVAL.node = yyDollar[1].node.append(Node(yyDollar[3].token)) } case 80: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:317 + //line parser.y:319 { yyVAL.node = yyDollar[1].node } case 81: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:321 + //line parser.y:323 { yyVAL.node = Node("Name").append(yyDollar[1].node) } case 82: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:322 + //line parser.y:324 { yyVAL.node = Node("Name").append(yyDollar[2].node).attribute("FullyQualified", "true") } case 83: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:323 + //line parser.y:325 { yyVAL.node = Node("Name").append(yyDollar[3].node).attribute("Relative", "true") } case 84: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:327 + //line parser.y:329 { yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } case 85: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:328 + //line parser.y:330 { yyVAL.node = Node("Statements") } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:332 + //line parser.y:334 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:333 + //line parser.y:335 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:334 + //line parser.y:336 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:335 + //line parser.y:337 { yyVAL.node = Node("Namespace").append(yyDollar[2].node) } case 90: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:339 + //line parser.y:341 { yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } case 91: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:340 + //line parser.y:342 { yyVAL.node = Node("stmt") } case 92: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:344 + //line parser.y:346 { yyVAL.node = yyDollar[1].node } case 93: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:345 + //line parser.y:347 { yyVAL.node = yyDollar[1].node } case 94: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:346 + //line parser.y:348 { yyVAL.node = yyDollar[1].node } case 95: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:349 + //line parser.y:351 { yyVAL.node = yyDollar[2].node } case 96: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:350 + //line parser.y:352 { yyVAL.node = yyDollar[1].node } case 97: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:351 + //line parser.y:353 { yyVAL.node = yyDollar[1].node } case 98: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:353 + //line parser.y:355 { yyVAL.node = Node("While"). append(Node("expr").append(yyDollar[3].node)). @@ -2328,7 +2390,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-7 : yypt+1] - //line parser.y:359 + //line parser.y:361 { yyVAL.node = Node("DoWhile"). append(Node("expr").append(yyDollar[5].node)). @@ -2336,7 +2398,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-9 : yypt+1] - //line parser.y:365 + //line parser.y:367 { yyVAL.node = Node("For"). append(Node("expr1").append(yyDollar[3].node)). @@ -2346,67 +2408,67 @@ yydefault: } case 101: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:372 + //line parser.y:374 { yyVAL.node = Node("Switch").append(Node("expr").append(yyDollar[3].node)).append(yyDollar[5].node) } case 102: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:373 + //line parser.y:375 { yyVAL.node = Node("Break").append(yyDollar[2].node) } case 103: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:374 + //line parser.y:376 { yyVAL.node = Node("Continue").append(yyDollar[2].node) } case 104: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:375 + //line parser.y:377 { yyVAL.node = Node("Return").append(yyDollar[2].node) } case 105: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:376 + //line parser.y:378 { yyVAL.node = yyDollar[2].node } case 106: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:377 + //line parser.y:379 { yyVAL.node = yyDollar[2].node } case 107: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:378 + //line parser.y:380 { yyVAL.node = yyDollar[2].node } case 108: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:379 + //line parser.y:381 { yyVAL.node = Node("Echo").append(Node("InlineHtml").attribute("value", yyDollar[1].token)) } case 109: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:380 + //line parser.y:382 { yyVAL.node = yyDollar[1].node } case 110: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:382 + //line parser.y:384 { yyVAL.node = Node("Unset").append(yyDollar[3].node) } case 111: yyDollar = yyS[yypt-7 : yypt+1] - //line parser.y:384 + //line parser.y:386 { yyVAL.node = Node("Foreach"). append(Node("expr").append(yyDollar[3].node)). @@ -2415,7 +2477,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-9 : yypt+1] - //line parser.y:391 + //line parser.y:393 { yyVAL.node = Node("Foreach"). append(Node("expr").append(yyDollar[3].node)). @@ -2425,19 +2487,19 @@ yydefault: } case 113: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:398 + //line parser.y:400 { yyVAL.node = Node("Declare").append(yyDollar[3].node).append(yyDollar[5].node) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:399 + //line parser.y:401 { yyVAL.node = Node("") } case 115: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:401 + //line parser.y:403 { yyVAL.node = Node("Try"). append(yyDollar[3].node). @@ -2446,307 +2508,307 @@ yydefault: } case 116: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:407 + //line parser.y:409 { yyVAL.node = Node("Throw").append(yyDollar[2].node) } case 117: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:408 + //line parser.y:410 { yyVAL.node = Node("GoTo").attribute("Label", yyDollar[2].token) } case 118: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:409 + //line parser.y:411 { yyVAL.node = Node("Label").attribute("name", yyDollar[1].token) } case 119: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:412 + //line parser.y:414 { yyVAL.node = Node("CatchList") } case 120: yyDollar = yyS[yypt-9 : yypt+1] - //line parser.y:414 + //line parser.y:416 { yyVAL.node = yyDollar[1].node.append(yyDollar[4].node).append(Node("Variable").attribute("name", yyDollar[5].token)).append(yyDollar[8].node) } case 121: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:417 + //line parser.y:419 { yyVAL.node = Node("CatchNameList").append(yyDollar[1].node) } case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:418 + //line parser.y:420 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 123: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:422 + //line parser.y:424 { yyVAL.node = Node("") } case 124: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:423 + //line parser.y:425 { yyVAL.node = Node("Finnaly").append(yyDollar[3].node) } case 125: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:427 + //line parser.y:429 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:428 + //line parser.y:430 { yyVAL.node = Node("ConstList").append(yyDollar[1].node) } case 127: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:432 + //line parser.y:434 { yyVAL.node = Node("Const").attribute("name", yyDollar[1].token).append(yyDollar[3].node) } case 128: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:436 + //line parser.y:438 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:437 + //line parser.y:439 { yyVAL.node = yyDollar[2].node } case 130: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:442 + //line parser.y:444 { yyVAL.node = Node("If").append(Node("expr").append(yyDollar[3].node)).append(Node("stmt").append(yyDollar[5].node)) } case 131: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:446 + //line parser.y:448 { yyVAL.node = yyDollar[1].node.append(Node("ElseIf").append(Node("expr").append(yyDollar[4].node)).append(Node("stmt").append(yyDollar[6].node))) } case 132: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:452 + //line parser.y:454 { yyVAL.node = yyDollar[1].node } case 133: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:454 + //line parser.y:456 { yyVAL.node = yyDollar[1].node.append(Node("Else").append(Node("stmt").append(yyDollar[3].node))) } case 134: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:461 + //line parser.y:463 { yyVAL.node = Node("AltIf").append(Node("expr").append(yyDollar[3].node)).append(Node("stmt").append(yyDollar[6].node)) } case 135: yyDollar = yyS[yypt-7 : yypt+1] - //line parser.y:465 + //line parser.y:467 { yyVAL.node = yyDollar[1].node.append(Node("AltElseIf").append(Node("expr").append(yyDollar[4].node)).append(Node("stmt").append(yyDollar[7].node))) } case 136: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:471 + //line parser.y:473 { yyVAL.node = yyDollar[1].node } case 137: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:473 + //line parser.y:475 { yyVAL.node = yyDollar[1].node.append(Node("AltElse").append(Node("stmt").append(yyDollar[4].node))) } case 138: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:479 + //line parser.y:481 { yyVAL.node = yyDollar[1].node } case 139: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:480 + //line parser.y:482 { yyVAL.node = yyDollar[2].node } case 140: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:484 + //line parser.y:486 { yyVAL.node = Node("") } case 141: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:485 + //line parser.y:487 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:488 + //line parser.y:490 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 143: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:489 + //line parser.y:491 { yyVAL.node = Node("ExpressionList").append(yyDollar[1].node) } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:493 + //line parser.y:495 { yyVAL.node = yyDollar[2].node } case 145: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:494 + //line parser.y:496 { yyVAL.node = yyDollar[3].node } case 146: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:495 + //line parser.y:497 { yyVAL.node = yyDollar[2].node } case 147: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:496 + //line parser.y:498 { yyVAL.node = yyDollar[3].node } case 148: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:500 + //line parser.y:502 { yyVAL.node = Node("CaseList") } case 149: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:502 + //line parser.y:504 { yyVAL.node = yyDollar[1].node.append(Node("Case").append(Node("expr").append(yyDollar[3].node)).append(yyDollar[5].node)) } case 150: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:506 + //line parser.y:508 { yyVAL.node = yyDollar[1].node.append(Node("Default").append(yyDollar[4].node)) } case 153: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:517 + //line parser.y:519 { yyVAL.node = yyDollar[1].node } case 154: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:518 + //line parser.y:520 { yyVAL.node = yyDollar[2].node } case 155: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:522 + //line parser.y:524 { yyVAL.node = yyDollar[1].node } case 156: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:523 + //line parser.y:525 { yyVAL.node = Node("Ref").append(yyDollar[2].node) } case 157: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:524 + //line parser.y:526 { yyVAL.node = Node("List").append(yyDollar[3].node) } case 158: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:525 + //line parser.y:527 { yyVAL.node = Node("ShortList").append(yyDollar[2].node) } case 159: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:529 + //line parser.y:531 { /* TODO: allow single trailing comma */ yyVAL.node = yyDollar[1].node } case 160: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:533 + //line parser.y:535 { yyVAL.node = Node("") } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:534 + //line parser.y:536 { yyVAL.node = yyDollar[1].node } case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:539 + //line parser.y:541 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 163: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:540 + //line parser.y:542 { yyVAL.node = Node("ArrayPairList").append(yyDollar[1].node) } case 164: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:544 + //line parser.y:546 { yyVAL.node = Node("ArrayElement").append(yyDollar[1].node).append(yyDollar[3].node) } case 165: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:545 + //line parser.y:547 { yyVAL.node = Node("ArrayElement").append(yyDollar[1].node) } case 166: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:546 + //line parser.y:548 { yyVAL.node = Node("ArrayElement").append(yyDollar[1].node).append(Node("Ref").append(yyDollar[4].node)) } case 167: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:547 + //line parser.y:549 { yyVAL.node = Node("ArrayElement").append(Node("Ref").append(yyDollar[2].node)) } case 168: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:549 + //line parser.y:551 { yyVAL.node = Node("ArrayElement"). append(yyDollar[1].node). @@ -2754,170 +2816,170 @@ yydefault: } case 169: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:555 + //line parser.y:557 { yyVAL.node = Node("ArrayElement"). append(Node("ArrayList").append(yyDollar[3].node)) } case 170: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:562 + //line parser.y:564 { yyVAL.node = yyDollar[1].node } case 171: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:563 + //line parser.y:565 { yyVAL.node = yyDollar[2].node } case 172: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:567 + //line parser.y:569 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 173: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:568 + //line parser.y:570 { yyVAL.node = Node("GlobalVarList").append(yyDollar[1].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:572 + //line parser.y:574 { yyVAL.node = yyDollar[1].node } case 175: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:576 + //line parser.y:578 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:577 + //line parser.y:579 { yyVAL.node = Node("StaticVarList").append(yyDollar[1].node) } case 177: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:581 + //line parser.y:583 { yyVAL.node = Node("StaticVariable").attribute("Name", yyDollar[1].token) } case 178: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:582 + //line parser.y:584 { yyVAL.node = Node("StaticVariable").attribute("Name", yyDollar[1].token).append(Node("expr").append(yyDollar[3].node)) } case 179: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:586 + //line parser.y:588 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 180: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:587 + //line parser.y:589 { yyVAL.node = Node("EchoList").append(yyDollar[1].node) } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:591 + //line parser.y:593 { yyVAL.node = Node("Echo").append(yyDollar[1].node) } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:595 + //line parser.y:597 { yyVAL.node = Node("UnsetVariablesList").append(yyDollar[1].node) } case 183: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:596 + //line parser.y:598 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 184: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:600 + //line parser.y:602 { yyVAL.node = yyDollar[1].node } case 187: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:610 + //line parser.y:612 { yyVAL.node = yyDollar[1].node.attribute("name", yyDollar[3].token).append(yyDollar[5].node) } case 188: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:611 + //line parser.y:613 { yyVAL.node = Node("Class").attribute("name", yyDollar[2].token).append(yyDollar[4].node) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:615 + //line parser.y:617 { yyVAL.node = Node("Class").attribute(yyDollar[1].value, "true") } case 190: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:616 + //line parser.y:618 { yyVAL.node = yyDollar[1].node.attribute(yyDollar[2].value, "true") } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:620 + //line parser.y:622 { yyVAL.value = "abstract" } case 192: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:621 + //line parser.y:623 { yyVAL.value = "final" } case 193: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:625 + //line parser.y:627 { yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } case 194: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:626 + //line parser.y:628 { yyVAL.node = Node("Stmt") } case 195: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:630 + //line parser.y:632 { yyVAL.node = yyDollar[2].node.append(yyDollar[1].node) } case 196: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:631 + //line parser.y:633 { yyVAL.node = yyDollar[3].node.append(yyDollar[1].node) } case 197: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:632 + //line parser.y:634 { yyVAL.node = Node("Use").append(yyDollar[2].node).append(yyDollar[3].node) } case 198: yyDollar = yyS[yypt-9 : yypt+1] - //line parser.y:635 + //line parser.y:637 { yyVAL.node = Node("Function"). append(yyDollar[1].node). @@ -2929,235 +2991,235 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:647 + //line parser.y:649 { yyVAL.node = Node("NameList").append(yyDollar[1].node) } case 200: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:648 + //line parser.y:650 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 201: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:652 + //line parser.y:654 { yyVAL.node = Node("") } case 202: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:653 + //line parser.y:655 { yyVAL.node = Node("") } case 203: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:654 + //line parser.y:656 { yyVAL.node = yyDollar[2].node } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:658 + //line parser.y:660 { yyVAL.node = Node("TraitAdaptionList").append(yyDollar[1].node) } case 205: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:659 + //line parser.y:661 { yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } case 206: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:663 + //line parser.y:665 { yyVAL.node = yyDollar[1].node } case 207: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:664 + //line parser.y:666 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:669 + //line parser.y:671 { yyVAL.node = Node("TraitPrecedence").append(yyDollar[1].node).append(yyDollar[3].node) } case 209: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:673 + //line parser.y:675 { yyVAL.node = yyDollar[1].node.append(Node("as").attribute("value", yyDollar[3].token)) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:675 + //line parser.y:677 { yyVAL.node = yyDollar[1].node.append(Node("as").append(Node("reservedNonModifiers"))) } case 211: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:677 + //line parser.y:679 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node).append(yyDollar[4].node) } case 212: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:678 + //line parser.y:680 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 213: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:681 + //line parser.y:683 { yyVAL.node = Node("TraitMethodRef").append(yyDollar[1].node) } case 214: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:682 + //line parser.y:684 { yyVAL.node = yyDollar[1].node } case 215: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:686 + //line parser.y:688 { yyVAL.node = Node("TraitMethodRef").append(yyDollar[1].node).append(yyDollar[3].node) } case 216: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:690 + //line parser.y:692 { yyVAL.node = Node("") } case 217: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:691 + //line parser.y:693 { yyVAL.node = yyDollar[2].node } case 218: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:695 + //line parser.y:697 { yyVAL.node = yyDollar[1].node } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:696 + //line parser.y:698 { yyVAL.node = Node("VarMemberModifier") } case 220: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:700 + //line parser.y:702 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:701 + //line parser.y:703 { yyVAL.node = Node("ConstList").append(yyDollar[1].node) } case 222: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:705 + //line parser.y:707 { yyVAL.node = Node("Const").append(yyDollar[3].node) } case 223: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:709 + //line parser.y:711 { yyVAL.node = Node("PublicMemberModifier") } case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:710 + //line parser.y:712 { yyVAL.node = yyDollar[1].node } case 225: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:713 + //line parser.y:715 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:714 + //line parser.y:716 { yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:717 + //line parser.y:719 { yyVAL.node = Node("PublicMemberModifier") } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:718 + //line parser.y:720 { yyVAL.node = Node("ProtectedMemberModifier") } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:719 + //line parser.y:721 { yyVAL.node = Node("PrivateMemberModifier") } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:720 + //line parser.y:722 { yyVAL.node = Node("StaticMemberModifier") } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:721 + //line parser.y:723 { yyVAL.node = Node("AbstractMemberModifier") } case 232: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:722 + //line parser.y:724 { yyVAL.node = Node("FinalMemberModifier") } case 233: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:726 + //line parser.y:728 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 234: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:727 + //line parser.y:729 { yyVAL.node = Node("PropertyList").append(yyDollar[1].node) } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:730 + //line parser.y:732 { yyVAL.node = Node("Property").attribute("name", yyDollar[1].token) } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:731 + //line parser.y:733 { yyVAL.node = Node("Property").attribute("name", yyDollar[1].token).append(Node("Default").append(yyDollar[3].node)) } case 237: yyDollar = yyS[yypt-10 : yypt+1] - //line parser.y:736 + //line parser.y:738 { yyVAL.node = Node("Function"). attribute("name", yyDollar[3].token). @@ -3168,31 +3230,31 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:747 + //line parser.y:749 { yyVAL.node = yyDollar[1].node } case 239: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:748 + //line parser.y:750 { yyVAL.node = Node("Parameter list") } case 240: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:751 + //line parser.y:753 { yyVAL.node = Node("Parameter list").append(yyDollar[1].node) } case 241: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:752 + //line parser.y:754 { yyVAL.node = yyDollar[1].node.append(yyDollar[3].node) } case 242: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:756 + //line parser.y:758 { yyVAL.node = Node("Parameter"). append(yyDollar[1].node). @@ -3202,7 +3264,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:764 + //line parser.y:766 { yyVAL.node = Node("Parameter"). append(yyDollar[1].node). @@ -3213,845 +3275,887 @@ yydefault: } case 244: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:775 + //line parser.y:777 { yyVAL.node = Node("No type") } case 245: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:776 + //line parser.y:778 { yyVAL.node = yyDollar[1].node } case 246: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:780 + //line parser.y:782 { yyVAL.value = "false" } case 247: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:781 + //line parser.y:783 { yyVAL.value = "true" } case 248: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:785 + //line parser.y:787 { yyVAL.value = "false" } case 249: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:786 + //line parser.y:788 { yyVAL.value = "true" } case 250: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:790 + //line parser.y:792 { yyVAL.value = "false" } case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:791 + //line parser.y:793 { yyVAL.value = "true" } case 252: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:795 + //line parser.y:797 { yyVAL.node = yyDollar[1].node } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:796 + //line parser.y:798 { yyVAL.node = yyDollar[2].node yyVAL.node.attribute("nullable", "true") } case 254: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:800 + //line parser.y:802 { yyVAL.node = yyDollar[1].node } case 255: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:801 + //line parser.y:803 { yyVAL.node = Node("array type") } case 256: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:802 + //line parser.y:804 { yyVAL.node = Node("callable type") } case 257: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:806 + //line parser.y:808 { yyVAL.node = Node("void") } case 258: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:807 + //line parser.y:809 { yyVAL.node = yyDollar[2].node } case 259: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:811 + //line parser.y:813 { yyVAL.node = Node("Assign").append(yyDollar[1].node).append(yyDollar[3].node) } case 260: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:812 + //line parser.y:814 { yyVAL.node = Node("AssignRef").append(yyDollar[1].node).append(yyDollar[4].node) } case 261: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:813 + //line parser.y:815 { yyVAL.node = Node("Clone").append(yyDollar[2].node) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:814 + //line parser.y:816 { yyVAL.node = Node("AssignAdd").append(yyDollar[1].node).append(yyDollar[3].node) } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:815 + //line parser.y:817 { yyVAL.node = Node("AssignSub").append(yyDollar[1].node).append(yyDollar[3].node) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:816 + //line parser.y:818 { yyVAL.node = Node("AssignMul").append(yyDollar[1].node).append(yyDollar[3].node) } case 265: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:817 + //line parser.y:819 { yyVAL.node = Node("AssignPow").append(yyDollar[1].node).append(yyDollar[3].node) } case 266: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:818 + //line parser.y:820 { yyVAL.node = Node("AssignDiv").append(yyDollar[1].node).append(yyDollar[3].node) } case 267: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:819 + //line parser.y:821 { yyVAL.node = Node("AssignConcat").append(yyDollar[1].node).append(yyDollar[3].node) } case 268: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:820 + //line parser.y:822 { yyVAL.node = Node("AssignMod").append(yyDollar[1].node).append(yyDollar[3].node) } case 269: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:821 + //line parser.y:823 { yyVAL.node = Node("AssignAnd").append(yyDollar[1].node).append(yyDollar[3].node) } case 270: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:822 + //line parser.y:824 { yyVAL.node = Node("AssignOr").append(yyDollar[1].node).append(yyDollar[3].node) } case 271: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:823 + //line parser.y:825 { yyVAL.node = Node("AssignXor").append(yyDollar[1].node).append(yyDollar[3].node) } case 272: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:824 + //line parser.y:826 { yyVAL.node = Node("AssignShiftLeft").append(yyDollar[1].node).append(yyDollar[3].node) } case 273: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:825 + //line parser.y:827 { yyVAL.node = Node("AssignShiftRight").append(yyDollar[1].node).append(yyDollar[3].node) } case 274: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:826 + //line parser.y:828 { yyVAL.node = Node("PostIncrement").append(yyDollar[1].node) } case 275: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:827 + //line parser.y:829 { yyVAL.node = Node("PreIncrement").append(yyDollar[2].node) } case 276: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:828 + //line parser.y:830 { yyVAL.node = Node("PostDecrement").append(yyDollar[1].node) } case 277: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:829 + //line parser.y:831 { yyVAL.node = Node("PreDecrement").append(yyDollar[2].node) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:830 + //line parser.y:832 { yyVAL.node = Node("Or").append(yyDollar[1].node).append(yyDollar[3].node) } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:831 + //line parser.y:833 { yyVAL.node = Node("And").append(yyDollar[1].node).append(yyDollar[3].node) } case 280: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:832 + //line parser.y:834 { yyVAL.node = Node("Or").append(yyDollar[1].node).append(yyDollar[3].node) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:833 + //line parser.y:835 { yyVAL.node = Node("And").append(yyDollar[1].node).append(yyDollar[3].node) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:834 + //line parser.y:836 { yyVAL.node = Node("Xor").append(yyDollar[1].node).append(yyDollar[3].node) } case 283: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:835 + //line parser.y:837 { yyVAL.node = Node("BitwiseOr").append(yyDollar[1].node).append(yyDollar[3].node) } case 284: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:836 + //line parser.y:838 { yyVAL.node = Node("BitwiseAnd").append(yyDollar[1].node).append(yyDollar[3].node) } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:837 + //line parser.y:839 { yyVAL.node = Node("BitwiseXor").append(yyDollar[1].node).append(yyDollar[3].node) } case 286: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:838 + //line parser.y:840 { yyVAL.node = Node("Concat").append(yyDollar[1].node).append(yyDollar[3].node) } case 287: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:839 + //line parser.y:841 { yyVAL.node = Node("Add").append(yyDollar[1].node).append(yyDollar[3].node) } case 288: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:840 + //line parser.y:842 { yyVAL.node = Node("Sub").append(yyDollar[1].node).append(yyDollar[3].node) } case 289: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:841 + //line parser.y:843 { yyVAL.node = Node("Mul").append(yyDollar[1].node).append(yyDollar[3].node) } case 290: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:842 + //line parser.y:844 { yyVAL.node = Node("Pow").append(yyDollar[1].node).append(yyDollar[3].node) } case 291: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:843 + //line parser.y:845 { yyVAL.node = Node("Div").append(yyDollar[1].node).append(yyDollar[3].node) } case 292: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:844 + //line parser.y:846 { yyVAL.node = Node("Mod").append(yyDollar[1].node).append(yyDollar[3].node) } case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:845 + //line parser.y:847 { yyVAL.node = Node("ShiftLeft").append(yyDollar[1].node).append(yyDollar[3].node) } case 294: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:846 + //line parser.y:848 { yyVAL.node = Node("ShiftRight").append(yyDollar[1].node).append(yyDollar[3].node) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:847 + //line parser.y:849 { yyVAL.node = Node("UnaryPlus").append(yyDollar[2].node) } case 296: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:848 + //line parser.y:850 { yyVAL.node = Node("UnaryMinus").append(yyDollar[2].node) } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:849 + //line parser.y:851 { yyVAL.node = Node("BooleanNot").append(yyDollar[2].node) } case 298: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:850 + //line parser.y:852 { yyVAL.node = Node("BitwiseNot").append(yyDollar[2].node) } case 299: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:851 + //line parser.y:853 { yyVAL.node = Node("Identical").append(yyDollar[1].node).append(yyDollar[3].node) } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:852 + //line parser.y:854 { yyVAL.node = Node("NotIdentical").append(yyDollar[1].node).append(yyDollar[3].node) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:853 + //line parser.y:855 { yyVAL.node = Node("Equal").append(yyDollar[1].node).append(yyDollar[3].node) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:854 + //line parser.y:856 { yyVAL.node = Node("NotEqual").append(yyDollar[1].node).append(yyDollar[3].node) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:855 + //line parser.y:857 { yyVAL.node = Node("Spaceship").append(yyDollar[1].node).append(yyDollar[3].node) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:856 + //line parser.y:858 { yyVAL.node = Node("Smaller").append(yyDollar[1].node).append(yyDollar[3].node) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:857 + //line parser.y:859 { yyVAL.node = Node("SmallerOrEqual").append(yyDollar[1].node).append(yyDollar[3].node) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:858 + //line parser.y:860 { yyVAL.node = Node("Greater").append(yyDollar[1].node).append(yyDollar[3].node) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:859 + //line parser.y:861 { yyVAL.node = Node("GreaterOrEqual").append(yyDollar[1].node).append(yyDollar[3].node) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:860 + //line parser.y:862 { yyVAL.node = yyDollar[2].node } case 309: yyDollar = yyS[yypt-5 : yypt+1] - //line parser.y:861 + //line parser.y:863 { yyVAL.node = Node("Ternary").append(yyDollar[1].node).append(yyDollar[3].node).append(yyDollar[5].node) } case 310: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:862 + //line parser.y:864 { yyVAL.node = Node("Ternary").append(yyDollar[1].node).append(yyDollar[4].node) } case 311: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:863 + //line parser.y:865 { yyVAL.node = Node("Coalesce").append(yyDollar[1].node).append(yyDollar[3].node) } case 312: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:864 + //line parser.y:866 { yyVAL.node = Node("Empty").append(yyDollar[3].node) } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:865 + //line parser.y:867 { yyVAL.node = Node("Include").append(yyDollar[2].node) } case 314: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:866 + //line parser.y:868 { yyVAL.node = Node("IncludeOnce").append(yyDollar[2].node) } case 315: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:867 + //line parser.y:869 { yyVAL.node = Node("Eval").append(yyDollar[3].node) } case 316: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:868 + //line parser.y:870 { yyVAL.node = Node("Require").append(yyDollar[2].node) } case 317: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:869 + //line parser.y:871 { yyVAL.node = Node("RequireOnce").append(yyDollar[2].node) } case 318: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:870 + //line parser.y:872 { yyVAL.node = Node("CastInt").append(yyDollar[2].node) } case 319: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:871 + //line parser.y:873 { yyVAL.node = Node("CastDouble").append(yyDollar[2].node) } case 320: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:872 + //line parser.y:874 { yyVAL.node = Node("CastString").append(yyDollar[2].node) } case 321: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:873 + //line parser.y:875 { yyVAL.node = Node("CastArray").append(yyDollar[2].node) } case 322: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:874 + //line parser.y:876 { yyVAL.node = Node("CastObject").append(yyDollar[2].node) } case 323: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:875 + //line parser.y:877 { yyVAL.node = Node("CastBool").append(yyDollar[2].node) } case 324: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:876 + //line parser.y:878 { yyVAL.node = Node("CastUnset").append(yyDollar[2].node) } case 325: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:877 + //line parser.y:879 { yyVAL.node = Node("Silence").append(yyDollar[2].node) } case 326: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:878 + //line parser.y:880 { yyVAL.node = yyDollar[1].node } case 327: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:879 + //line parser.y:881 { yyVAL.node = Node("Print").append(yyDollar[2].node) } case 328: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:880 + //line parser.y:882 { yyVAL.node = Node("Yield") } case 329: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:881 + //line parser.y:883 { yyVAL.node = Node("Yield").append(yyDollar[2].node) } case 330: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:882 + //line parser.y:884 { yyVAL.node = Node("Yield").append(yyDollar[2].node).append(yyDollar[4].node) } case 331: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:883 + //line parser.y:885 { yyVAL.node = Node("YieldFrom").append(yyDollar[2].node) } case 332: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:887 + //line parser.y:889 { yyVAL.node = Node("Scalar").append(Node("Lnumber").attribute("value", yyDollar[1].token)) } case 333: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:888 + //line parser.y:890 { yyVAL.node = Node("Scalar").append(Node("Dnumber").attribute("value", yyDollar[1].token)) } case 334: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:889 + //line parser.y:891 { yyVAL.node = Node("Scalar").append(Node("__LINE__")) } case 335: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:890 + //line parser.y:892 { yyVAL.node = Node("Scalar").append(Node("__FILE__")) } case 336: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:891 + //line parser.y:893 { yyVAL.node = Node("Scalar").append(Node("__DIR__")) } case 337: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:892 + //line parser.y:894 { yyVAL.node = Node("Scalar").append(Node("__TRAIT__")) } case 338: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:893 + //line parser.y:895 { yyVAL.node = Node("Scalar").append(Node("__METHOD__")) } case 339: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:894 + //line parser.y:896 { yyVAL.node = Node("Scalar").append(Node("__FUNCTION__")) } case 340: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:895 + //line parser.y:897 { yyVAL.node = Node("Scalar").append(Node("__NAMESPACE__")) } case 341: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:896 + //line parser.y:898 { yyVAL.node = Node("Scalar").append(Node("__CLASS__")) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:898 + //line parser.y:900 { yyVAL.node = Node("Scalar").append(Node("Heredoc").attribute("value", yyDollar[2].token)) } case 343: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:900 + //line parser.y:902 { yyVAL.node = Node("Scalar").append(Node("Heredoc")) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:901 + //line parser.y:903 { yyVAL.node = yyDollar[2].node } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:902 + //line parser.y:904 { yyVAL.node = yyDollar[2].node } case 346: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:903 + //line parser.y:905 { yyVAL.node = yyDollar[1].node } case 347: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:904 + //line parser.y:906 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:908 + //line parser.y:910 { yyVAL.node = yyDollar[1].node.append(yyDollar[2].node) } case 349: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:909 + //line parser.y:911 { yyVAL.node = yyDollar[1].node.append(Node("String").attribute("value", yyDollar[2].token)) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:910 + //line parser.y:912 { yyVAL.node = Node("EncapsList").append(yyDollar[1].node) } case 351: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:911 + //line parser.y:913 { yyVAL.node = Node("EncapsList").append(Node("String").attribute("value", yyDollar[1].token)).append(yyDollar[2].node) } case 352: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:914 + //line parser.y:916 { yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token) } case 353: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:915 + //line parser.y:917 { yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token).append(Node("offset").append(yyDollar[3].node)) } case 354: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:916 + //line parser.y:918 { yyVAL.node = Node("Variable").attribute("value", yyDollar[1].token).append(Node("property").attribute("value", yyDollar[3].token)) } case 355: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:917 + //line parser.y:919 { yyVAL.node = Node("Variable").append(Node("expr").append(yyDollar[2].node)) } case 356: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:918 + //line parser.y:920 { yyVAL.node = Node("Variable").attribute("value", yyDollar[2].token) } case 357: yyDollar = yyS[yypt-6 : yypt+1] - //line parser.y:920 + //line parser.y:922 { yyVAL.node = Node("Variable").attribute("value", yyDollar[2].token).append(Node("offset").append(yyDollar[4].node)) } case 358: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:921 + //line parser.y:923 { yyVAL.node = yyDollar[2].node } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:924 + //line parser.y:926 { yyVAL.node = Node("OffsetString").attribute("value", yyDollar[1].token) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:925 + //line parser.y:927 { yyVAL.node = Node("OffsetNumString").attribute("value", yyDollar[1].token) } case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:926 + //line parser.y:928 { yyVAL.node = Node("OffsetNegateNumString").attribute("value", yyDollar[2].token) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:927 + //line parser.y:929 { yyVAL.node = Node("OffsetVariable").attribute("value", yyDollar[1].token) } case 363: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:931 + //line parser.y:933 { yyVAL.node = Node("Const").append(yyDollar[1].node) } case 364: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:932 + //line parser.y:934 { yyVAL.node = Node("Const").append(yyDollar[1].node).append(yyDollar[3].node) } case 365: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:934 + //line parser.y:936 { yyVAL.node = Node("Const").append(yyDollar[1].node).append(yyDollar[3].node) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:938 + //line parser.y:940 { yyVAL.node = Node("Static") } case 367: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:939 + //line parser.y:941 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:943 + //line parser.y:945 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:947 + //line parser.y:949 { yyVAL.node = yyDollar[1].node } case 370: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:948 + //line parser.y:950 { yyVAL.node = yyDollar[2].node } case 371: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:949 + //line parser.y:951 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:953 + //line parser.y:955 { yyVAL.node = yyDollar[3].node } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line parser.y:954 + //line parser.y:956 { yyVAL.node = yyDollar[2].node } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:955 + //line parser.y:957 { yyVAL.node = Node("String").attribute("value", yyDollar[1].token) } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:959 + //line parser.y:961 { yyVAL.node = yyDollar[1].node } case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:960 + //line parser.y:962 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-0 : yypt+1] - //line parser.y:964 + //line parser.y:966 { yyVAL.node = Node("") } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:965 + //line parser.y:967 { yyVAL.node = yyDollar[1].node } case 379: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:969 + //line parser.y:971 { yyVAL.node = yyDollar[1].node } case 380: yyDollar = yyS[yypt-1 : yypt+1] - //line parser.y:973 + //line parser.y:975 { yyVAL.node = yyDollar[1].node } case 381: yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:976 + { + yyVAL.node = yyDollar[1].node + } + case 382: + yyDollar = yyS[yypt-3 : yypt+1] //line parser.y:977 + { + yyVAL.node = Node("Property").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 383: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:981 + { + yyVAL.node = Node("PropertyName").attribute("value", yyDollar[1].token) + } + case 384: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:982 + { + yyVAL.node = yyDollar[2].node + } + case 385: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:983 + { + yyVAL.node = yyDollar[1].node + } + case 386: + yyDollar = yyS[yypt-1 : yypt+1] + //line parser.y:987 { yyVAL.node = Node("Variable").attribute("name", yyDollar[1].token) } - case 382: + case 387: yyDollar = yyS[yypt-4 : yypt+1] - //line parser.y:978 + //line parser.y:988 { yyVAL.node = Node("Variable").append(yyDollar[3].node) } - case 383: + case 388: yyDollar = yyS[yypt-2 : yypt+1] - //line parser.y:979 + //line parser.y:989 { yyVAL.node = Node("Variable").append(yyDollar[2].node) } + case 389: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:994 + { + yyVAL.node = Node("StaticProp").append(yyDollar[1].node).append(yyDollar[3].node) + } + case 390: + yyDollar = yyS[yypt-3 : yypt+1] + //line parser.y:996 + { + yyVAL.node = Node("StaticProp").append(yyDollar[1].node).append(yyDollar[3].node) + } } goto yystack /* stack new state and value */ } diff --git a/parser.y b/parser.y index 00f879c..209297b 100644 --- a/parser.y +++ b/parser.y @@ -279,6 +279,8 @@ func (n node) attribute(key string, value string) node { %type variable_class_name %type dereferencable %type dereferencable_scalar +%type static_member +%type property_name %% @@ -970,7 +972,15 @@ callable_variable: ; variable: - callable_variable { $$ = $1; } + callable_variable { $$ = $1; } + | static_member { $$ = $1; } + | dereferencable T_OBJECT_OPERATOR property_name { $$ = Node("Property").append($1).append($3) } +; + +property_name: + T_STRING { $$ = Node("PropertyName").attribute("value", $1) } + | '{' expr '}' { $$ = $2; } + | simple_variable { $$ = $1 } ; simple_variable: @@ -979,15 +989,20 @@ simple_variable: | '$' simple_variable { $$ = Node("Variable").append($2); } ; +static_member: + class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable + { $$ = Node("StaticProp").append($1).append($3) } + | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable + { $$ = Node("StaticProp").append($1).append($3) } +; + ///////////////////////////////////////////////////////////////////////// %% const src = `{$test->test}; `