From 9f48ca2968110d37f56e69204decd4d4647251c2 Mon Sep 17 00:00:00 2001 From: vadim Date: Fri, 22 Dec 2017 14:07:38 +0200 Subject: [PATCH] fix break and foreach nodes --- node/stmt/break.go | 7 +- node/stmt/foreach.go | 6 +- parser/parser.go | 2716 +++++++++++++++++++++--------------------- parser/parser.y | 31 +- 4 files changed, 1389 insertions(+), 1371 deletions(-) diff --git a/node/stmt/break.go b/node/stmt/break.go index 01ce0f3..bdec67d 100644 --- a/node/stmt/break.go +++ b/node/stmt/break.go @@ -24,6 +24,9 @@ func NewBreak(token token.Token, expr node.Node) node.Node { func (n Break) Print(out io.Writer, indent string) { fmt.Fprintf(out, "\n%v%v [%d %d] %q", indent, n.Name, n.token.StartLine, n.token.EndLine, n.token.Value) - fmt.Fprintf(out, "\n%vexpr:", indent+" ") - n.expr.Print(out, indent+" ") + + if n.expr != nil { + fmt.Fprintf(out, "\n%vexpr:", indent+" ") + n.expr.Print(out, indent+" ") + } } diff --git a/node/stmt/foreach.go b/node/stmt/foreach.go index 3f9f746..79f5281 100644 --- a/node/stmt/foreach.go +++ b/node/stmt/foreach.go @@ -15,9 +15,10 @@ type Foreach struct { key node.Node variable node.Node stmt node.Node + byRef bool } -func NewForeach(token token.Token, expr node.Node, key node.Node, variable node.Node, stmt node.Node) node.Node { +func NewForeach(token token.Token, expr node.Node, key node.Node, variable node.Node, stmt node.Node, byRef bool) node.Node { return Foreach{ node.SimpleNode{Name: "Foreach", Attributes: make(map[string]string)}, token, @@ -25,6 +26,7 @@ func NewForeach(token token.Token, expr node.Node, key node.Node, variable node. key, variable, stmt, + byRef, } } @@ -42,7 +44,7 @@ func (n Foreach) Print(out io.Writer, indent string) { } if n.variable != nil { - fmt.Fprintf(out, "\n%vvariable:", indent+" ") + fmt.Fprintf(out, "\n%vvariable[byRef: %t]:", indent+" ", n.byRef) n.variable.Print(out, indent+" ") } diff --git a/parser/parser.go b/parser/parser.go index 94e7d5b..3c3c405 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -29,14 +29,20 @@ func Parse(src io.Reader, fName string) node.Node { return rootnode } -//line parser/parser.y:31 +type foreachVariable struct { + node node.Node + byRef bool +} + +//line parser/parser.y:36 type yySymType struct { - yys int - node node.Node - token token.Token - value string - list []node.Node - strings []string + yys int + node node.Node + token token.Token + value string + list []node.Node + strings []string + foreachVariable foreachVariable } const T_INCLUDE = 57346 @@ -351,7 +357,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line parser/parser.y:1159 +//line parser/parser.y:1166 //line yacctab:1 var yyExca = [...]int{ @@ -492,7 +498,6 @@ var yyExca = [...]int{ 164, 423, -2, 420, -1, 659, - 15, 181, 165, 181, -2, 419, -1, 681, @@ -504,815 +509,816 @@ var yyExca = [...]int{ 166, 458, -2, 419, -1, 733, - 15, 182, 165, 182, -2, 419, - -1, 786, - 15, 184, + -1, 785, + 165, 181, + -2, 419, + -1, 787, 165, 184, -2, 393, - -1, 857, + -1, 858, 105, 76, -2, 80, - -1, 880, + -1, 881, 165, 211, -2, 216, } const yyPrivate = 57344 -const yyLast = 7405 +const yyLast = 7406 var yyAct = [...]int{ - 27, 129, 790, 802, 585, 683, 434, 569, 836, 849, - 801, 781, 818, 749, 106, 125, 573, 658, 741, 583, + 27, 129, 791, 803, 585, 683, 434, 569, 837, 850, + 802, 781, 819, 749, 106, 125, 573, 658, 741, 583, 640, 137, 137, 137, 725, 714, 150, 311, 110, 639, 4, 320, 520, 571, 185, 530, 366, 563, 580, 114, 120, 574, 222, 403, 220, 131, 188, 79, 149, 376, 146, 315, 224, 227, 8, 83, 235, 236, 237, 238, 239, 43, 136, 240, 241, 242, 243, 244, 245, 246, 314, 249, 142, 7, 257, 258, 259, 313, 127, 312, - 6, 428, 5, 512, 139, 140, 511, 786, 272, 273, - 126, 275, 276, 707, 124, 732, 703, 253, 263, 268, - 617, 229, 229, 2, 604, 592, 875, 232, 104, 231, - 231, 81, 307, 408, 906, 228, 234, 116, 892, 104, - 827, 104, 826, 816, 808, 740, 729, 712, 710, 702, + 6, 428, 5, 512, 139, 140, 511, 787, 272, 273, + 126, 275, 276, 707, 124, 703, 617, 253, 263, 268, + 604, 229, 229, 2, 592, 408, 876, 232, 104, 231, + 231, 81, 307, 907, 893, 228, 234, 116, 828, 104, + 827, 104, 817, 809, 740, 731, 729, 712, 710, 702, 668, 317, 656, 644, 635, 322, 323, 305, 605, 691, - 289, 596, 291, 290, 373, 288, 914, 298, 913, 293, - 304, 292, 819, 335, 336, 337, 338, 339, 340, 341, + 289, 596, 291, 290, 373, 288, 915, 298, 914, 293, + 304, 292, 820, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 319, - 362, 364, 404, 368, 104, 133, 370, 105, 111, 880, - 284, 286, 331, 268, 282, 908, 265, 78, 105, 844, + 362, 364, 404, 368, 104, 133, 370, 105, 111, 881, + 284, 286, 331, 268, 282, 909, 265, 78, 105, 845, 105, 386, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 798, 793, 400, 137, 402, 294, - 224, 143, 374, 788, 382, 734, 775, 776, 701, 229, + 396, 397, 398, 399, 799, 794, 400, 137, 402, 294, + 224, 143, 374, 789, 382, 734, 775, 776, 701, 229, 285, 413, 568, 558, 224, 775, 776, 231, 374, 552, - 550, 412, 383, 367, 301, 731, 381, 287, 232, 137, + 550, 412, 383, 367, 301, 381, 334, 287, 232, 137, 687, 688, 689, 686, 685, 684, 423, 405, 116, 274, - 104, 137, 874, 105, 407, 429, 509, 514, 566, 271, - 334, 521, 522, 229, 369, 523, 330, 361, 414, 401, - 821, 231, 269, 527, 820, 328, 531, 411, 224, 774, - 265, 806, 270, 805, 680, 248, 219, 682, 215, 307, - 267, 301, 183, 283, 229, 182, 660, 181, 135, 549, - 134, 416, 231, 130, 112, 305, 891, 884, 425, 883, - 865, 828, 4, 427, 822, 815, 133, 772, 541, 111, - 544, 516, 533, 559, 759, 150, 858, 116, 662, 105, - 730, 728, 726, 724, 508, 232, 8, 721, 614, 418, - 419, 517, 553, 843, 518, 116, 538, 104, 535, 515, - 384, 653, 372, 109, 562, 7, 326, 325, 797, 324, - 295, 216, 6, 859, 5, 418, 269, 419, 419, 418, - 814, 557, 587, 560, 588, 811, 548, 589, 590, 578, - 809, 768, 582, 615, 905, 586, 542, 536, 539, 866, - 834, 556, 832, 661, 108, 789, 595, 764, 113, 746, + 104, 137, 875, 105, 407, 429, 509, 514, 566, 271, + 330, 521, 522, 229, 369, 523, 328, 361, 414, 401, + 822, 231, 269, 527, 821, 307, 531, 411, 224, 774, + 265, 807, 270, 806, 680, 248, 219, 682, 215, 301, + 267, 183, 182, 283, 229, 181, 660, 135, 134, 549, + 130, 416, 231, 112, 892, 305, 885, 884, 425, 866, + 829, 823, 4, 427, 816, 772, 133, 759, 541, 111, + 544, 516, 533, 559, 730, 150, 859, 116, 662, 105, + 728, 726, 724, 721, 508, 232, 8, 614, 553, 418, + 419, 517, 538, 844, 518, 116, 535, 104, 384, 515, + 372, 653, 326, 109, 562, 7, 325, 324, 798, 295, + 860, 216, 6, 815, 5, 418, 269, 419, 419, 418, + 812, 557, 587, 560, 588, 810, 548, 589, 590, 578, + 768, 615, 582, 906, 867, 586, 542, 536, 539, 835, + 333, 556, 833, 661, 108, 790, 595, 764, 113, 746, 224, 599, 115, 224, 674, 534, 406, 584, 534, 378, - 184, 745, 417, 133, 333, 579, 111, 616, 113, 288, - 329, 887, 619, 230, 534, 218, 105, 513, 534, 327, - 116, 613, 154, 156, 155, 687, 688, 689, 686, 685, - 684, 116, 598, 306, 262, 300, 254, 602, 303, 430, + 184, 745, 417, 133, 329, 579, 111, 616, 113, 288, + 327, 581, 619, 230, 534, 218, 105, 116, 534, 306, + 613, 888, 154, 156, 155, 687, 688, 689, 686, 685, + 684, 116, 598, 300, 513, 377, 254, 602, 303, 430, 510, 420, 179, 217, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 594, 178, 680, 716, 652, 682, 643, 687, 688, 689, 686, 685, 684, - 164, 687, 688, 689, 686, 685, 684, 116, 133, 637, - 288, 111, 618, 545, 261, 137, 623, 581, 303, 255, - 256, 377, 543, 380, 885, 421, 143, 526, 742, 738, - 739, 840, 116, 634, 122, 123, 145, 116, 680, 303, - 147, 682, 254, 303, 886, 680, 254, 303, 682, 119, - 318, 420, 704, 648, 322, 650, 876, 627, 750, 305, - 624, 641, 655, 794, 4, 145, 654, 632, 626, 575, - 638, 870, 544, 578, 544, 147, 667, 622, 121, 646, - 796, 576, 577, 578, 116, 649, 675, 755, 8, 422, - 578, 547, 620, 611, 664, 540, 586, 723, 699, 302, - 133, 657, 128, 111, 690, 255, 256, 7, 299, 255, - 256, 546, 229, 229, 6, 705, 5, 672, 673, 695, - 231, 231, 752, 751, 869, 116, 367, 659, 254, 521, - 823, 775, 776, 420, 531, 687, 688, 689, 686, 685, - 684, 254, 778, 775, 776, 164, 281, 534, 229, 722, + 164, 687, 688, 689, 686, 685, 684, 116, 543, 637, + 288, 303, 618, 545, 262, 137, 623, 261, 303, 255, + 256, 380, 299, 886, 742, 421, 143, 526, 738, 739, + 145, 841, 116, 634, 122, 123, 887, 116, 680, 303, + 147, 682, 318, 303, 704, 680, 871, 254, 682, 119, + 752, 751, 420, 648, 322, 650, 877, 627, 750, 305, + 624, 641, 655, 638, 4, 145, 654, 632, 626, 575, + 547, 795, 544, 578, 544, 147, 667, 622, 121, 646, + 797, 576, 577, 578, 116, 649, 675, 755, 8, 422, + 578, 540, 620, 611, 664, 302, 586, 723, 699, 870, + 133, 657, 128, 111, 690, 133, 609, 7, 111, 525, + 255, 256, 229, 229, 6, 705, 5, 672, 673, 695, + 231, 231, 824, 775, 776, 116, 367, 659, 254, 521, + 778, 775, 776, 277, 531, 687, 688, 689, 686, 685, + 684, 254, 607, 546, 610, 608, 420, 534, 229, 722, 76, 77, 375, 715, 194, 254, 231, 193, 719, 641, - 277, 711, 700, 224, 254, 709, 544, 736, 297, 713, - 252, 544, 544, 720, 576, 577, 192, 717, 727, 680, - 838, 186, 682, 260, 578, 753, 45, 754, 195, 196, - 525, 255, 256, 133, 747, 586, 111, 189, 760, 761, - 178, 190, 224, 743, 255, 256, 756, 735, 229, 116, - 671, 621, 164, 791, 406, 625, 231, 278, 255, 256, - 757, 676, 733, 758, 191, 322, 524, 255, 256, 609, - 385, 837, 715, 254, 641, 224, 122, 123, 251, 769, - 187, 698, 767, 845, 792, 544, 762, 544, 780, 839, - 784, 777, 765, 779, 691, 799, 773, 597, 770, 782, - 807, 197, 199, 198, 332, 607, 795, 610, 608, 308, - 766, 718, 669, 279, 280, 642, 817, 633, 628, 785, - 229, 564, 812, 824, 810, 825, 554, 118, 231, 409, - 1, 831, 681, 678, 659, 544, 255, 256, 679, 803, - 842, 379, 912, 830, 570, 813, 578, 846, 833, 529, - 855, 221, 841, 687, 688, 689, 686, 685, 684, 519, - 864, 854, 167, 168, 161, 162, 160, 163, 165, 166, - 863, 178, 835, 365, 872, 804, 873, 848, 868, 651, - 877, 144, 748, 164, 861, 141, 879, 321, 148, 800, - 666, 829, 855, 250, 782, 878, 37, 223, 882, 42, - 41, 15, 14, 854, 888, 889, 606, 266, 890, 87, - 88, 89, 90, 91, 48, 47, 107, 49, 73, 74, - 82, 75, 80, 71, 896, 893, 247, 61, 897, 264, - 898, 902, 901, 900, 60, 578, 853, 163, 165, 166, - 586, 178, 852, 851, 850, 907, 677, 909, 44, 910, - 572, 737, 663, 164, 55, 56, 915, 860, 645, 309, - 57, 117, 58, 53, 54, 62, 63, 64, 65, 66, - 67, 68, 70, 296, 51, 84, 52, 3, 433, 744, - 670, 24, 76, 77, 0, 0, 0, 69, 46, 92, - 93, 35, 0, 104, 0, 26, 0, 0, 0, 109, - 25, 17, 16, 0, 18, 0, 29, 0, 30, 0, - 0, 19, 0, 0, 0, 20, 21, 34, 36, 12, - 22, 32, 0, 0, 33, 11, 0, 23, 0, 28, - 85, 86, 9, 38, 39, 40, 0, 0, 0, 50, - 108, 0, 101, 97, 98, 99, 94, 95, 0, 0, - 0, 0, 0, 0, 102, 0, 0, 0, 0, 10, - 100, 96, 111, 0, 103, 72, 13, 636, 31, 59, - 0, 0, 105, 87, 88, 89, 90, 91, 0, 0, - 0, 0, 73, 74, 179, 75, 180, 152, 153, 157, - 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, - 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, - 178, 0, 0, 0, 0, 0, 0, 0, 55, 56, - 0, 0, 164, 0, 57, 0, 58, 53, 54, 62, - 63, 64, 65, 66, 67, 68, 70, 0, 51, 84, - 52, 0, 0, 0, 0, 24, 76, 77, 0, 0, - 0, 69, 46, 92, 93, 35, 0, 104, 0, 26, - 0, 0, 0, 109, 25, 17, 16, 0, 18, 0, - 29, 0, 30, 0, 0, 19, 0, 0, 0, 20, - 21, 34, 36, 12, 22, 32, 0, 0, 33, 11, - 0, 23, 0, 28, 85, 86, 9, 38, 39, 40, - 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, - 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, - 0, 0, 0, 10, 100, 96, 111, 0, 103, 72, - 13, 537, 31, 59, 0, 0, 105, 87, 88, 89, - 90, 91, 0, 0, 0, 0, 73, 74, 0, 75, - 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, - 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, - 163, 165, 166, 0, 178, 0, 0, 0, 0, 0, - 0, 0, 55, 56, 0, 0, 164, 0, 57, 0, - 58, 53, 54, 62, 63, 64, 65, 66, 67, 68, - 70, 0, 51, 84, 52, 0, 0, 0, 0, 24, - 76, 77, 0, 0, 0, 69, 46, 92, 93, 35, - 0, 104, 0, 26, 0, 0, 0, 109, 25, 17, - 16, 0, 18, 0, 29, 0, 30, 0, 0, 19, - 0, 0, 0, 20, 21, 34, 36, 12, 22, 32, - 0, 0, 33, 11, 0, 23, 0, 28, 85, 86, - 9, 38, 39, 40, 0, 0, 0, 50, 108, 0, - 101, 97, 98, 99, 94, 95, 161, 162, 160, 163, - 165, 166, 102, 178, 0, 0, 0, 10, 100, 96, - 111, 0, 103, 72, 13, 164, 31, 59, 0, 0, - 105, 87, 88, 89, 90, 91, 0, 0, 0, 0, - 73, 74, 0, 75, 153, 157, 159, 158, 171, 172, + 192, 711, 700, 224, 252, 709, 544, 736, 297, 713, + 186, 544, 544, 720, 576, 577, 839, 717, 727, 680, + 195, 196, 682, 260, 578, 753, 164, 754, 189, 671, + 278, 255, 256, 133, 747, 586, 111, 792, 760, 761, + 254, 190, 224, 743, 255, 256, 756, 735, 229, 116, + 758, 621, 178, 385, 406, 625, 231, 524, 255, 256, + 757, 676, 733, 254, 164, 322, 254, 838, 281, 187, + 698, 251, 715, 846, 641, 224, 122, 123, 840, 769, + 45, 800, 767, 597, 793, 544, 762, 544, 780, 332, + 784, 777, 765, 779, 308, 732, 773, 691, 770, 782, + 808, 766, 718, 255, 256, 642, 796, 279, 280, 687, + 688, 689, 686, 685, 684, 669, 818, 118, 191, 786, + 229, 633, 813, 825, 811, 826, 255, 256, 231, 255, + 256, 628, 832, 564, 785, 544, 197, 199, 198, 804, + 554, 843, 409, 1, 831, 814, 681, 578, 847, 834, + 678, 856, 679, 842, 379, 913, 570, 529, 221, 519, + 836, 865, 855, 167, 168, 161, 162, 160, 163, 165, + 166, 864, 178, 365, 805, 873, 849, 874, 651, 869, + 144, 878, 748, 141, 164, 862, 321, 880, 148, 801, + 666, 830, 250, 856, 37, 782, 879, 223, 42, 883, + 41, 15, 14, 606, 855, 889, 890, 266, 48, 891, + 87, 88, 89, 90, 91, 47, 107, 49, 82, 73, + 74, 80, 75, 71, 247, 897, 894, 61, 264, 898, + 60, 899, 903, 902, 901, 854, 578, 853, 163, 165, + 166, 586, 178, 852, 851, 677, 908, 44, 910, 572, + 911, 737, 663, 861, 164, 55, 56, 916, 645, 309, + 117, 57, 296, 58, 53, 54, 62, 63, 64, 65, + 66, 67, 68, 70, 3, 51, 84, 52, 433, 744, + 670, 0, 24, 76, 77, 0, 0, 0, 69, 46, + 92, 93, 35, 0, 104, 0, 26, 0, 0, 0, + 109, 25, 17, 16, 0, 18, 0, 29, 0, 30, + 0, 0, 19, 0, 0, 0, 20, 21, 34, 36, + 12, 22, 32, 0, 0, 33, 11, 0, 23, 0, + 28, 85, 86, 9, 38, 39, 40, 0, 0, 0, + 50, 108, 0, 101, 97, 98, 99, 94, 95, 0, + 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, + 10, 100, 96, 111, 0, 103, 72, 13, 636, 31, + 59, 0, 0, 105, 87, 88, 89, 90, 91, 0, + 0, 0, 0, 73, 74, 179, 75, 180, 152, 153, + 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, + 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, + 0, 178, 0, 0, 0, 0, 0, 0, 0, 55, + 56, 0, 0, 164, 0, 57, 0, 58, 53, 54, + 62, 63, 64, 65, 66, 67, 68, 70, 0, 51, + 84, 52, 0, 0, 0, 0, 24, 76, 77, 0, + 0, 0, 69, 46, 92, 93, 35, 0, 104, 0, + 26, 0, 0, 0, 109, 25, 17, 16, 0, 18, + 0, 29, 0, 30, 0, 0, 19, 0, 0, 0, + 20, 21, 34, 36, 12, 22, 32, 0, 0, 33, + 11, 0, 23, 0, 28, 85, 86, 9, 38, 39, + 40, 0, 0, 0, 50, 108, 0, 101, 97, 98, + 99, 94, 95, 0, 0, 0, 0, 0, 0, 102, + 0, 0, 0, 0, 10, 100, 96, 111, 0, 103, + 72, 13, 537, 31, 59, 0, 0, 105, 87, 88, + 89, 90, 91, 0, 0, 0, 0, 73, 74, 0, + 75, 180, 152, 153, 157, 159, 158, 171, 172, 169, + 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, + 160, 163, 165, 166, 0, 178, 0, 0, 0, 0, + 0, 0, 0, 55, 56, 0, 0, 164, 0, 57, + 0, 58, 53, 54, 62, 63, 64, 65, 66, 67, + 68, 70, 0, 51, 84, 52, 0, 0, 0, 0, + 24, 76, 77, 0, 0, 0, 69, 46, 92, 93, + 35, 0, 104, 0, 26, 0, 0, 0, 109, 25, + 17, 16, 0, 18, 0, 29, 0, 30, 0, 0, + 19, 0, 0, 0, 20, 21, 34, 36, 12, 22, + 32, 0, 0, 33, 11, 0, 23, 0, 28, 85, + 86, 9, 38, 39, 40, 0, 0, 0, 50, 108, + 0, 101, 97, 98, 99, 94, 95, 161, 162, 160, + 163, 165, 166, 102, 178, 0, 0, 0, 10, 100, + 96, 111, 0, 103, 72, 13, 164, 31, 59, 0, + 0, 105, 87, 88, 89, 90, 91, 0, 0, 0, + 0, 73, 74, 0, 75, 153, 157, 159, 158, 171, + 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, + 161, 162, 160, 163, 165, 166, 0, 178, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 56, 164, + 0, 0, 0, 57, 0, 58, 53, 54, 62, 63, + 64, 65, 66, 67, 68, 70, 0, 51, 84, 52, + 0, 0, 0, 0, 24, 76, 77, 0, 0, 0, + 69, 46, 92, 93, 35, 0, 104, 0, 26, 0, + 0, 0, 109, 25, 17, 16, 0, 18, 0, 29, + 0, 30, 0, 0, 19, 0, 0, 0, 20, 21, + 34, 36, 0, 22, 32, 0, 0, 33, 0, 0, + 23, 0, 28, 85, 86, 316, 38, 39, 40, 0, + 0, 0, 50, 108, 0, 101, 97, 98, 99, 94, + 95, 0, 0, 0, 0, 0, 0, 102, 0, 0, + 0, 0, 133, 100, 96, 111, 0, 103, 72, 13, + 917, 31, 59, 0, 0, 105, 87, 88, 89, 90, + 91, 0, 0, 0, 0, 73, 74, 0, 75, 0, + 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, + 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, + 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 56, 164, 0, 0, 0, 57, 0, 58, + 53, 54, 62, 63, 64, 65, 66, 67, 68, 70, + 0, 51, 84, 52, 0, 0, 0, 0, 24, 76, + 77, 0, 0, 0, 69, 46, 92, 93, 35, 0, + 104, 0, 26, 0, 0, 0, 109, 25, 17, 16, + 0, 18, 0, 29, 0, 30, 0, 0, 19, 0, + 0, 0, 20, 21, 34, 36, 0, 22, 32, 0, + 0, 33, 0, 0, 23, 0, 28, 85, 86, 316, + 38, 39, 40, 0, 0, 0, 50, 108, 0, 101, + 97, 98, 99, 94, 95, 0, 0, 0, 0, 0, + 0, 102, 0, 0, 0, 0, 133, 100, 96, 111, + 0, 103, 72, 13, 912, 31, 59, 0, 0, 105, + 87, 88, 89, 90, 91, 0, 0, 0, 0, 73, + 74, 0, 75, 0, 0, 159, 158, 171, 172, 169, + 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, + 160, 163, 165, 166, 0, 178, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 56, 164, 0, 0, + 0, 57, 0, 58, 53, 54, 62, 63, 64, 65, + 66, 67, 68, 70, 0, 51, 84, 52, 0, 0, + 0, 0, 24, 76, 77, 0, 0, 0, 69, 46, + 92, 93, 35, 0, 104, 0, 26, 0, 0, 0, + 109, 25, 17, 16, 0, 18, 0, 29, 0, 30, + 0, 0, 19, 0, 0, 0, 20, 21, 34, 36, + 0, 22, 32, 0, 0, 33, 0, 0, 23, 0, + 28, 85, 86, 316, 38, 39, 40, 0, 0, 0, + 50, 108, 0, 101, 97, 98, 99, 94, 95, 0, + 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, + 133, 100, 96, 111, 0, 103, 72, 13, 905, 31, + 59, 0, 0, 105, 87, 88, 89, 90, 91, 0, + 0, 0, 0, 73, 74, 0, 75, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 56, 164, 0, - 0, 0, 57, 0, 58, 53, 54, 62, 63, 64, - 65, 66, 67, 68, 70, 0, 51, 84, 52, 0, - 0, 0, 0, 24, 76, 77, 0, 0, 0, 69, - 46, 92, 93, 35, 0, 104, 0, 26, 0, 0, - 0, 109, 25, 17, 16, 0, 18, 0, 29, 0, - 30, 0, 0, 19, 0, 0, 0, 20, 21, 34, - 36, 0, 22, 32, 0, 0, 33, 0, 0, 23, - 0, 28, 85, 86, 316, 38, 39, 40, 0, 0, - 0, 50, 108, 0, 101, 97, 98, 99, 94, 95, - 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, - 0, 133, 100, 96, 111, 0, 103, 72, 13, 916, - 31, 59, 0, 0, 105, 87, 88, 89, 90, 91, - 0, 0, 0, 0, 73, 74, 0, 75, 0, 157, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 55, + 56, 0, 0, 0, 0, 57, 0, 58, 53, 54, + 62, 63, 64, 65, 66, 67, 68, 70, 0, 51, + 84, 52, 0, 0, 0, 0, 24, 76, 77, 0, + 0, 0, 69, 46, 92, 93, 35, 0, 104, 0, + 26, 0, 0, 0, 109, 25, 17, 16, 0, 18, + 904, 29, 0, 30, 0, 0, 19, 0, 0, 0, + 20, 21, 34, 36, 0, 22, 32, 0, 0, 33, + 0, 0, 23, 0, 28, 85, 86, 316, 38, 39, + 40, 0, 0, 0, 50, 108, 0, 101, 97, 98, + 99, 94, 95, 0, 0, 0, 0, 0, 0, 102, + 0, 0, 0, 0, 133, 100, 96, 111, 0, 103, + 72, 13, 0, 31, 59, 0, 0, 105, 87, 88, + 89, 90, 91, 0, 0, 0, 0, 73, 74, 0, + 75, 171, 172, 169, 170, 177, 173, 174, 175, 176, + 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 164, 0, 55, 56, 0, 0, 0, 0, 57, + 0, 58, 53, 54, 62, 63, 64, 65, 66, 67, + 68, 70, 0, 51, 84, 52, 0, 0, 0, 0, + 24, 76, 77, 0, 0, 0, 69, 46, 92, 93, + 35, 0, 104, 0, 26, 0, 0, 0, 109, 25, + 17, 16, 0, 18, 0, 29, 0, 30, 0, 0, + 19, 0, 0, 0, 20, 21, 34, 36, 0, 22, + 32, 0, 0, 33, 0, 0, 23, 0, 28, 85, + 86, 316, 38, 39, 40, 0, 0, 0, 50, 108, + 0, 101, 97, 98, 99, 94, 95, 0, 0, 0, + 0, 0, 0, 102, 0, 0, 0, 0, 133, 100, + 96, 111, 0, 103, 72, 13, 896, 31, 59, 0, + 0, 105, 87, 88, 89, 90, 91, 0, 0, 0, + 0, 73, 74, 0, 75, 173, 174, 175, 176, 167, + 168, 161, 162, 160, 163, 165, 166, 0, 178, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 164, 0, 0, 0, 0, 0, 0, 55, 56, 0, + 0, 0, 0, 57, 0, 58, 53, 54, 62, 63, + 64, 65, 66, 67, 68, 70, 0, 51, 84, 52, + 0, 0, 0, 0, 24, 76, 77, 0, 0, 0, + 69, 46, 92, 93, 35, 0, 104, 0, 26, 0, + 0, 0, 109, 25, 17, 16, 0, 18, 0, 29, + 0, 30, 0, 0, 19, 0, 0, 0, 20, 21, + 34, 36, 0, 22, 32, 0, 0, 33, 0, 0, + 23, 0, 28, 85, 86, 316, 38, 39, 40, 0, + 0, 0, 50, 108, 0, 101, 97, 98, 99, 94, + 95, 0, 0, 0, 0, 0, 0, 102, 0, 0, + 0, 0, 133, 100, 96, 111, 0, 103, 72, 13, + 895, 31, 59, 0, 0, 105, 87, 88, 89, 90, + 91, 0, 0, 0, 0, 73, 74, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 200, 201, 202, 203, 205, 206, 207, + 208, 209, 210, 211, 212, 204, 0, 0, 0, 0, + 0, 55, 56, 0, 0, 0, 0, 57, 0, 58, + 53, 54, 62, 63, 64, 65, 66, 67, 68, 70, + 0, 51, 84, 52, 213, 214, 0, 0, 24, 76, + 77, 0, 0, 0, 69, 46, 92, 93, 35, 0, + 104, 0, 26, 0, 0, 0, 109, 25, 17, 16, + 0, 18, 0, 29, 0, 30, 0, 0, 19, 0, + 0, 0, 20, 21, 34, 36, 0, 22, 32, 0, + 0, 33, 0, 0, 23, 0, 28, 85, 86, 316, + 38, 39, 40, 0, 0, 0, 50, 108, 0, 101, + 97, 98, 99, 94, 95, 0, 0, 0, 0, 0, + 0, 102, 0, 0, 0, 0, 133, 100, 96, 111, + 0, 103, 72, 13, 872, 31, 59, 0, 0, 105, + 87, 88, 89, 90, 91, 0, 0, 0, 0, 73, + 74, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 56, 0, 0, 0, + 0, 57, 0, 58, 53, 54, 62, 63, 64, 65, + 66, 67, 68, 70, 0, 51, 84, 52, 0, 0, + 0, 0, 24, 76, 77, 0, 0, 0, 69, 46, + 92, 93, 35, 0, 104, 0, 26, 0, 0, 0, + 109, 25, 17, 16, 0, 18, 0, 29, 868, 30, + 0, 0, 19, 0, 0, 0, 20, 21, 34, 36, + 0, 22, 32, 0, 0, 33, 0, 0, 23, 0, + 28, 85, 86, 316, 38, 39, 40, 0, 0, 0, + 50, 108, 0, 101, 97, 98, 99, 94, 95, 0, + 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, + 133, 100, 96, 111, 0, 103, 72, 13, 0, 31, + 59, 0, 0, 105, 87, 88, 89, 90, 91, 0, + 0, 0, 0, 73, 74, 0, 75, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 56, 0, 0, 0, 0, 57, 0, 58, 53, 54, + 62, 63, 64, 65, 66, 67, 68, 70, 0, 51, + 84, 52, 0, 0, 0, 0, 24, 76, 77, 0, + 0, 0, 69, 46, 92, 93, 35, 0, 104, 0, + 26, 0, 0, 0, 109, 25, 17, 16, 0, 18, + 0, 29, 0, 30, 788, 0, 19, 0, 0, 0, + 20, 21, 34, 36, 0, 22, 32, 0, 0, 33, + 0, 0, 23, 0, 28, 85, 86, 316, 38, 39, + 40, 0, 0, 0, 50, 108, 0, 101, 97, 98, + 99, 94, 95, 0, 0, 0, 0, 0, 0, 102, + 0, 0, 0, 0, 133, 100, 96, 111, 0, 103, + 72, 13, 0, 31, 59, 0, 0, 105, 87, 88, + 89, 90, 91, 0, 0, 0, 0, 73, 74, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 55, 56, 0, 0, 0, 0, 57, + 0, 58, 53, 54, 62, 63, 64, 65, 66, 67, + 68, 70, 0, 51, 84, 52, 0, 0, 0, 0, + 24, 76, 77, 0, 0, 0, 69, 46, 92, 93, + 35, 0, 104, 0, 26, 0, 0, 0, 109, 25, + 17, 16, 771, 18, 0, 29, 0, 30, 0, 0, + 19, 0, 0, 0, 20, 21, 34, 36, 0, 22, + 32, 0, 0, 33, 0, 0, 23, 0, 28, 85, + 86, 316, 38, 39, 40, 0, 0, 0, 50, 108, + 0, 101, 97, 98, 99, 94, 95, 0, 0, 0, + 0, 0, 0, 102, 0, 0, 0, 0, 133, 100, + 96, 111, 0, 103, 72, 13, 0, 31, 59, 0, + 0, 105, 87, 88, 89, 90, 91, 0, 0, 0, + 0, 73, 74, 0, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, + 0, 0, 0, 57, 0, 58, 53, 54, 62, 63, + 64, 65, 66, 67, 68, 70, 0, 51, 84, 52, + 0, 0, 0, 694, 24, 76, 77, 0, 0, 0, + 69, 46, 92, 93, 35, 0, 104, 0, 26, 0, + 0, 0, 109, 25, 17, 16, 0, 18, 0, 29, + 0, 30, 0, 0, 19, 0, 0, 0, 20, 21, + 34, 36, 0, 22, 32, 0, 0, 33, 0, 0, + 23, 0, 28, 85, 86, 316, 38, 39, 40, 0, + 0, 0, 50, 108, 0, 101, 97, 98, 99, 94, + 95, 0, 0, 0, 0, 0, 0, 102, 0, 0, + 0, 0, 133, 100, 96, 111, 0, 103, 72, 13, + 0, 31, 59, 0, 0, 105, 87, 88, 89, 90, + 91, 0, 0, 0, 0, 73, 74, 0, 75, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 56, 0, 0, 0, 0, 57, 0, 58, + 53, 54, 62, 63, 64, 65, 66, 67, 68, 70, + 0, 51, 84, 52, 0, 0, 0, 0, 24, 76, + 77, 0, 0, 0, 69, 46, 92, 93, 35, 0, + 104, 0, 26, 0, 0, 0, 109, 25, 17, 16, + 0, 18, 0, 29, 0, 30, 0, 0, 19, 0, + 0, 0, 20, 21, 34, 36, 0, 22, 32, 0, + 0, 33, 0, 0, 23, 0, 28, 85, 86, 316, + 38, 39, 40, 0, 0, 0, 50, 108, 0, 101, + 97, 98, 99, 94, 95, 0, 0, 0, 0, 0, + 0, 102, 0, 0, 0, 0, 133, 100, 96, 111, + 0, 103, 72, 13, 567, 31, 59, 0, 0, 105, + 87, 88, 89, 90, 91, 0, 0, 0, 0, 73, + 74, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 56, 0, 0, 0, + 0, 57, 0, 58, 53, 54, 62, 63, 64, 65, + 66, 67, 68, 70, 0, 51, 84, 52, 0, 0, + 0, 0, 24, 76, 77, 0, 0, 0, 69, 46, + 92, 93, 35, 0, 104, 0, 26, 0, 0, 0, + 109, 25, 17, 16, 0, 18, 0, 29, 0, 30, + 0, 0, 19, 0, 0, 0, 20, 21, 34, 36, + 0, 22, 32, 0, 0, 33, 0, 0, 23, 0, + 28, 85, 86, 316, 38, 39, 40, 0, 0, 0, + 50, 108, 0, 101, 97, 98, 99, 94, 95, 0, + 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, + 133, 100, 96, 111, 0, 103, 72, 13, 310, 31, + 59, 0, 0, 105, 87, 88, 89, 90, 91, 0, + 0, 0, 0, 73, 74, 0, 75, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 56, 0, 0, 0, 0, 57, 0, 58, 53, 54, + 62, 63, 64, 65, 66, 67, 68, 70, 0, 51, + 84, 52, 0, 0, 0, 0, 24, 76, 77, 0, + 0, 0, 69, 46, 92, 93, 35, 0, 104, 0, + 26, 0, 0, 0, 109, 25, 17, 16, 0, 18, + 0, 29, 0, 30, 0, 0, 19, 0, 0, 0, + 20, 21, 34, 36, 0, 22, 32, 0, 0, 33, + 0, 0, 23, 0, 28, 85, 86, 316, 38, 39, + 40, 0, 0, 0, 50, 108, 0, 101, 97, 98, + 99, 94, 95, 0, 0, 0, 0, 0, 0, 102, + 0, 0, 0, 0, 133, 100, 96, 111, 0, 103, + 72, 13, 0, 31, 59, 156, 155, 105, 441, 442, + 443, 444, 445, 0, 446, 447, 448, 484, 485, 0, + 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 56, 164, 0, 0, 0, 57, 0, 58, 53, - 54, 62, 63, 64, 65, 66, 67, 68, 70, 0, - 51, 84, 52, 0, 0, 0, 0, 24, 76, 77, - 0, 0, 0, 69, 46, 92, 93, 35, 0, 104, - 0, 26, 0, 0, 0, 109, 25, 17, 16, 0, - 18, 0, 29, 0, 30, 0, 0, 19, 0, 0, - 0, 20, 21, 34, 36, 0, 22, 32, 0, 0, - 33, 0, 0, 23, 0, 28, 85, 86, 316, 38, - 39, 40, 0, 0, 0, 50, 108, 0, 101, 97, - 98, 99, 94, 95, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 0, 0, 133, 100, 96, 111, 0, - 103, 72, 13, 911, 31, 59, 0, 0, 105, 87, - 88, 89, 90, 91, 0, 0, 0, 0, 73, 74, - 0, 75, 0, 0, 159, 158, 171, 172, 169, 170, - 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, - 163, 165, 166, 0, 178, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 164, 0, 0, 0, - 57, 0, 58, 53, 54, 62, 63, 64, 65, 66, - 67, 68, 70, 0, 51, 84, 52, 0, 0, 0, - 0, 24, 76, 77, 0, 0, 0, 69, 46, 92, - 93, 35, 0, 104, 0, 26, 0, 0, 0, 109, - 25, 17, 16, 0, 18, 0, 29, 0, 30, 0, - 0, 19, 0, 0, 0, 20, 21, 34, 36, 0, - 22, 32, 0, 0, 33, 0, 0, 23, 0, 28, - 85, 86, 316, 38, 39, 40, 0, 0, 0, 50, - 108, 0, 101, 97, 98, 99, 94, 95, 0, 0, - 0, 0, 0, 0, 102, 0, 0, 0, 0, 133, - 100, 96, 111, 0, 103, 72, 13, 904, 31, 59, - 0, 0, 105, 87, 88, 89, 90, 91, 0, 0, - 0, 0, 73, 74, 0, 75, 158, 171, 172, 169, - 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, - 160, 163, 165, 166, 0, 178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 164, 55, 56, - 0, 0, 0, 0, 57, 0, 58, 53, 54, 62, - 63, 64, 65, 66, 67, 68, 70, 0, 51, 84, - 52, 0, 0, 0, 0, 24, 76, 77, 0, 0, - 0, 69, 46, 92, 93, 35, 0, 104, 0, 26, - 0, 0, 0, 109, 25, 17, 16, 0, 18, 903, - 29, 0, 30, 0, 0, 19, 0, 0, 0, 20, - 21, 34, 36, 0, 22, 32, 0, 0, 33, 0, - 0, 23, 0, 28, 85, 86, 316, 38, 39, 40, - 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, - 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, - 0, 0, 0, 133, 100, 96, 111, 0, 103, 72, - 13, 0, 31, 59, 0, 0, 105, 87, 88, 89, - 90, 91, 0, 0, 0, 0, 73, 74, 0, 75, - 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, - 168, 161, 162, 160, 163, 165, 166, 0, 178, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 164, 0, 55, 56, 0, 0, 0, 0, 57, 0, - 58, 53, 54, 62, 63, 64, 65, 66, 67, 68, - 70, 0, 51, 84, 52, 0, 0, 0, 0, 24, - 76, 77, 0, 0, 0, 69, 46, 92, 93, 35, - 0, 104, 0, 26, 0, 0, 0, 109, 25, 17, - 16, 0, 18, 0, 29, 0, 30, 0, 0, 19, - 0, 0, 0, 20, 21, 34, 36, 0, 22, 32, - 0, 0, 33, 0, 0, 23, 0, 28, 85, 86, - 316, 38, 39, 40, 0, 0, 0, 50, 108, 0, - 101, 97, 98, 99, 94, 95, 0, 0, 0, 0, - 0, 0, 102, 0, 0, 0, 0, 133, 100, 96, - 111, 0, 103, 72, 13, 895, 31, 59, 0, 0, - 105, 87, 88, 89, 90, 91, 0, 0, 0, 0, - 73, 74, 0, 75, 173, 174, 175, 176, 167, 168, - 161, 162, 160, 163, 165, 166, 0, 178, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, - 0, 0, 0, 0, 0, 0, 55, 56, 0, 0, - 0, 0, 57, 0, 58, 53, 54, 62, 63, 64, - 65, 66, 67, 68, 70, 0, 51, 84, 52, 0, - 0, 0, 0, 24, 76, 77, 0, 0, 0, 69, - 46, 92, 93, 35, 0, 104, 0, 26, 0, 0, - 0, 109, 25, 17, 16, 0, 18, 0, 29, 0, - 30, 0, 0, 19, 0, 0, 0, 20, 21, 34, - 36, 0, 22, 32, 0, 0, 33, 0, 0, 23, - 0, 28, 85, 86, 316, 38, 39, 40, 0, 0, - 0, 50, 108, 0, 101, 97, 98, 99, 94, 95, - 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, - 0, 133, 100, 96, 111, 0, 103, 72, 13, 894, - 31, 59, 0, 0, 105, 87, 88, 89, 90, 91, - 0, 0, 0, 0, 73, 74, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 200, 201, 202, 203, 205, 206, 207, 208, - 209, 210, 211, 212, 204, 0, 0, 0, 0, 0, - 55, 56, 0, 0, 0, 0, 57, 0, 58, 53, - 54, 62, 63, 64, 65, 66, 67, 68, 70, 0, - 51, 84, 52, 213, 214, 0, 0, 24, 76, 77, - 0, 0, 0, 69, 46, 92, 93, 35, 0, 104, - 0, 26, 0, 0, 0, 109, 25, 17, 16, 0, - 18, 0, 29, 0, 30, 0, 0, 19, 0, 0, - 0, 20, 21, 34, 36, 0, 22, 32, 0, 0, - 33, 0, 0, 23, 0, 28, 85, 86, 316, 38, - 39, 40, 0, 0, 0, 50, 108, 0, 101, 97, - 98, 99, 94, 95, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 0, 0, 133, 100, 96, 111, 0, - 103, 72, 13, 871, 31, 59, 0, 0, 105, 87, - 88, 89, 90, 91, 0, 0, 0, 0, 73, 74, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 0, 0, 0, - 57, 0, 58, 53, 54, 62, 63, 64, 65, 66, - 67, 68, 70, 0, 51, 84, 52, 0, 0, 0, - 0, 24, 76, 77, 0, 0, 0, 69, 46, 92, - 93, 35, 0, 104, 0, 26, 0, 0, 0, 109, - 25, 17, 16, 0, 18, 0, 29, 867, 30, 0, - 0, 19, 0, 0, 0, 20, 21, 34, 36, 0, - 22, 32, 0, 0, 33, 0, 0, 23, 0, 28, - 85, 86, 316, 38, 39, 40, 0, 0, 0, 50, - 108, 0, 101, 97, 98, 99, 94, 95, 0, 0, - 0, 0, 0, 0, 102, 0, 0, 0, 0, 133, - 100, 96, 111, 0, 103, 72, 13, 0, 31, 59, - 0, 0, 105, 87, 88, 89, 90, 91, 0, 0, - 0, 0, 73, 74, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, - 0, 0, 0, 0, 57, 0, 58, 53, 54, 62, - 63, 64, 65, 66, 67, 68, 70, 0, 51, 84, - 52, 0, 0, 0, 0, 24, 76, 77, 0, 0, - 0, 69, 46, 92, 93, 35, 0, 104, 0, 26, - 0, 0, 0, 109, 25, 17, 16, 0, 18, 0, - 29, 0, 30, 787, 0, 19, 0, 0, 0, 20, - 21, 34, 36, 0, 22, 32, 0, 0, 33, 0, - 0, 23, 0, 28, 85, 86, 316, 38, 39, 40, - 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, - 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, - 0, 0, 0, 133, 100, 96, 111, 0, 103, 72, - 13, 0, 31, 59, 0, 0, 105, 87, 88, 89, - 90, 91, 0, 0, 0, 0, 73, 74, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 56, 0, 0, 0, 0, 57, 0, - 58, 53, 54, 62, 63, 64, 65, 66, 67, 68, - 70, 0, 51, 84, 52, 0, 0, 0, 0, 24, - 76, 77, 0, 0, 0, 69, 46, 92, 93, 35, - 0, 104, 0, 26, 0, 0, 0, 109, 25, 17, - 16, 771, 18, 0, 29, 0, 30, 0, 0, 19, - 0, 0, 0, 20, 21, 34, 36, 0, 22, 32, - 0, 0, 33, 0, 0, 23, 0, 28, 85, 86, - 316, 38, 39, 40, 0, 0, 0, 50, 108, 0, - 101, 97, 98, 99, 94, 95, 0, 0, 0, 0, - 0, 0, 102, 0, 0, 0, 0, 133, 100, 96, - 111, 0, 103, 72, 13, 0, 31, 59, 0, 0, - 105, 87, 88, 89, 90, 91, 0, 0, 0, 0, - 73, 74, 0, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 56, 0, 0, - 0, 0, 57, 0, 58, 53, 54, 62, 63, 64, - 65, 66, 67, 68, 70, 0, 51, 84, 52, 0, - 0, 0, 694, 24, 76, 77, 0, 0, 0, 69, - 46, 92, 93, 35, 0, 104, 0, 26, 0, 0, - 0, 109, 25, 17, 16, 0, 18, 0, 29, 0, - 30, 0, 0, 19, 0, 0, 0, 20, 21, 34, - 36, 0, 22, 32, 0, 0, 33, 0, 0, 23, - 0, 28, 85, 86, 316, 38, 39, 40, 0, 0, - 0, 50, 108, 0, 101, 97, 98, 99, 94, 95, - 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, - 0, 133, 100, 96, 111, 0, 103, 72, 13, 0, - 31, 59, 0, 0, 105, 87, 88, 89, 90, 91, - 0, 0, 0, 0, 73, 74, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 56, 0, 0, 0, 0, 57, 0, 58, 53, - 54, 62, 63, 64, 65, 66, 67, 68, 70, 0, - 51, 84, 52, 0, 0, 0, 0, 24, 76, 77, - 0, 0, 0, 69, 46, 92, 93, 35, 0, 104, - 0, 26, 0, 0, 0, 109, 25, 17, 16, 0, - 18, 0, 29, 0, 30, 0, 0, 19, 0, 0, - 0, 20, 21, 34, 36, 0, 22, 32, 0, 0, - 33, 0, 0, 23, 0, 28, 85, 86, 316, 38, - 39, 40, 0, 0, 0, 50, 108, 0, 101, 97, - 98, 99, 94, 95, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 0, 0, 133, 100, 96, 111, 0, - 103, 72, 13, 567, 31, 59, 0, 0, 105, 87, - 88, 89, 90, 91, 0, 0, 0, 0, 73, 74, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 0, 0, 0, - 57, 0, 58, 53, 54, 62, 63, 64, 65, 66, - 67, 68, 70, 0, 51, 84, 52, 0, 0, 0, - 0, 24, 76, 77, 0, 0, 0, 69, 46, 92, - 93, 35, 0, 104, 0, 26, 0, 0, 0, 109, - 25, 17, 16, 0, 18, 0, 29, 0, 30, 0, - 0, 19, 0, 0, 0, 20, 21, 34, 36, 0, - 22, 32, 0, 0, 33, 0, 0, 23, 0, 28, - 85, 86, 316, 38, 39, 40, 0, 0, 0, 50, - 108, 0, 101, 97, 98, 99, 94, 95, 0, 0, - 0, 0, 0, 0, 102, 0, 0, 0, 0, 133, - 100, 96, 111, 0, 103, 72, 13, 310, 31, 59, - 0, 0, 105, 87, 88, 89, 90, 91, 0, 0, - 0, 0, 73, 74, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, - 0, 0, 0, 0, 57, 0, 58, 53, 54, 62, - 63, 64, 65, 66, 67, 68, 70, 0, 51, 84, - 52, 0, 0, 0, 0, 24, 76, 77, 0, 0, - 0, 69, 46, 92, 93, 35, 0, 104, 0, 26, - 0, 0, 0, 109, 25, 17, 16, 0, 18, 0, - 29, 0, 30, 0, 0, 19, 0, 0, 0, 20, - 21, 34, 36, 0, 22, 32, 0, 0, 33, 0, - 0, 23, 0, 28, 85, 86, 316, 38, 39, 40, - 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, - 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, - 0, 0, 0, 133, 100, 96, 111, 0, 103, 72, - 13, 0, 31, 59, 156, 155, 105, 441, 442, 443, - 444, 445, 0, 446, 447, 448, 484, 485, 0, 0, - 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, - 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, - 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, - 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 450, 451, 0, 454, 455, 456, 435, - 436, 437, 438, 439, 440, 452, 453, 0, 0, 432, - 0, 104, 0, 0, 0, 0, 0, 0, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 487, - 488, 489, 490, 491, 479, 480, 481, 482, 483, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 0, 499, 497, 498, 494, 495, 0, 486, 492, 493, - 500, 501, 503, 502, 504, 505, 0, 0, 0, 0, - 0, 87, 88, 89, 90, 91, 0, 496, 507, 506, - 73, 74, 0, 75, 431, 0, 0, 0, 0, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 783, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 56, 0, 0, - 0, 0, 57, 0, 58, 53, 54, 62, 63, 64, - 65, 66, 67, 68, 70, 0, 51, 84, 52, 0, - 0, 0, 0, 24, 0, 0, 0, 0, 0, 69, - 46, 92, 93, 35, 0, 104, 0, 26, 0, 0, - 0, 109, 25, 17, 16, 0, 18, 0, 29, 0, - 30, 0, 0, 19, 0, 0, 0, 20, 21, 34, - 132, 0, 22, 32, 0, 0, 33, 0, 0, 23, - 0, 28, 85, 86, 0, 0, 0, 0, 0, 0, - 0, 50, 108, 0, 101, 97, 98, 99, 94, 95, - 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, - 0, 133, 100, 96, 111, 0, 103, 72, 13, 0, - 31, 59, 0, 0, 105, 87, 88, 89, 90, 91, - 0, 0, 0, 0, 73, 74, 0, 75, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 56, 0, 0, 0, 0, 57, 0, 58, 53, - 54, 62, 63, 64, 65, 66, 67, 68, 70, 0, - 51, 84, 52, 0, 0, 0, 0, 24, 0, 0, - 0, 0, 0, 69, 46, 92, 93, 35, 0, 104, - 0, 26, 0, 0, 0, 109, 25, 17, 16, 0, - 18, 0, 29, 0, 30, 0, 0, 19, 0, 0, - 0, 20, 21, 34, 132, 0, 22, 32, 0, 0, - 33, 0, 0, 23, 0, 28, 85, 86, 0, 0, - 0, 0, 0, 0, 0, 50, 108, 0, 101, 97, - 98, 99, 94, 95, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 0, 0, 133, 100, 96, 111, 0, - 103, 72, 13, 0, 31, 59, 0, 0, 105, 87, - 88, 89, 90, 91, 0, 0, 0, 0, 73, 74, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 696, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 0, 0, 0, - 57, 0, 58, 53, 54, 62, 63, 64, 65, 66, - 67, 68, 70, 0, 51, 84, 52, 0, 0, 0, - 0, 24, 0, 0, 0, 0, 0, 69, 46, 92, - 93, 35, 0, 104, 0, 26, 0, 0, 0, 109, - 25, 17, 16, 0, 18, 0, 29, 0, 30, 0, - 0, 19, 0, 0, 0, 20, 21, 34, 132, 0, - 22, 32, 0, 0, 33, 0, 0, 23, 0, 28, - 85, 86, 0, 0, 0, 0, 0, 0, 0, 50, - 108, 0, 101, 97, 98, 99, 94, 95, 0, 0, - 0, 0, 0, 0, 102, 0, 0, 0, 0, 133, - 100, 96, 111, 0, 103, 72, 13, 0, 31, 59, - 0, 0, 105, 87, 88, 89, 90, 91, 0, 0, - 0, 0, 73, 74, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 665, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, - 0, 0, 0, 0, 57, 0, 58, 53, 54, 62, - 63, 64, 65, 66, 67, 68, 70, 0, 51, 84, - 52, 0, 0, 0, 0, 24, 0, 0, 0, 0, - 0, 69, 46, 92, 93, 35, 0, 104, 0, 26, - 0, 0, 0, 109, 25, 17, 16, 0, 18, 0, - 29, 0, 30, 0, 0, 19, 0, 0, 0, 20, - 21, 34, 132, 0, 22, 32, 0, 0, 33, 0, - 0, 23, 0, 28, 85, 86, 0, 0, 0, 0, - 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, - 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, - 0, 0, 0, 133, 100, 96, 111, 0, 103, 72, - 13, 0, 31, 59, 0, 0, 105, 87, 88, 89, - 90, 91, 0, 0, 0, 0, 73, 74, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 55, 56, 0, 0, 0, 0, 57, 0, - 58, 53, 54, 62, 63, 64, 65, 66, 67, 68, - 70, 0, 51, 84, 52, 0, 0, 0, 0, 24, - 0, 0, 0, 0, 0, 69, 46, 92, 93, 35, - 0, 104, 0, 26, 0, 0, 0, 109, 25, 17, - 16, 0, 18, 0, 29, 0, 30, 0, 0, 19, - 0, 0, 0, 20, 21, 34, 132, 0, 22, 32, - 0, 0, 33, 0, 0, 23, 0, 28, 85, 86, - 0, 0, 0, 0, 0, 0, 0, 50, 108, 0, - 101, 97, 98, 99, 94, 95, 0, 0, 0, 0, - 0, 0, 102, 0, 0, 0, 0, 133, 100, 96, - 111, 0, 103, 72, 13, 155, 31, 59, 0, 0, - 105, 441, 442, 443, 444, 445, 0, 446, 447, 448, - 484, 485, 0, 179, 0, 180, 152, 153, 157, 159, - 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, - 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 164, 0, 449, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 450, 451, 0, - 454, 455, 456, 435, 436, 437, 438, 439, 440, 452, - 453, 0, 0, 857, 0, 0, 0, 0, 0, 0, - 0, 0, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 487, 488, 489, 490, 491, 479, 480, - 481, 482, 483, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 0, 499, 497, 498, 494, 495, - 0, 486, 492, 493, 500, 501, 503, 502, 504, 505, - 441, 442, 443, 444, 445, 426, 446, 447, 448, 484, - 485, 856, 507, 506, 111, 0, 0, 0, 0, 881, - 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, - 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, - 162, 160, 163, 165, 166, 0, 178, 0, 0, 0, - 0, 0, 449, 0, 0, 0, 0, 0, 164, 0, - 0, 0, 0, 0, 0, 0, 450, 451, 0, 454, - 455, 456, 435, 436, 437, 438, 439, 440, 452, 453, - 0, 0, 857, 0, 0, 0, 0, 0, 0, 0, - 0, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 487, 488, 489, 490, 491, 479, 480, 481, - 482, 483, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 0, 499, 497, 498, 494, 495, 0, - 486, 492, 493, 500, 501, 503, 502, 504, 505, 154, - 156, 155, 0, 0, 0, 87, 88, 89, 90, 91, - 856, 507, 506, 111, 73, 74, 0, 75, 847, 179, - 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, - 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, - 160, 163, 165, 166, 0, 178, 0, 0, 0, 0, - 55, 56, 0, 0, 0, 0, 57, 164, 58, 53, - 54, 62, 63, 64, 65, 66, 67, 68, 70, 0, - 51, 84, 52, 0, 0, 0, 0, 24, 0, 0, - 0, 0, 0, 69, 46, 92, 93, 35, 0, 104, - 0, 26, 0, 0, 0, 109, 25, 17, 16, 0, - 18, 0, 29, 0, 30, 0, 0, 19, 0, 0, - 0, 20, 21, 34, 132, 0, 22, 32, 0, 0, - 33, 0, 0, 23, 0, 28, 85, 86, 0, 0, - 0, 0, 0, 0, 0, 50, 108, 0, 101, 97, - 98, 99, 94, 95, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 0, 693, 133, 100, 96, 111, 0, - 103, 72, 13, 0, 31, 59, 0, 0, 105, 441, - 442, 443, 444, 445, 0, 446, 447, 448, 484, 485, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 450, 451, 0, 454, 455, - 456, 435, 436, 437, 438, 439, 440, 452, 453, 0, - 0, 432, 0, 0, 0, 0, 0, 0, 0, 0, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 487, 488, 489, 490, 491, 479, 480, 481, 482, - 483, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 0, 499, 497, 498, 494, 495, 0, 486, - 492, 493, 500, 501, 503, 502, 504, 505, 441, 442, - 443, 444, 445, 0, 446, 447, 448, 484, 485, 496, - 507, 506, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 449, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 451, 0, 454, 455, 456, - 687, 688, 689, 686, 685, 684, 452, 453, 0, 0, - 899, 0, 0, 0, 0, 0, 0, 0, 0, 457, + 435, 436, 437, 438, 439, 440, 452, 453, 0, 0, + 432, 0, 104, 0, 0, 0, 0, 0, 0, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 487, 488, 489, 490, 491, 479, 480, 481, 482, 483, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 499, 497, 498, 494, 495, 0, 486, 492, 493, 500, 501, 503, 502, 504, 505, 0, 0, 0, - 233, 0, 87, 88, 89, 90, 91, 232, 496, 507, - 506, 73, 74, 0, 75, 0, 0, 116, 0, 104, - 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, + 0, 0, 87, 88, 89, 90, 91, 0, 496, 507, + 506, 73, 74, 0, 75, 431, 0, 0, 0, 0, + 0, 105, 0, 0, 0, 0, 0, 0, 0, 783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, 0, 0, 0, 57, 0, 58, 53, 54, 62, 63, - 64, 65, 66, 67, 68, 70, 108, 51, 84, 52, - 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, - 69, 0, 92, 93, 116, 133, 104, 0, 111, 0, - 0, 0, 109, 0, 0, 230, 0, 0, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 85, 86, 0, 0, 0, 0, 0, + 64, 65, 66, 67, 68, 70, 0, 51, 84, 52, + 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, + 69, 46, 92, 93, 35, 0, 104, 0, 26, 0, + 0, 0, 109, 25, 17, 16, 0, 18, 0, 29, + 0, 30, 0, 0, 19, 0, 0, 0, 20, 21, + 34, 132, 0, 22, 32, 0, 0, 33, 0, 0, + 23, 0, 28, 85, 86, 0, 0, 0, 0, 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, 0, - 0, 0, 133, 100, 96, 111, 532, 103, 72, 0, - 0, 0, 59, 528, 0, 105, 87, 88, 89, 90, + 0, 0, 133, 100, 96, 111, 0, 103, 72, 13, + 0, 31, 59, 0, 0, 105, 87, 88, 89, 90, 91, 0, 0, 0, 0, 73, 74, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, + 0, 0, 0, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, 0, 0, 0, 57, 0, 58, 53, 54, 62, 63, 64, 65, 66, 67, 68, 70, - 0, 51, 84, 52, 0, 0, 0, 0, 138, 0, - 0, 0, 0, 0, 69, 0, 92, 93, 116, 0, - 104, 0, 0, 0, 0, 0, 109, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 0, 0, 87, 88, 89, 90, 91, 85, 86, 0, - 0, 73, 74, 0, 75, 0, 226, 108, 0, 101, + 0, 51, 84, 52, 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 69, 46, 92, 93, 35, 0, + 104, 0, 26, 0, 0, 0, 109, 25, 17, 16, + 0, 18, 0, 29, 0, 30, 0, 0, 19, 0, + 0, 0, 20, 21, 34, 132, 0, 22, 32, 0, + 0, 33, 0, 0, 23, 0, 28, 85, 86, 0, + 0, 0, 0, 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 133, 100, 96, 111, - 0, 103, 72, 0, 0, 0, 59, 55, 56, 105, - 0, 0, 0, 57, 0, 58, 53, 54, 62, 63, - 64, 65, 66, 67, 68, 70, 0, 51, 84, 52, - 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, - 69, 0, 92, 93, 116, 0, 104, 0, 0, 0, - 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, + 0, 103, 72, 13, 0, 31, 59, 0, 0, 105, + 87, 88, 89, 90, 91, 0, 0, 0, 0, 73, + 74, 0, 75, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 0, 0, 0, 0, 0, 0, 87, 88, - 89, 90, 91, 85, 86, 0, 0, 73, 74, 0, - 75, 0, 50, 108, 0, 101, 97, 98, 99, 94, - 95, 0, 0, 0, 0, 0, 0, 102, 0, 0, - 0, 600, 133, 100, 96, 111, 532, 103, 72, 0, - 0, 0, 59, 55, 56, 105, 0, 0, 0, 57, - 0, 58, 53, 54, 62, 63, 64, 65, 66, 67, - 68, 70, 0, 51, 84, 52, 0, 0, 0, 0, - 138, 0, 0, 0, 0, 0, 69, 0, 92, 93, - 116, 0, 104, 0, 0, 0, 0, 0, 109, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, - 0, 0, 0, 0, 87, 88, 89, 90, 91, 85, - 86, 0, 0, 73, 74, 0, 75, 0, 601, 108, - 0, 101, 97, 98, 99, 94, 95, 0, 0, 0, - 0, 0, 0, 102, 0, 0, 0, 0, 133, 100, - 96, 111, 0, 103, 72, 0, 0, 0, 59, 55, - 56, 105, 0, 0, 0, 57, 0, 58, 53, 54, - 62, 63, 64, 65, 66, 67, 68, 70, 0, 51, - 84, 52, 0, 0, 0, 0, 138, 0, 0, 0, - 0, 0, 69, 0, 92, 93, 116, 424, 104, 0, - 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, - 87, 88, 89, 90, 91, 85, 86, 0, 0, 73, - 74, 0, 75, 0, 50, 108, 0, 101, 97, 98, - 99, 94, 95, 0, 0, 0, 0, 0, 0, 102, - 0, 0, 0, 387, 133, 100, 96, 111, 0, 103, - 72, 0, 0, 0, 59, 55, 56, 105, 0, 0, + 0, 0, 0, 0, 0, 55, 56, 0, 0, 0, 0, 57, 0, 58, 53, 54, 62, 63, 64, 65, 66, 67, 68, 70, 0, 51, 84, 52, 0, 0, - 0, 0, 138, 0, 0, 0, 0, 0, 69, 0, - 92, 93, 116, 0, 104, 0, 0, 0, 0, 0, - 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 0, 0, 0, 0, 0, 0, 87, 88, 89, 90, - 91, 85, 86, 0, 0, 73, 74, 0, 75, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 69, 46, + 92, 93, 35, 0, 104, 0, 26, 0, 0, 0, + 109, 25, 17, 16, 0, 18, 0, 29, 0, 30, + 0, 0, 19, 0, 0, 0, 20, 21, 34, 132, + 0, 22, 32, 0, 0, 33, 0, 0, 23, 0, + 28, 85, 86, 0, 0, 0, 0, 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, 94, 95, 0, - 0, 0, 0, 363, 0, 102, 0, 0, 0, 0, - 133, 100, 96, 111, 0, 103, 72, 0, 0, 0, - 59, 55, 56, 105, 0, 0, 0, 57, 0, 58, - 53, 54, 62, 63, 64, 65, 66, 67, 68, 70, - 0, 51, 84, 52, 0, 0, 0, 0, 138, 0, - 0, 0, 0, 0, 69, 0, 92, 93, 116, 0, - 104, 0, 0, 0, 0, 0, 109, 0, 0, 0, + 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, + 133, 100, 96, 111, 0, 103, 72, 13, 0, 31, + 59, 0, 0, 105, 87, 88, 89, 90, 91, 0, + 0, 0, 0, 73, 74, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 0, 0, 87, 88, 89, 90, 91, 85, 86, 0, - 0, 73, 74, 0, 75, 0, 50, 108, 0, 101, - 97, 98, 99, 94, 95, 0, 0, 0, 0, 0, - 0, 102, 0, 0, 0, 0, 133, 100, 96, 111, - 0, 103, 72, 0, 0, 0, 59, 55, 56, 105, - 0, 0, 0, 57, 0, 58, 53, 54, 62, 63, - 64, 65, 66, 67, 68, 70, 0, 51, 84, 52, - 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, - 69, 0, 92, 93, 116, 0, 104, 0, 0, 0, - 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, + 0, 665, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, + 56, 0, 0, 0, 0, 57, 0, 58, 53, 54, + 62, 63, 64, 65, 66, 67, 68, 70, 0, 51, + 84, 52, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 69, 46, 92, 93, 35, 0, 104, 0, + 26, 0, 0, 0, 109, 25, 17, 16, 0, 18, + 0, 29, 0, 30, 0, 0, 19, 0, 0, 0, + 20, 21, 34, 132, 0, 22, 32, 0, 0, 33, + 0, 0, 23, 0, 28, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 50, 108, 0, 101, 97, 98, + 99, 94, 95, 0, 0, 0, 0, 0, 0, 102, + 0, 0, 0, 0, 133, 100, 96, 111, 0, 103, + 72, 13, 0, 31, 59, 0, 0, 105, 87, 88, + 89, 90, 91, 0, 0, 0, 0, 73, 74, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 85, 86, 0, 0, 0, 0, 0, - 0, 0, 50, 108, 0, 101, 97, 98, 99, 94, - 95, 0, 0, 0, 154, 156, 155, 102, 0, 0, - 0, 0, 133, 100, 96, 111, 0, 103, 72, 0, - 0, 0, 59, 0, 179, 105, 180, 152, 153, 157, + 0, 0, 0, 55, 56, 0, 0, 0, 0, 57, + 0, 58, 53, 54, 62, 63, 64, 65, 66, 67, + 68, 70, 0, 51, 84, 52, 0, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 69, 46, 92, 93, + 35, 0, 104, 0, 26, 0, 0, 0, 109, 25, + 17, 16, 0, 18, 0, 29, 0, 30, 0, 0, + 19, 0, 0, 0, 20, 21, 34, 132, 0, 22, + 32, 0, 0, 33, 0, 0, 23, 0, 28, 85, + 86, 0, 0, 0, 0, 0, 0, 0, 50, 108, + 0, 101, 97, 98, 99, 94, 95, 0, 0, 0, + 0, 0, 0, 102, 0, 0, 0, 0, 133, 100, + 96, 111, 0, 103, 72, 13, 155, 31, 59, 0, + 0, 105, 441, 442, 443, 444, 445, 0, 446, 447, + 448, 484, 485, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, - 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, - 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, + 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 164, 0, 449, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 450, 451, + 0, 454, 455, 456, 435, 436, 437, 438, 439, 440, + 452, 453, 0, 0, 858, 0, 0, 0, 0, 0, + 0, 0, 0, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 487, 488, 489, 490, 491, 479, + 480, 481, 482, 483, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 0, 499, 497, 498, 494, + 495, 0, 486, 492, 493, 500, 501, 503, 502, 504, + 505, 441, 442, 443, 444, 445, 426, 446, 447, 448, + 484, 485, 857, 507, 506, 111, 0, 0, 0, 0, + 882, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, - 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 164, - 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, - 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, - 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, - 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, - 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, - 763, 0, 0, 0, 0, 179, 0, 180, 152, 153, + 161, 162, 160, 163, 165, 166, 0, 178, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 164, + 0, 0, 0, 0, 0, 0, 0, 450, 451, 0, + 454, 455, 456, 435, 436, 437, 438, 439, 440, 452, + 453, 0, 0, 858, 0, 0, 0, 0, 0, 0, + 0, 0, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 487, 488, 489, 490, 491, 479, 480, + 481, 482, 483, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 0, 499, 497, 498, 494, 495, + 0, 486, 492, 493, 500, 501, 503, 502, 504, 505, + 154, 156, 155, 0, 0, 0, 87, 88, 89, 90, + 91, 857, 507, 506, 111, 73, 74, 0, 75, 848, + 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, + 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, + 162, 160, 163, 165, 166, 0, 178, 0, 0, 0, + 0, 55, 56, 0, 0, 0, 0, 57, 164, 58, + 53, 54, 62, 63, 64, 65, 66, 67, 68, 70, + 0, 51, 84, 52, 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 69, 46, 92, 93, 35, 0, + 104, 0, 26, 0, 0, 0, 109, 25, 17, 16, + 0, 18, 0, 29, 0, 30, 0, 0, 19, 0, + 0, 0, 20, 21, 34, 132, 0, 22, 32, 0, + 0, 33, 0, 0, 23, 0, 28, 85, 86, 0, + 0, 0, 0, 0, 0, 0, 50, 108, 0, 101, + 97, 98, 99, 94, 95, 0, 0, 0, 0, 0, + 0, 102, 0, 0, 0, 693, 133, 100, 96, 111, + 0, 103, 72, 13, 0, 31, 59, 0, 0, 105, + 441, 442, 443, 444, 445, 0, 446, 447, 448, 484, + 485, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 450, 451, 0, 454, + 455, 456, 435, 436, 437, 438, 439, 440, 452, 453, + 0, 0, 432, 0, 0, 0, 0, 0, 0, 0, + 0, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 487, 488, 489, 490, 491, 479, 480, 481, + 482, 483, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 0, 499, 497, 498, 494, 495, 0, + 486, 492, 493, 500, 501, 503, 502, 504, 505, 441, + 442, 443, 444, 445, 0, 446, 447, 448, 484, 485, + 496, 507, 506, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 449, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 450, 451, 0, 454, 455, + 456, 687, 688, 689, 686, 685, 684, 452, 453, 0, + 0, 900, 0, 0, 0, 0, 0, 0, 0, 0, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 487, 488, 489, 490, 491, 479, 480, 481, 482, + 483, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 0, 499, 497, 498, 494, 495, 0, 486, + 492, 493, 500, 501, 503, 502, 504, 505, 0, 0, + 0, 233, 0, 87, 88, 89, 90, 91, 232, 496, + 507, 506, 73, 74, 0, 75, 0, 0, 116, 0, + 104, 0, 0, 0, 0, 0, 109, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, + 0, 0, 0, 0, 57, 0, 58, 53, 54, 62, + 63, 64, 65, 66, 67, 68, 70, 108, 51, 84, + 52, 0, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 69, 0, 92, 93, 116, 133, 104, 0, 111, + 0, 0, 0, 109, 0, 0, 230, 0, 0, 105, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 86, 0, 0, 0, 0, + 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, + 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, + 0, 0, 0, 133, 100, 96, 111, 532, 103, 72, + 0, 0, 0, 59, 528, 0, 105, 87, 88, 89, + 90, 91, 0, 0, 0, 0, 73, 74, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 56, 0, 0, 0, 0, 57, 0, + 58, 53, 54, 62, 63, 64, 65, 66, 67, 68, + 70, 0, 51, 84, 52, 0, 0, 0, 0, 138, + 0, 0, 0, 0, 0, 69, 0, 92, 93, 116, + 0, 104, 0, 0, 0, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, + 0, 0, 0, 87, 88, 89, 90, 91, 85, 86, + 0, 0, 73, 74, 0, 75, 0, 226, 108, 0, + 101, 97, 98, 99, 94, 95, 0, 0, 0, 0, + 0, 0, 102, 0, 0, 0, 0, 133, 100, 96, + 111, 0, 103, 72, 0, 0, 0, 59, 55, 56, + 105, 0, 0, 0, 57, 0, 58, 53, 54, 62, + 63, 64, 65, 66, 67, 68, 70, 0, 51, 84, + 52, 0, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 69, 0, 92, 93, 116, 0, 104, 0, 0, + 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 87, + 88, 89, 90, 91, 85, 86, 0, 0, 73, 74, + 0, 75, 0, 50, 108, 0, 101, 97, 98, 99, + 94, 95, 0, 0, 0, 0, 0, 0, 102, 0, + 0, 0, 600, 133, 100, 96, 111, 532, 103, 72, + 0, 0, 0, 59, 55, 56, 105, 0, 0, 0, + 57, 0, 58, 53, 54, 62, 63, 64, 65, 66, + 67, 68, 70, 0, 51, 84, 52, 0, 0, 0, + 0, 138, 0, 0, 0, 0, 0, 69, 0, 92, + 93, 116, 0, 104, 0, 0, 0, 0, 0, 109, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, + 0, 0, 0, 0, 0, 87, 88, 89, 90, 91, + 85, 86, 0, 0, 73, 74, 0, 75, 0, 601, + 108, 0, 101, 97, 98, 99, 94, 95, 0, 0, + 0, 0, 0, 0, 102, 0, 0, 0, 0, 133, + 100, 96, 111, 0, 103, 72, 0, 0, 0, 59, + 55, 56, 105, 0, 0, 0, 57, 0, 58, 53, + 54, 62, 63, 64, 65, 66, 67, 68, 70, 0, + 51, 84, 52, 0, 0, 0, 0, 138, 0, 0, + 0, 0, 0, 69, 0, 92, 93, 116, 424, 104, + 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, + 0, 87, 88, 89, 90, 91, 85, 86, 0, 0, + 73, 74, 0, 75, 0, 50, 108, 0, 101, 97, + 98, 99, 94, 95, 0, 0, 0, 0, 0, 0, + 102, 0, 0, 0, 387, 133, 100, 96, 111, 0, + 103, 72, 0, 0, 0, 59, 55, 56, 105, 0, + 0, 0, 57, 0, 58, 53, 54, 62, 63, 64, + 65, 66, 67, 68, 70, 0, 51, 84, 52, 0, + 0, 0, 0, 138, 0, 0, 0, 0, 0, 69, + 0, 92, 93, 116, 0, 104, 0, 0, 0, 0, + 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 132, 0, 0, 0, 0, 0, 0, 87, 88, 89, + 90, 91, 85, 86, 0, 0, 73, 74, 0, 75, + 0, 50, 108, 0, 101, 97, 98, 99, 94, 95, + 0, 0, 0, 0, 363, 0, 102, 0, 0, 0, + 0, 133, 100, 96, 111, 0, 103, 72, 0, 0, + 0, 59, 55, 56, 105, 0, 0, 0, 57, 0, + 58, 53, 54, 62, 63, 64, 65, 66, 67, 68, + 70, 0, 51, 84, 52, 0, 0, 0, 0, 138, + 0, 0, 0, 0, 0, 69, 0, 92, 93, 116, + 0, 104, 0, 0, 0, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, + 0, 0, 0, 87, 88, 89, 90, 91, 85, 86, + 0, 0, 73, 74, 0, 75, 0, 50, 108, 0, + 101, 97, 98, 99, 94, 95, 0, 0, 0, 0, + 0, 0, 102, 0, 0, 0, 0, 133, 100, 96, + 111, 0, 103, 72, 0, 0, 0, 59, 55, 56, + 105, 0, 0, 0, 57, 0, 58, 53, 54, 62, + 63, 64, 65, 66, 67, 68, 70, 0, 51, 84, + 52, 0, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 69, 0, 92, 93, 116, 0, 104, 0, 0, + 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 86, 0, 0, 0, 0, + 0, 0, 0, 50, 108, 0, 101, 97, 98, 99, + 94, 95, 0, 0, 0, 154, 156, 155, 102, 0, + 0, 0, 0, 133, 100, 96, 111, 0, 103, 72, + 0, 0, 0, 59, 0, 179, 105, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 164, 0, 0, 692, 0, 0, 0, + 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 164, 0, 0, 630, 0, 0, 0, 0, 0, 179, + 164, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, - 629, 0, 0, 0, 0, 0, 179, 0, 180, 152, + 0, 763, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 164, 0, 0, 603, 0, 0, + 0, 0, 0, 0, 164, 0, 0, 692, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 164, 0, 0, 591, 0, 0, 0, 0, 0, + 0, 164, 0, 0, 630, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, - 0, 555, 0, 0, 0, 0, 0, 179, 819, 180, + 0, 629, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, - 0, 0, 0, 0, 0, 164, 0, 0, 551, 0, + 0, 0, 0, 0, 0, 164, 0, 0, 603, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 164, 0, 0, 415, 0, 0, 0, 0, + 0, 0, 164, 0, 0, 591, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, 0, 0, 164, - 820, 0, 0, 0, 0, 0, 0, 0, 179, 0, + 0, 0, 555, 0, 0, 0, 0, 0, 179, 820, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, - 0, 0, 0, 0, 0, 0, 164, 371, 0, 0, + 0, 0, 0, 0, 0, 0, 164, 0, 0, 551, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, - 0, 178, 0, 154, 156, 155, 0, 0, 0, 0, - 0, 0, 0, 164, 151, 0, 0, 0, 0, 0, - 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, - 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, - 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, - 154, 156, 155, 0, 0, 0, 0, 0, 0, 0, - 708, 164, 0, 0, 0, 0, 0, 0, 0, 0, - 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, - 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, - 162, 160, 163, 165, 166, 0, 178, 0, 154, 156, - 155, 0, 0, 0, 0, 0, 0, 706, 164, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, - 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, - 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, - 163, 165, 166, 0, 178, 154, 156, 155, 0, 0, - 0, 0, 0, 0, 0, 697, 164, 0, 0, 0, - 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, - 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, - 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, - 0, 178, 0, 154, 156, 155, 0, 0, 0, 0, - 0, 0, 631, 164, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, - 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, - 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, - 154, 156, 155, 0, 0, 0, 0, 0, 0, 0, - 612, 164, 0, 0, 0, 0, 0, 0, 0, 0, - 179, 561, 180, 152, 153, 157, 159, 158, 171, 172, - 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, - 162, 160, 163, 165, 166, 0, 178, 0, 565, 154, - 156, 155, 0, 0, 410, 0, 0, 593, 164, 0, + 0, 178, 154, 156, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 0, 0, 415, 0, 0, 0, + 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, + 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, + 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, + 156, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 164, 821, 0, 0, 0, 0, 0, 0, 0, 179, + 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, + 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, + 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 164, 371, 0, + 0, 0, 0, 0, 0, 0, 179, 0, 180, 152, + 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, + 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, + 166, 0, 178, 0, 154, 156, 155, 0, 0, 0, + 0, 0, 0, 0, 164, 151, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, + 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, + 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, + 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, + 0, 708, 164, 0, 0, 0, 0, 0, 0, 0, + 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, + 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, + 161, 162, 160, 163, 165, 166, 0, 178, 0, 154, + 156, 155, 0, 0, 0, 0, 0, 0, 706, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, 0, - 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, + 0, 0, 0, 0, 0, 0, 697, 164, 0, 0, 0, 0, 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, 165, - 166, 0, 178, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 164, + 166, 0, 178, 0, 154, 156, 155, 0, 0, 0, + 0, 0, 0, 631, 164, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 179, 0, 180, 152, 153, 157, + 159, 158, 171, 172, 169, 170, 177, 173, 174, 175, + 176, 167, 168, 161, 162, 160, 163, 165, 166, 0, + 178, 154, 156, 155, 0, 0, 0, 0, 0, 0, + 0, 612, 164, 0, 0, 0, 0, 0, 0, 0, + 0, 179, 561, 180, 152, 153, 157, 159, 158, 171, + 172, 169, 170, 177, 173, 174, 175, 176, 167, 168, + 161, 162, 160, 163, 165, 166, 0, 178, 0, 565, + 154, 156, 155, 0, 0, 410, 0, 0, 593, 164, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 179, 0, 180, 152, 153, 157, 159, 158, 171, 172, + 169, 170, 177, 173, 174, 175, 176, 167, 168, 161, + 162, 160, 163, 165, 166, 0, 178, 154, 156, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, + 0, 0, 0, 0, 0, 0, 0, 179, 0, 180, + 152, 153, 157, 159, 158, 171, 172, 169, 170, 177, + 173, 174, 175, 176, 167, 168, 161, 162, 160, 163, + 165, 166, 0, 178, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, } var yyPact = [...]int{ - -1000, -1000, 1193, -1000, -1000, -1000, -1000, -1000, -1000, 150, - 251, 421, 516, -1000, -1000, -1000, 149, 4901, 146, 144, - 6208, 6208, 6208, 20, 452, 6208, -1000, 6861, 143, 141, - 138, -1000, 259, 6208, 595, 709, 660, 573, 590, 571, - 568, 615, 688, 2355, -1000, -1000, 134, -1000, -1000, 302, - 132, 5512, 6208, 5281, 5281, 6208, 6208, 6208, 6208, 6208, - -1000, -1000, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 131, - 6208, -1000, 645, 6208, 6208, 6208, -1000, -1000, -1000, 614, - -1000, 361, 301, -1000, 172, 128, 105, 6208, 6208, 95, - 6208, 6208, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 567, 553, -1000, 33, 66, 66, 83, -1000, - 272, 498, -22, 498, -12, -1000, -1000, 207, 451, 292, - 442, 498, -1000, -1000, -1000, -1000, 290, -1000, 752, 3325, - 6208, 453, 660, 271, 6208, 6208, 206, 7336, 423, 204, - 203, 276, -1000, -1000, 267, 660, -1000, 747, 261, -1000, - 7336, -1000, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, - 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, - 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 31, 6092, - 6208, 5281, 6208, 516, -1000, 6814, 199, -1000, 58, -1000, - 566, -1000, 390, 258, 392, 82, 4901, 78, 197, 699, - 5976, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, - 6208, 6208, 6208, -1000, -1000, 6208, 6208, 6208, 96, 5512, - -53, 780, -1000, -1000, 7289, 5281, 77, -1000, -1000, 614, - 6208, -1000, -1000, 5512, -1000, 577, 577, 644, 577, 6720, - 577, 577, 577, 577, 577, 577, 577, -1000, 6208, 577, - 262, 454, 458, -1000, 456, 5860, 5281, 1014, 4750, 1014, - 6208, 3653, 3653, 66, -1000, 284, 198, 66, -1000, -1000, - 6208, 6208, 7336, 7336, 6208, 7336, 7336, 576, -1000, 540, - 368, 454, 6208, -1000, -1000, 5348, -1000, 5512, 561, 272, - 195, 272, -1000, -1000, 1029, -1000, 193, 235, 438, 498, - -1000, 365, 352, 525, 434, -1000, -1000, 516, 6208, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 76, 6673, 75, 74, - 189, 777, 7336, 6626, -1000, -1000, -1000, -1000, 20, -1000, - 487, 69, 6208, -1000, 6208, 1340, 1504, 3643, 1014, 4603, - 1668, 1992, 1829, 845, 845, 845, 644, 577, 644, 644, - 1287, 1287, 2151, 2151, 2151, 2151, 775, 775, 775, 775, - 2151, -1000, 7240, 6208, 1178, 772, -1000, -1000, 7193, 103, - 3161, -1000, -1000, 68, 539, 390, 385, 354, -1000, 256, - 354, 6208, -1000, 6208, -1000, -1000, 1014, 6208, 1014, 1014, - 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, - 6579, -61, 7145, 66, -1000, 6208, -1000, -24, 740, 5512, - 5744, -1000, 5512, 6532, -62, -1000, -27, -1000, -1000, -1000, - -1000, 679, 507, 7098, 279, 231, 6208, -66, 66, -1000, - -1000, 6208, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1194, -1000, -1000, -1000, -1000, -1000, -1000, 149, + 251, 421, 516, -1000, -1000, -1000, 146, 4902, 144, 143, + 6209, 6209, 6209, 20, 452, 6209, -1000, 6862, 141, 138, + 137, -1000, 259, 6209, 584, 698, 651, 573, 574, 571, + 568, 607, 723, 2356, -1000, -1000, 134, -1000, -1000, 302, + 132, 5513, 6209, 5282, 5282, 6209, 6209, 6209, 6209, 6209, + -1000, -1000, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 131, + 6209, -1000, 638, 6209, 6209, 6209, -1000, -1000, -1000, 614, + -1000, 364, 361, -1000, 172, 128, 105, 6209, 6209, 95, + 6209, 6209, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 540, 635, -1000, 33, 66, 66, 83, -1000, + 272, 498, -22, 498, -12, -1000, -1000, 206, 365, 290, + 438, 498, -1000, -1000, -1000, -1000, 276, -1000, 737, 3326, + 6209, 445, 651, 271, 6209, 6209, 204, 7337, 417, 203, + 199, 267, -1000, -1000, 261, 651, -1000, 732, 237, -1000, + 7337, -1000, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, + 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, + 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 31, 6093, + 6209, 5282, 6209, 516, -1000, 6815, 197, -1000, 58, -1000, + 566, -1000, 324, 258, 390, 81, 4902, 78, 195, 682, + 5977, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, + 6209, 6209, 6209, -1000, -1000, 6209, 6209, 6209, 96, 5513, + -61, 793, -1000, -1000, 7290, 5282, 77, -1000, -1000, 614, + 6209, -1000, -1000, 5513, -1000, 618, 618, 656, 618, 6721, + 618, 618, 618, 618, 618, 618, 618, -1000, 6209, 618, + 262, 612, 553, -1000, 456, 5861, 5282, 1015, 4751, 1015, + 6209, 3654, 3654, 66, -1000, 301, 198, 66, -1000, -1000, + 6209, 6209, 7337, 7337, 6209, 7337, 7337, 567, -1000, 459, + 368, 612, 6209, -1000, -1000, 5349, -1000, 5513, 561, 272, + 193, 272, -1000, -1000, 1030, -1000, 189, 235, 434, 498, + -1000, 351, 352, 557, 413, -1000, -1000, 516, 6209, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 76, 6674, 75, 74, + 185, 791, 7337, 6627, -1000, -1000, -1000, -1000, 20, -1000, + 487, 69, 6209, -1000, 6209, 1341, 1505, 3644, 1015, 4604, + 1669, 1993, 1830, 846, 846, 846, 656, 618, 656, 656, + 1288, 1288, 2152, 2152, 2152, 2152, 776, 776, 776, 776, + 2152, -1000, 7241, 6209, 1179, 784, -1000, -1000, 7194, 103, + 3162, -1000, -1000, 68, 539, 324, 299, 451, -1000, 256, + 451, 6209, -1000, 6209, -1000, -1000, 1015, 6209, 1015, 1015, + 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, + 6580, -62, 7146, 66, -1000, 6209, -1000, -24, 726, 5513, + 5745, -1000, 5513, 6533, -66, -1000, -27, -1000, -1000, -1000, + -1000, 556, 507, 7099, 278, 229, 6209, -70, 66, -1000, + -1000, 6209, -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, @@ -1320,63 +1326,63 @@ 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, 66, -1000, - -1000, -1000, -1000, 20, 6208, 6208, 96, 20, 390, 769, - -1000, 7336, 6485, 6438, -1000, -1000, -1000, 7050, -1000, 768, - -1000, 7336, 6208, -31, -1000, -1000, 865, -1000, -1000, -1000, - 348, 413, -1000, 498, 353, 623, -1000, 332, -1000, 7336, - -32, 4453, 6208, 6208, 6208, 330, -1000, -1000, 539, 7336, - -1000, 6208, 1178, -33, 5281, 269, 4289, -1000, 539, -35, - 763, -1000, 673, -1000, -1000, 446, -1000, -1000, -1000, 385, - 253, 354, -1000, 559, -1000, 745, -1000, 6391, 4889, 2997, - 1992, 4125, -1000, -1000, -1000, 7003, 724, 6208, -1000, 7336, - 5281, 64, -36, -1000, -1000, -1000, -70, -1000, -1000, 463, - -1000, -1000, -1000, -1000, 6208, -1000, 1014, -1000, -1000, 6955, - -1000, -1000, -73, 6908, -1000, -1000, 385, -37, 6208, -1000, - -1000, -1000, -38, 5628, 7336, -1000, -1000, 498, 329, 762, - -1000, -1000, 498, 623, 184, -1000, -1000, -1000, 432, 180, - 7336, -1000, 179, 178, -39, 1178, 177, -1000, 80, -1000, - 5281, 61, 5512, -1000, -1000, -1000, 412, -40, 408, 539, - 263, -1000, -1000, 248, -1000, 745, -1000, -1000, 470, 509, - 354, 737, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 425, 354, 4901, 692, 171, -1000, -1000, -1000, 6208, 1014, - -1000, 5512, 724, -1000, -1000, 6344, -1000, -1000, -1000, 246, - -1000, -1000, -1000, -1000, 761, -1000, 498, 229, 623, -1000, - 762, -1000, 2833, 164, 6208, 127, -1000, 535, -1000, 408, - -1000, 3797, 269, -1000, 5512, -79, 2669, -1000, 59, 244, - 682, 682, 51, -1000, 475, -1000, -1000, 418, 205, -1000, - 738, 5065, 660, 130, -1000, -1000, -1000, -1000, -1000, -1000, - 3489, 1014, -41, 228, -1000, 223, 498, 761, -1000, -1000, - 218, 162, -1000, -42, -1000, 6208, 121, 118, 161, 523, - 682, -1000, -1000, -1000, -43, -45, -1000, 158, 354, -1000, - 241, 539, 239, 643, 732, 369, -1000, -1000, 470, 6208, - 190, -1000, 726, 5065, -1000, -1000, 4756, 3489, 724, -1000, - 174, -1000, -1000, 211, -1000, -1000, 3961, 6767, -1000, -1000, - -1000, -1000, -1000, 157, 238, 2505, 3797, -1000, -1000, 536, - -1000, 2341, -1000, -1000, -1000, 97, -1000, -1000, 468, 6208, - -1000, -1000, 7336, -1000, 5065, 6208, 25, -1000, 4617, -1000, - 156, 154, 403, 439, 278, -1000, 271, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 3489, -1000, -1000, 153, -1000, -47, - 354, -1000, 2177, 2013, -1000, 643, -1000, 7336, -1000, 7336, - 539, -1000, -1000, -1000, -1000, 354, 5204, 5065, 1849, 3489, - 1685, -1000, 233, -1000, -1000, -1000, -1000, -51, 745, -1000, - -1000, 5065, -1000, 32, -1000, -1000, 682, -1000, -1000, 1521, - -15, -1000, -1000, -1000, -1000, 1357, -1000, + -1000, -1000, -1000, 20, 6209, 6209, 96, 20, 324, 782, + -1000, 7337, 6486, 6439, -1000, -1000, -1000, 7051, -1000, 772, + -1000, 7337, 6209, -31, -1000, -1000, 866, -1000, -1000, -1000, + 348, 406, -1000, 498, 353, 623, -1000, 332, -1000, 7337, + -32, 4454, 6209, 6209, 6209, 330, -1000, -1000, 539, 7337, + -1000, 6209, 1179, -33, 5282, 269, 4290, -1000, 539, -35, + 766, -1000, 652, -1000, -1000, 446, -1000, -1000, -1000, 299, + 253, 451, -1000, 559, -1000, 748, -1000, 6392, 4890, 2998, + 1993, 4126, -1000, -1000, -1000, 7004, 713, 6209, -1000, 7337, + 5282, 64, -36, -1000, -1000, -1000, -71, -1000, -1000, 455, + -1000, -1000, -1000, -1000, 6209, -1000, 1015, -1000, -1000, 6956, + -1000, -1000, -73, 6909, -1000, -1000, 299, -37, 6209, -1000, + -1000, -1000, -38, 5629, 7337, -1000, -1000, 498, 329, 753, + -1000, -1000, 498, 623, 180, -1000, -1000, -1000, 432, 179, + 7337, -1000, 178, 177, -39, 1179, 171, -1000, -40, 740, + 5282, 61, 5513, -1000, -1000, -1000, 411, -41, 404, 539, + 263, -1000, -1000, 248, -1000, 748, -1000, -1000, 470, 437, + 451, 693, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 425, 451, 4902, 679, 164, -1000, -1000, -1000, 6209, 1015, + -1000, 5513, 713, -1000, -1000, 6345, -1000, -1000, -1000, 246, + -1000, -1000, -1000, -1000, 752, -1000, 498, 228, 623, -1000, + 753, -1000, 2834, 162, 6209, 127, -1000, 523, -1000, 404, + -1000, 3798, 269, -1000, 5513, -79, 2670, -1000, 59, 244, + 666, 666, 51, -1000, 483, -1000, -1000, 418, 205, -1000, + 724, 5066, 651, 130, -1000, -1000, -1000, -1000, -1000, -1000, + 3490, 1015, -42, 223, -1000, 218, 498, 752, -1000, -1000, + 211, 161, -1000, -43, -1000, 6209, 121, 118, 158, 515, + 666, -1000, -1000, -1000, -45, -1000, -47, -1000, 157, 451, + -1000, 241, 539, 238, 639, 721, 369, -1000, -1000, 470, + 6209, 190, -1000, 716, 5066, -1000, -1000, 4757, 3490, 713, + -1000, 174, -1000, -1000, 208, -1000, -1000, 3962, 6768, -1000, + -1000, -1000, -1000, -1000, 156, 233, 2506, 3798, -1000, -1000, + 511, -1000, 2342, -1000, -1000, -1000, 97, -1000, -1000, 468, + 6209, -1000, -1000, 7337, -1000, 5066, 6209, 25, -1000, 4618, + -1000, 154, 153, 402, 431, 288, -1000, 271, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 3490, -1000, -1000, 151, -1000, + -51, 451, -1000, 2178, 2014, -1000, 639, -1000, 7337, -1000, + 7337, 539, -1000, -1000, -1000, -1000, 451, 5205, 5066, 1850, + 3490, 1686, -1000, 232, -1000, -1000, -1000, -1000, -52, 748, + -1000, -1000, 5066, -1000, 32, -1000, -1000, 666, -1000, -1000, + 1522, -15, -1000, -1000, -1000, -1000, 1358, -1000, } var yyPgo = [...]int{ - 0, 940, 939, 46, 686, 6, 938, 3, 937, 14, - 27, 79, 77, 70, 51, 933, 20, 921, 94, 15, - 78, 919, 0, 62, 918, 917, 17, 11, 912, 911, - 36, 61, 49, 33, 910, 35, 908, 72, 50, 906, - 9, 904, 903, 902, 896, 13, 48, 894, 889, 111, - 98, 197, 887, 886, 883, 8, 882, 81, 43, 880, - 55, 47, 877, 876, 875, 874, 867, 97, 866, 862, - 861, 860, 10, 4, 859, 857, 42, 32, 41, 2, - 16, 5, 775, 856, 670, 853, 28, 851, 850, 849, - 90, 848, 31, 847, 845, 25, 29, 842, 841, 839, - 24, 837, 835, 833, 549, 832, 18, 819, 811, 44, - 86, 83, 809, 103, 1, 7, 804, 19, 802, 801, - 38, 798, 793, 792, 790, 37, 12, + 0, 940, 939, 46, 740, 6, 938, 3, 934, 14, + 27, 79, 77, 70, 51, 922, 20, 920, 94, 15, + 78, 919, 0, 62, 918, 913, 11, 912, 911, 36, + 61, 49, 33, 909, 35, 907, 72, 50, 905, 9, + 904, 903, 897, 895, 13, 48, 890, 888, 111, 98, + 197, 887, 884, 883, 8, 881, 81, 43, 878, 55, + 47, 877, 876, 875, 868, 867, 97, 863, 862, 861, + 860, 10, 4, 858, 857, 42, 32, 41, 2, 16, + 5, 765, 17, 854, 664, 852, 28, 851, 850, 849, + 90, 848, 31, 846, 843, 25, 29, 842, 840, 838, + 24, 836, 834, 833, 549, 820, 18, 819, 818, 44, + 86, 83, 817, 103, 1, 7, 816, 19, 815, 814, + 38, 812, 810, 806, 803, 37, 12, } var yyR1 = [...]int{ @@ -1389,46 +1395,46 @@ var yyR1 = [...]int{ 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 113, 113, 86, 86, 9, 9, 9, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 82, - 82, 15, 15, 17, 17, 125, 125, 96, 96, 95, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 81, + 81, 15, 15, 17, 17, 125, 125, 96, 96, 95, 95, 104, 104, 16, 16, 19, 19, 18, 18, 90, 90, 114, 114, 21, 21, 21, 21, 21, 21, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 88, 88, 87, 87, 29, 29, 103, - 103, 30, 11, 1, 1, 2, 2, 12, 12, 83, - 83, 4, 4, 13, 14, 32, 32, 119, 119, 120, - 120, 26, 26, 26, 26, 25, 25, 27, 27, 28, - 28, 99, 99, 99, 99, 100, 100, 100, 126, 126, - 24, 24, 71, 71, 69, 69, 74, 74, 70, 70, - 115, 115, 116, 116, 33, 33, 34, 34, 80, 80, - 78, 78, 78, 79, 79, 111, 111, 112, 112, 35, - 35, 94, 94, 37, 98, 98, 38, 38, 117, 117, - 39, 39, 39, 39, 73, 73, 102, 102, 102, 101, - 101, 40, 40, 41, 42, 42, 42, 42, 44, 44, - 43, 118, 118, 122, 122, 121, 121, 123, 123, 81, - 81, 81, 81, 81, 81, 97, 97, 45, 45, 89, - 89, 72, 20, 91, 91, 46, 92, 92, 93, 93, - 48, 47, 47, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 3, - 3, 106, 106, 105, 105, 55, 55, 56, 56, 56, - 56, 49, 49, 50, 50, 53, 53, 85, 85, 85, - 110, 110, 60, 60, 60, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 61, 61, 61, 22, 22, 23, 23, 59, 62, - 62, 62, 63, 63, 63, 64, 64, 64, 64, 64, - 64, 31, 31, 31, 51, 51, 51, 65, 65, 66, - 66, 66, 66, 66, 66, 57, 57, 57, 58, 58, - 58, 109, 76, 76, 108, 108, 75, 75, 75, 75, - 75, 75, 84, 84, 84, 84, 67, 67, 67, 67, - 67, 67, 67, 68, 68, 68, 68, 52, 52, 52, - 52, 52, 52, 52, 107, 107, 77, + 10, 10, 10, 88, 88, 87, 87, 28, 28, 103, + 103, 29, 11, 1, 1, 2, 2, 12, 12, 83, + 83, 4, 4, 13, 14, 31, 31, 119, 119, 120, + 120, 82, 82, 82, 82, 25, 25, 26, 26, 27, + 27, 99, 99, 99, 99, 100, 100, 100, 126, 126, + 24, 24, 70, 70, 68, 68, 73, 73, 69, 69, + 115, 115, 116, 116, 32, 32, 33, 33, 79, 79, + 77, 77, 77, 78, 78, 111, 111, 112, 112, 34, + 34, 94, 94, 36, 98, 98, 37, 37, 117, 117, + 38, 38, 38, 38, 72, 72, 102, 102, 102, 101, + 101, 39, 39, 40, 41, 41, 41, 41, 43, 43, + 42, 118, 118, 122, 122, 121, 121, 123, 123, 80, + 80, 80, 80, 80, 80, 97, 97, 44, 44, 89, + 89, 71, 20, 91, 91, 45, 92, 92, 93, 93, + 47, 46, 46, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 3, + 3, 106, 106, 105, 105, 54, 54, 55, 55, 55, + 55, 48, 48, 49, 49, 52, 52, 85, 85, 85, + 110, 110, 59, 59, 59, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 60, 60, 60, 22, 22, 23, 23, 58, 61, + 61, 61, 62, 62, 62, 63, 63, 63, 63, 63, + 63, 30, 30, 30, 50, 50, 50, 64, 64, 65, + 65, 65, 65, 65, 65, 56, 56, 56, 57, 57, + 57, 109, 75, 75, 108, 108, 74, 74, 74, 74, + 74, 74, 84, 84, 84, 84, 66, 66, 66, 66, + 66, 66, 66, 67, 67, 67, 67, 51, 51, 51, + 51, 51, 51, 51, 107, 107, 76, } var yyR2 = [...]int{ @@ -1485,20 +1491,20 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -124, -113, -8, -10, -11, -12, -13, -14, 127, - 154, 120, 114, 161, -69, -70, 97, 96, 99, 106, + 154, 120, 114, 161, -68, -69, 97, 96, 99, 106, 110, 111, 115, 122, 76, 95, 90, -22, 124, 101, 103, 163, 116, 119, 112, 86, 113, -83, 128, 129, - 130, -71, -74, -31, -36, -4, 83, -64, -65, -62, + 130, -70, -73, -30, -35, -4, 83, -63, -64, -61, 134, 69, 71, 58, 59, 49, 50, 55, 57, 164, - -47, -52, 60, 61, 62, 63, 64, 65, 66, 82, - 67, -54, 160, 13, 14, 16, 77, 78, -51, -61, - -56, -49, -59, -60, 70, 125, 126, 4, 5, 6, + -46, -51, 60, 61, 62, 63, 64, 65, 66, 82, + 67, -53, 160, 13, 14, 16, 77, 78, -50, -60, + -55, -48, -58, -59, 70, 125, 126, 4, 5, 6, 7, 8, 84, 85, 141, 142, 156, 138, 139, 140, - 155, 137, 149, 159, 88, 167, -9, -63, 135, 94, - -86, 157, 164, 157, -86, 161, 86, -17, -82, -104, + 155, 137, 149, 159, 88, 167, -9, -62, 135, 94, + -86, 157, 164, 157, -86, 161, 86, -17, -81, -104, -86, 157, 113, 114, -18, -19, -90, -20, 86, -114, 164, -10, 113, 154, 164, 164, -23, -22, 76, -23, - -23, -94, -37, -51, -98, 113, -38, 88, -91, -46, + -23, -94, -36, -50, -98, 113, -37, 88, -91, -45, -22, 163, 33, 34, 10, 12, 11, 35, 37, 36, 51, 49, 50, 52, 68, 53, 54, 47, 48, 40, 41, 38, 39, 43, 44, 45, 46, 42, 56, 30, @@ -1506,13 +1512,13 @@ var yyChk = [...]int{ 128, -4, 86, 86, 86, 73, 74, 73, 75, 74, 17, 18, 19, 20, 29, 21, 22, 23, 24, 25, 26, 27, 28, 58, 59, 164, 69, 161, 133, 164, - -109, -108, -76, -75, -22, 37, 134, -22, -31, -61, - 164, -60, 76, 69, -31, -22, -22, -22, -22, -22, - -22, -22, -22, -22, -22, -22, -22, -53, 164, -22, - -85, 93, -84, -67, 88, 151, 152, -22, -22, -22, - 69, 153, 153, -50, -48, -49, -66, 128, -9, -51, + -109, -108, -75, -74, -22, 37, 134, -22, -30, -60, + 164, -59, 76, 69, -30, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -52, 164, -22, + -85, 93, -84, -66, 88, 151, 152, -22, -22, -22, + 69, 153, 153, -49, -47, -48, -65, 128, -9, -50, 164, 164, -22, -22, 164, -22, -22, 93, 150, -84, - -84, 93, 161, -51, -111, 164, -111, 164, 157, -86, + -84, 93, 161, -50, -111, 164, -111, 164, 157, -86, 165, -86, 163, 161, -113, 163, -15, -104, -86, 157, 163, 9, 157, 105, -86, -19, 163, 9, 17, -21, 162, -10, -11, -12, -13, -14, 127, -22, 97, -3, @@ -1520,62 +1526,62 @@ var yyChk = [...]int{ 9, -3, 17, 163, 9, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, - -22, -50, -22, 31, -22, -103, -30, -31, -22, -90, - -114, 163, 163, 86, 164, 86, -32, 131, 161, -119, + -22, -49, -22, 31, -22, -103, -29, -30, -22, -90, + -114, 163, 163, 86, 164, 86, -31, 131, 161, -119, 131, 164, -10, 164, 163, 31, -22, 37, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, - -22, -23, -22, -58, 86, 161, -51, -109, 166, 9, - 15, -31, 164, -22, -109, 165, -23, 160, -67, -67, - 93, 69, 133, -22, 87, -31, 15, -23, -57, -7, - -51, 161, 86, -6, -5, 76, 77, 78, 79, 80, + -22, -23, -22, -57, 86, 161, -50, -109, 166, 9, + 15, -30, 164, -22, -109, 165, -23, 160, -66, -66, + 93, 69, 133, -22, 87, -30, 15, -23, -56, -7, + -50, 161, 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, -57, -7, - -51, -110, -111, 153, 69, 161, 133, 153, -110, -107, - -77, -22, -22, -22, 150, 150, 159, -22, 165, -112, - -35, -22, 158, -109, 86, 163, -113, 162, 163, 163, + 137, 138, 140, 139, 141, 142, 156, 155, -56, -7, + -50, -110, -111, 153, 69, 161, 133, 153, -110, -107, + -76, -22, -22, -22, 150, 150, 159, -22, 165, -112, + -34, -22, 158, -109, 86, 163, -113, 162, 163, 163, 157, -86, -18, 157, -86, 161, 86, 157, -20, -22, - 164, 165, 164, 163, 9, 165, -37, -38, 164, -22, - -46, 31, -22, -125, 9, 105, 165, 162, 164, -115, - -116, -33, -34, -80, -78, 30, 135, 136, -9, -32, - -120, 132, -9, -117, 161, -73, -9, -22, -22, -114, - -22, 165, 166, 162, -111, -22, 165, 17, -76, -22, - 37, 134, -109, 165, 166, 165, -68, 86, 89, 50, + 164, 165, 164, 163, 9, 165, -36, -37, 164, -22, + -45, 31, -22, -125, 9, 105, 165, 162, 164, -115, + -116, -32, -33, -79, -77, 30, 135, 136, -9, -31, + -120, 132, -9, -117, 161, -72, -9, -22, -22, -114, + -22, 165, 166, 162, -111, -22, 165, 17, -75, -22, + 37, 134, -109, 165, 166, 165, -67, 86, 89, 50, 88, 86, 162, 162, 69, 162, -22, 166, -111, -22, - -111, -51, -23, -22, -58, -51, -32, -125, 9, 165, + -111, -50, -23, -22, -57, -50, -31, -125, 9, 165, 165, 162, -125, 9, -22, 165, 162, 161, 157, -96, - -16, -19, -82, 161, 165, -24, -10, 31, -22, -92, - -22, -99, 161, 31, -115, -22, 165, -30, -26, -31, - 37, 134, 69, -28, -10, 31, -88, -115, 165, 9, - -1, 37, -78, -120, 161, -73, 162, -39, -122, -121, - 120, -123, 123, -81, 81, 80, 79, 76, 77, 78, + -16, -19, -81, 161, 165, -24, -10, 31, -22, -92, + -22, -99, 161, 31, -115, -22, 165, -29, -82, -30, + 37, 134, 69, -27, -10, 31, -88, -115, 165, 9, + -1, 37, -77, -120, 161, -72, 162, -38, -122, -121, + 120, -123, 123, -80, 81, 80, 79, 76, 77, 78, -117, 9, 165, 165, 75, -10, 31, 162, 17, -22, - -31, 164, 165, 166, 89, -22, 162, 166, 162, -120, - 165, -77, 165, -35, -95, -19, 161, -125, 9, -19, + -30, 164, 165, 166, 89, -22, 162, 166, 162, -120, + 165, -76, 165, -34, -95, -19, 161, -125, 9, -19, -96, 163, -114, 165, 163, -100, 163, -100, 163, 165, - 163, 165, 15, -31, 164, -109, -114, -29, 117, 118, - 165, -106, 120, -33, -2, 158, 161, -117, -97, -45, - 88, 114, 113, -73, -81, 162, -9, -10, 31, 163, + 163, 165, 15, -30, 164, -109, -114, -28, 117, 118, + 165, -106, 120, -32, -2, 158, 161, -117, -97, -44, + 88, 114, 113, -72, -80, 162, -9, -10, 31, 163, -114, -22, -109, 166, 161, -125, 9, -95, 162, -16, -125, 98, 163, -92, 162, 108, 109, -100, 107, -100, - -106, -27, -10, 31, -26, -109, 166, 104, 164, 161, - -79, 31, -79, 164, 88, -117, 162, 163, 9, 17, - -89, -72, -7, -3, -102, 163, 161, -114, 165, 162, - -117, 162, -19, -125, 162, 163, 165, -22, -126, 31, - 163, 162, 163, 107, -79, -114, 165, 165, 163, -87, - -9, -114, 161, -80, 161, -105, -55, 88, 37, 17, - 162, -45, -22, 163, 9, 17, -7, 162, -101, -40, - -41, -42, -43, -44, -9, -7, 154, 86, 162, 162, - -25, -10, 31, -126, -114, 163, 161, 102, -27, 88, - 35, 162, -114, -114, 165, 9, 88, -22, -72, -22, - 164, 162, -40, 163, 163, 121, 105, 153, -114, -114, - -114, 163, 165, -9, 162, 162, -55, -115, -73, 86, - -5, -81, -7, 100, 162, 161, 165, -7, 163, -114, - -79, 162, -118, 163, 161, -114, 162, + -106, -26, -10, 31, -82, -30, -109, 166, 104, 164, + 161, -78, 31, -78, 164, 88, -117, 162, 163, 9, + 17, -89, -71, -7, -3, -102, 163, 161, -114, 165, + 162, -117, 162, -19, -125, 162, 163, 165, -22, -126, + 31, 163, 162, 163, 107, -78, -114, 165, 165, 163, + -87, -9, -114, 161, -79, 161, -105, -54, 88, 37, + 17, 162, -44, -22, 163, 9, 17, -7, 162, -101, + -39, -40, -41, -42, -43, -9, -7, 154, 86, 162, + 162, -25, -10, 31, -126, -114, 163, 161, 102, -26, + 88, 35, 162, -114, -114, 165, 9, 88, -22, -71, + -22, 164, 162, -39, 163, 163, 121, 105, 153, -114, + -114, -114, 163, 165, -9, 162, 162, -54, -115, -72, + 86, -5, -80, -7, 100, 162, 161, 165, -7, 163, + -114, -78, 162, -118, 163, 161, -114, 162, } var yyDef = [...]int{ @@ -1657,20 +1663,20 @@ var yyDef = [...]int{ 277, 0, 369, 0, 268, 174, 245, 203, 122, 209, 206, 293, 0, 0, 239, 0, 106, 105, 103, 107, 0, 0, 133, 0, 191, 0, 0, 0, 0, 0, - 223, 145, 187, 122, 0, 0, -2, 0, 0, 122, - 0, 0, 0, 0, 214, 265, 168, 240, 0, 0, - 0, 280, 0, 0, 242, 246, 0, 207, 460, 471, - 265, 101, 109, 0, 104, 201, 0, 0, 122, 198, - 199, 192, 193, 0, 0, 0, 0, 183, 190, 0, - 155, 0, 122, 224, 122, 0, 374, 375, 0, 0, - 167, 275, 278, 241, 0, 0, 0, 247, 0, 249, - 0, 0, 259, 0, 0, 258, 57, -2, 290, 102, - 134, 185, 122, 122, 197, 194, 122, 0, 146, 0, - 0, 158, 0, 0, 372, 0, 376, 215, 279, 281, - -2, 248, 250, 251, 252, 0, 0, 0, 0, 196, - 0, 188, 0, 156, 162, 367, 373, 0, 253, 254, - 255, 257, 260, 0, 368, 122, 223, 256, 186, 0, - 0, 154, 243, 261, 122, 0, 262, + 223, 145, 187, 122, 0, -2, 0, -2, 0, 0, + 122, 0, 0, 0, 0, 214, 265, 168, 240, 0, + 0, 0, 280, 0, 0, 242, 246, 0, 207, 460, + 471, 265, 101, 109, 0, 104, 201, 0, 0, 122, + 198, 199, 192, 193, 0, 0, 0, 0, 183, 190, + 0, 155, 0, 122, 224, 122, 0, 374, 375, 0, + 0, 167, 275, 278, 241, 0, 0, 0, 247, 0, + 249, 0, 0, 259, 0, 0, 258, 57, -2, 290, + 102, 134, 185, 122, 122, 197, 194, 122, 0, 146, + 0, 0, 158, 0, 0, 372, 0, 376, 215, 279, + 281, -2, 248, 250, 251, 252, 0, 0, 0, 0, + 196, 0, 188, 0, 156, 162, 367, 373, 0, 253, + 254, 255, 257, 260, 0, 368, 122, 223, 256, 186, + 0, 0, 154, 243, 261, 122, 0, 262, } var yyTok1 = [...]int{ @@ -2048,1267 +2054,1267 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:237 + //line parser/parser.y:244 { rootnode = stmt.NewStmtList(yyDollar[1].list) } case 2: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:241 + //line parser/parser.y:248 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:241 + //line parser/parser.y:248 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:241 + //line parser/parser.y:248 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:241 + //line parser/parser.y:248 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:241 + //line parser/parser.y:248 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:241 + //line parser/parser.y:248 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:241 + //line parser/parser.y:248 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:241 + //line parser/parser.y:248 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:242 + //line parser/parser.y:249 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:243 + //line parser/parser.y:250 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:244 + //line parser/parser.y:251 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:245 + //line parser/parser.y:252 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:246 + //line parser/parser.y:253 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:246 + //line parser/parser.y:253 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:246 + //line parser/parser.y:253 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:246 + //line parser/parser.y:253 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:246 + //line parser/parser.y:253 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:246 + //line parser/parser.y:253 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:246 + //line parser/parser.y:253 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:246 + //line parser/parser.y:253 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:247 + //line parser/parser.y:254 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:247 + //line parser/parser.y:254 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:247 + //line parser/parser.y:254 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:247 + //line parser/parser.y:254 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:247 + //line parser/parser.y:254 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:247 + //line parser/parser.y:254 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:247 + //line parser/parser.y:254 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:247 + //line parser/parser.y:254 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:251 + //line parser/parser.y:258 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:252 + //line parser/parser.y:259 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:252 + //line parser/parser.y:259 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:252 + //line parser/parser.y:259 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:252 + //line parser/parser.y:259 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:252 + //line parser/parser.y:259 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:252 + //line parser/parser.y:259 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:256 + //line parser/parser.y:263 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:257 + //line parser/parser.y:264 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:261 + //line parser/parser.y:268 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 79: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:262 + //line parser/parser.y:269 { yyVAL.list = []node.Node{} } case 80: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:266 + //line parser/parser.y:273 { yyVAL.list = []node.Node{name.NewNamePart(yyDollar[1].token)} } case 81: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:267 + //line parser/parser.y:274 { yyVAL.list = append(yyDollar[1].list, name.NewNamePart(yyDollar[3].token)) } case 82: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:271 + //line parser/parser.y:278 { yyVAL.node = name.NewName(yyDollar[1].list) } case 83: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:272 + //line parser/parser.y:279 { yyVAL.node = name.NewRelative(yyDollar[3].list) } case 84: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:273 + //line parser/parser.y:280 { yyVAL.node = name.NewFullyQualified(yyDollar[2].list) } case 85: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:277 + //line parser/parser.y:284 { yyVAL.node = yyDollar[1].node } case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:278 + //line parser/parser.y:285 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:279 + //line parser/parser.y:286 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:280 + //line parser/parser.y:287 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:281 + //line parser/parser.y:288 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:282 + //line parser/parser.y:289 { yyVAL.node = stmt.NewHaltCompiler(yyDollar[1].token) } case 91: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:283 + //line parser/parser.y:290 { yyVAL.node = stmt.NewNamespace(yyDollar[1].token, name.NewName(yyDollar[2].list), nil) } case 92: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:285 + //line parser/parser.y:292 { yyVAL.node = stmt.NewNamespace(yyDollar[1].token, name.NewName(yyDollar[2].list), yyDollar[4].list) } case 93: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:286 + //line parser/parser.y:293 { yyVAL.node = stmt.NewNamespace(yyDollar[1].token, nil, yyDollar[3].list) } case 94: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:287 + //line parser/parser.y:294 { yyVAL.node = yyDollar[2].node.(stmt.GroupUse).SetToken(yyDollar[1].token) } case 95: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:288 + //line parser/parser.y:295 { yyVAL.node = yyDollar[3].node.(stmt.GroupUse).SetToken(yyDollar[1].token).(stmt.GroupUse).SetUseType(yyDollar[2].node) } case 96: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:289 + //line parser/parser.y:296 { yyVAL.node = stmt.NewUseList(yyDollar[1].token, nil, yyDollar[2].list) } case 97: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:290 + //line parser/parser.y:297 { yyVAL.node = stmt.NewUseList(yyDollar[1].token, yyDollar[2].node, yyDollar[3].list) } case 98: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:291 + //line parser/parser.y:298 { yyVAL.node = stmt.NewStmtConst(yyDollar[1].token, yyDollar[2].list) } case 99: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:295 + //line parser/parser.y:302 { yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:296 + //line parser/parser.y:303 { - yyVAL.node = node.NewSimpleNode("ConstUseType") + yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 101: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:301 + //line parser/parser.y:308 { fmt.Println("group") yyVAL.node = stmt.NewGroupUse(nil, nil, name.NewName(yyDollar[1].list), yyDollar[4].list) } case 102: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:306 + //line parser/parser.y:313 { yyVAL.node = stmt.NewGroupUse(nil, nil, name.NewName(yyDollar[2].list), yyDollar[5].list) } case 103: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:313 + //line parser/parser.y:320 { fmt.Println("mixed") yyVAL.node = stmt.NewGroupUse(nil, nil, name.NewName(yyDollar[1].list), yyDollar[4].list) } case 104: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:318 + //line parser/parser.y:325 { yyVAL.node = stmt.NewGroupUse(nil, nil, name.NewName(yyDollar[2].list), yyDollar[5].list) } case 107: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:330 + //line parser/parser.y:337 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 108: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:331 + //line parser/parser.y:338 { yyVAL.list = []node.Node{yyDollar[1].node} } case 109: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:336 + //line parser/parser.y:343 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 110: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:337 + //line parser/parser.y:344 { yyVAL.list = []node.Node{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:341 + //line parser/parser.y:348 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 112: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:342 + //line parser/parser.y:349 { yyVAL.list = []node.Node{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:346 + //line parser/parser.y:353 { yyVAL.node = yyDollar[1].node } case 114: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:347 + //line parser/parser.y:354 { yyVAL.node = yyDollar[2].node.(stmt.Use).SetType(yyDollar[1].node) } case 115: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:351 + //line parser/parser.y:358 { yyVAL.node = stmt.NewUse(nil, name.NewName(yyDollar[1].list), nil) } case 116: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:352 + //line parser/parser.y:359 { yyVAL.node = stmt.NewUse(nil, name.NewName(yyDollar[1].list), yyDollar[3].token) } case 117: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:356 + //line parser/parser.y:363 { yyVAL.node = yyDollar[1].node } case 118: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:357 + //line parser/parser.y:364 { yyVAL.node = yyDollar[2].node } case 119: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:361 + //line parser/parser.y:368 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 120: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:362 + //line parser/parser.y:369 { yyVAL.list = []node.Node{yyDollar[1].node} } case 121: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:366 + //line parser/parser.y:373 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 122: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:367 + //line parser/parser.y:374 { yyVAL.list = []node.Node{} } case 123: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:371 + //line parser/parser.y:378 { yyVAL.node = yyDollar[1].node } case 124: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:372 + //line parser/parser.y:379 { yyVAL.node = yyDollar[1].node } case 125: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:373 + //line parser/parser.y:380 { yyVAL.node = yyDollar[1].node } case 126: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:374 + //line parser/parser.y:381 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:375 + //line parser/parser.y:382 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:376 + //line parser/parser.y:383 { yyVAL.node = stmt.NewHaltCompiler(yyDollar[1].token) } case 129: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:379 + //line parser/parser.y:386 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) } case 130: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:380 + //line parser/parser.y:387 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:381 + //line parser/parser.y:388 { yyVAL.node = yyDollar[1].node } case 132: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:383 + //line parser/parser.y:390 { yyVAL.node = stmt.NewWhile(yyDollar[1].token, yyDollar[3].node, yyDollar[5].node) } case 133: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:384 + //line parser/parser.y:391 { yyVAL.node = stmt.NewDo(yyDollar[1].token, yyDollar[2].node, yyDollar[5].node) } case 134: yyDollar = yyS[yypt-9 : yypt+1] - //line parser/parser.y:386 + //line parser/parser.y:393 { yyVAL.node = stmt.NewFor(yyDollar[1].token, yyDollar[3].list, yyDollar[5].list, yyDollar[7].list, yyDollar[9].node) } case 135: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:387 + //line parser/parser.y:394 { yyVAL.node = stmt.NewSwitch(yyDollar[1].token, yyDollar[3].node, yyDollar[5].list) } case 136: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:388 + //line parser/parser.y:395 { yyVAL.node = stmt.NewBreak(yyDollar[1].token, yyDollar[2].node) } case 137: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:389 + //line parser/parser.y:396 { yyVAL.node = stmt.NewContinue(yyDollar[1].token, yyDollar[2].node) } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:390 + //line parser/parser.y:397 { yyVAL.node = stmt.NewReturn(yyDollar[1].token, yyDollar[2].node) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:391 + //line parser/parser.y:398 { yyVAL.node = stmt.NewGlobal(yyDollar[1].token, yyDollar[2].list) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:392 + //line parser/parser.y:399 { yyVAL.node = stmt.NewStatic(yyDollar[1].token, yyDollar[2].list) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:393 + //line parser/parser.y:400 { yyVAL.node = stmt.NewEcho(yyDollar[1].token, yyDollar[2].list) } case 142: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:394 + //line parser/parser.y:401 { yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token) } case 143: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:395 + //line parser/parser.y:402 { yyVAL.node = stmt.NewExpression(yyDollar[1].node) } case 144: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:397 + //line parser/parser.y:404 { yyVAL.node = stmt.NewUnset(yyDollar[1].token, yyDollar[3].list) } case 145: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:399 + //line parser/parser.y:406 { - yyVAL.node = stmt.NewForeach(yyDollar[1].token, yyDollar[3].node, nil, yyDollar[5].node, yyDollar[7].node) + yyVAL.node = stmt.NewForeach(yyDollar[1].token, yyDollar[3].node, nil, yyDollar[5].foreachVariable.node, yyDollar[7].node, yyDollar[5].foreachVariable.byRef) } case 146: yyDollar = yyS[yypt-9 : yypt+1] - //line parser/parser.y:401 + //line parser/parser.y:408 { - yyVAL.node = stmt.NewForeach(yyDollar[1].token, yyDollar[3].node, yyDollar[5].node, yyDollar[7].node, yyDollar[9].node) + yyVAL.node = stmt.NewForeach(yyDollar[1].token, yyDollar[3].node, yyDollar[5].node, yyDollar[7].foreachVariable.node, yyDollar[9].node, yyDollar[7].foreachVariable.byRef) } case 147: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:402 + //line parser/parser.y:409 { yyVAL.node = stmt.NewDeclare(yyDollar[1].token, yyDollar[3].list, yyDollar[5].node) } case 148: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:403 + //line parser/parser.y:410 { yyVAL.node = stmt.NewNop(yyDollar[1].token) } case 149: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:405 + //line parser/parser.y:412 { yyVAL.node = stmt.NewTry(yyDollar[1].token, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) } case 150: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:408 + //line parser/parser.y:415 { yyVAL.node = stmt.NewThrow(yyDollar[1].token, yyDollar[2].node) } case 151: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:409 + //line parser/parser.y:416 { yyVAL.node = stmt.NewGoto(yyDollar[1].token, yyDollar[2].token) } case 152: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:410 + //line parser/parser.y:417 { yyVAL.node = stmt.NewLabel(yyDollar[1].token) } case 153: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:413 + //line parser/parser.y:420 { yyVAL.list = []node.Node{} } case 154: yyDollar = yyS[yypt-9 : yypt+1] - //line parser/parser.y:415 + //line parser/parser.y:422 { yyVAL.list = append(yyDollar[1].list, stmt.NewCatch(yyDollar[2].token, yyDollar[4].list, expr.NewVariable(node.NewIdentifier(yyDollar[5].token)), yyDollar[8].list)) } case 155: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:418 + //line parser/parser.y:425 { yyVAL.list = []node.Node{yyDollar[1].node} } case 156: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:419 + //line parser/parser.y:426 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 157: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:423 + //line parser/parser.y:430 { yyVAL.node = nil } case 158: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:424 + //line parser/parser.y:431 { yyVAL.node = stmt.NewFinally(yyDollar[1].token, yyDollar[3].list) } case 159: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:428 + //line parser/parser.y:435 { yyVAL.list = []node.Node{yyDollar[1].node} } case 160: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:429 + //line parser/parser.y:436 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:433 + //line parser/parser.y:440 { yyVAL.node = yyDollar[1].node } case 162: yyDollar = yyS[yypt-10 : yypt+1] - //line parser/parser.y:438 + //line parser/parser.y:445 { yyVAL.node = stmt.NewFunction(yyDollar[3].token, yyDollar[2].value == "true", yyDollar[5].list, yyDollar[7].node, yyDollar[9].list) } case 163: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:444 + //line parser/parser.y:451 { yyVAL.value = "false" } case 164: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:445 + //line parser/parser.y:452 { yyVAL.value = "true" } case 165: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:449 + //line parser/parser.y:456 { yyVAL.value = "false" } case 166: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:450 + //line parser/parser.y:457 { yyVAL.value = "true" } case 167: yyDollar = yyS[yypt-8 : yypt+1] - //line parser/parser.y:455 + //line parser/parser.y:462 { yyVAL.node = stmt.NewClass(yyDollar[3].token, yyDollar[1].strings, nil, yyDollar[4].node, yyDollar[5].list, yyDollar[7].list) } case 168: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:457 + //line parser/parser.y:464 { yyVAL.node = stmt.NewClass(yyDollar[2].token, nil, nil, yyDollar[3].node, yyDollar[4].list, yyDollar[6].list) } case 169: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:461 + //line parser/parser.y:468 { yyVAL.strings = []string{yyDollar[1].value} } case 170: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:462 + //line parser/parser.y:469 { yyVAL.strings = append(yyDollar[1].strings, yyDollar[2].value) } case 171: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:466 + //line parser/parser.y:473 { yyVAL.value = "abstract" } case 172: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:467 + //line parser/parser.y:474 { yyVAL.value = "final" } case 173: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:471 + //line parser/parser.y:478 { yyVAL.node = stmt.NewTrait(yyDollar[2].token, yyDollar[4].list) } case 174: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:476 + //line parser/parser.y:483 { yyVAL.node = stmt.NewInterface(yyDollar[1].token, yyDollar[2].token, yyDollar[3].list, yyDollar[5].list) } case 175: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:480 + //line parser/parser.y:487 { yyVAL.node = nil } case 176: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:481 + //line parser/parser.y:488 { yyVAL.node = yyDollar[2].node } case 177: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:485 + //line parser/parser.y:492 { yyVAL.list = nil } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:486 + //line parser/parser.y:493 { yyVAL.list = yyDollar[2].node.(node.SimpleNode).Children } case 179: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:490 + //line parser/parser.y:497 { yyVAL.list = nil } case 180: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:491 + //line parser/parser.y:498 { yyVAL.list = yyDollar[2].node.(node.SimpleNode).Children } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:495 + //line parser/parser.y:502 { - yyVAL.node = yyDollar[1].node + yyVAL.foreachVariable = foreachVariable{yyDollar[1].node, false} } case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:496 + //line parser/parser.y:503 { - yyVAL.node = node.NewSimpleNode("Ref").Append(yyDollar[2].node) + yyVAL.foreachVariable = foreachVariable{yyDollar[2].node, true} } case 183: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:497 + //line parser/parser.y:504 { - yyVAL.node = expr.NewList(yyDollar[3].list) + yyVAL.foreachVariable = foreachVariable{expr.NewList(yyDollar[3].list), false} } case 184: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:498 + //line parser/parser.y:505 { - yyVAL.node = expr.NewShortList(yyDollar[2].list) + yyVAL.foreachVariable = foreachVariable{expr.NewShortList(yyDollar[2].list), false} } case 185: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:502 + //line parser/parser.y:509 { yyVAL.node = yyDollar[1].node } case 186: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:503 + //line parser/parser.y:510 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:507 + //line parser/parser.y:514 { yyVAL.node = yyDollar[1].node } case 188: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:508 + //line parser/parser.y:515 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:512 + //line parser/parser.y:519 { yyVAL.node = yyDollar[1].node } case 190: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:513 + //line parser/parser.y:520 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) } case 191: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:517 + //line parser/parser.y:524 { yyVAL.list = yyDollar[2].list } case 192: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:518 + //line parser/parser.y:525 { yyVAL.list = yyDollar[3].list } case 193: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:519 + //line parser/parser.y:526 { yyVAL.list = yyDollar[2].list } case 194: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:520 + //line parser/parser.y:527 { yyVAL.list = yyDollar[3].list } case 195: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:524 + //line parser/parser.y:531 { yyVAL.list = []node.Node{} } case 196: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:526 + //line parser/parser.y:533 { yyVAL.list = append(yyDollar[1].list, stmt.NewCase(yyDollar[2].token, yyDollar[3].node, yyDollar[5].list)) } case 197: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:530 + //line parser/parser.y:537 { yyVAL.list = append(yyDollar[1].list, stmt.NewDefault(yyDollar[2].token, yyDollar[4].list)) } case 200: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:541 + //line parser/parser.y:548 { yyVAL.node = yyDollar[1].node } case 201: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:542 + //line parser/parser.y:549 { yyVAL.node = stmt.NewStmtList(yyDollar[2].list) } case 202: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:546 + //line parser/parser.y:553 { yyVAL.node = stmt.NewIf(yyDollar[1].token, yyDollar[3].node, yyDollar[5].node) } case 203: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:548 + //line parser/parser.y:555 { _elseIf := stmt.NewElseIf(yyDollar[2].token, yyDollar[4].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node.(stmt.If).AddElseIf(_elseIf) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:555 + //line parser/parser.y:562 { yyVAL.node = yyDollar[1].node } case 205: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:557 + //line parser/parser.y:564 { _else := stmt.NewElse(yyDollar[2].token, yyDollar[3].node) yyVAL.node = yyDollar[1].node.(stmt.If).SetElse(_else) } case 206: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:565 + //line parser/parser.y:572 { yyVAL.node = stmt.NewAltIf(yyDollar[1].token, yyDollar[3].node, stmt.NewStmtList(yyDollar[6].list)) } case 207: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:569 + //line parser/parser.y:576 { _elseIf := stmt.NewAltElseIf(yyDollar[2].token, yyDollar[4].node, stmt.NewStmtList(yyDollar[7].list)) yyVAL.node = yyDollar[1].node.(stmt.AltIf).AddElseIf(_elseIf) } case 208: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:576 + //line parser/parser.y:583 { yyVAL.node = yyDollar[1].node } case 209: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:578 + //line parser/parser.y:585 { _else := stmt.NewAltElse(yyDollar[2].token, stmt.NewStmtList(yyDollar[4].list)) yyVAL.node = yyDollar[1].node.(stmt.AltIf).SetElse(_else) } case 210: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:585 + //line parser/parser.y:592 { yyVAL.list = yyDollar[1].list } case 211: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:586 + //line parser/parser.y:593 { yyVAL.list = nil } case 212: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:590 + //line parser/parser.y:597 { yyVAL.list = []node.Node{yyDollar[1].node} } case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:591 + //line parser/parser.y:598 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 214: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:596 + //line parser/parser.y:603 { yyVAL.node = node.NewSimpleNode("Parameter"). Append(yyDollar[1].node). @@ -3318,7 +3324,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:604 + //line parser/parser.y:611 { yyVAL.node = node.NewSimpleNode("Parameter"). Append(yyDollar[1].node). @@ -3329,453 +3335,453 @@ yydefault: } case 216: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:615 + //line parser/parser.y:622 { yyVAL.node = node.NewSimpleNode("No type") } case 217: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:616 + //line parser/parser.y:623 { yyVAL.node = yyDollar[1].node } case 218: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:620 + //line parser/parser.y:627 { yyVAL.node = yyDollar[1].node } case 219: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:621 + //line parser/parser.y:628 { yyVAL.node = yyDollar[2].node yyVAL.node.Attribute("nullable", "true") } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:625 + //line parser/parser.y:632 { yyVAL.node = node.NewSimpleNode("array type") } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:626 + //line parser/parser.y:633 { yyVAL.node = node.NewSimpleNode("callable type") } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:627 + //line parser/parser.y:634 { yyVAL.node = yyDollar[1].node } case 223: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:631 + //line parser/parser.y:638 { yyVAL.node = node.NewSimpleNode("No return type") } case 224: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:632 + //line parser/parser.y:639 { yyVAL.node = yyDollar[2].node } case 225: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:636 + //line parser/parser.y:643 { yyVAL.list = []node.Node{} } case 226: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:637 + //line parser/parser.y:644 { yyVAL.list = yyDollar[2].list } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:641 + //line parser/parser.y:648 { yyVAL.list = []node.Node{yyDollar[1].node} } case 228: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:642 + //line parser/parser.y:649 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:646 + //line parser/parser.y:653 { yyVAL.node = yyDollar[1].node } case 230: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:647 + //line parser/parser.y:654 { yyVAL.node = node.NewSimpleNode("Unpack").Append(yyDollar[2].node) } case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:651 + //line parser/parser.y:658 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 232: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:652 + //line parser/parser.y:659 { yyVAL.list = []node.Node{yyDollar[1].node} } case 233: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:656 + //line parser/parser.y:663 { yyVAL.node = yyDollar[1].node } case 234: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:660 + //line parser/parser.y:667 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:661 + //line parser/parser.y:668 { yyVAL.list = []node.Node{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:665 + //line parser/parser.y:672 { yyVAL.node = stmt.NewStaticVar(yyDollar[1].token, nil) } case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:666 + //line parser/parser.y:673 { yyVAL.node = stmt.NewStaticVar(yyDollar[1].token, yyDollar[3].node) } case 238: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:670 + //line parser/parser.y:677 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 239: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:671 + //line parser/parser.y:678 { yyVAL.list = []node.Node{} } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:675 + //line parser/parser.y:682 { yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].list) } case 241: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:676 + //line parser/parser.y:683 { yyVAL.node = stmt.NewClassConst(yyDollar[2].token, yyDollar[1].list, yyDollar[3].list) } case 242: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:677 + //line parser/parser.y:684 { yyVAL.node = stmt.NewTraitUse(yyDollar[1].token, yyDollar[2].node.(node.SimpleNode).Children, yyDollar[3].list) } case 243: yyDollar = yyS[yypt-9 : yypt+1] - //line parser/parser.y:679 + //line parser/parser.y:686 { yyVAL.node = stmt.NewClassMethod(yyDollar[4].token, yyDollar[1].list, yyDollar[3].value == "true", yyDollar[6].list, yyDollar[8].node, yyDollar[9].list) } case 244: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:685 + //line parser/parser.y:692 { yyVAL.node = node.NewSimpleNode("NameList").Append(yyDollar[1].node) } case 245: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:686 + //line parser/parser.y:693 { yyVAL.node = yyDollar[1].node.Append(yyDollar[3].node) } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:690 + //line parser/parser.y:697 { yyVAL.list = nil } case 247: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:691 + //line parser/parser.y:698 { yyVAL.list = nil } case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:692 + //line parser/parser.y:699 { yyVAL.list = yyDollar[2].list } case 249: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:696 + //line parser/parser.y:703 { yyVAL.list = []node.Node{yyDollar[1].node} } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:697 + //line parser/parser.y:704 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:701 + //line parser/parser.y:708 { yyVAL.node = yyDollar[1].node } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:702 + //line parser/parser.y:709 { yyVAL.node = yyDollar[1].node } case 253: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:707 + //line parser/parser.y:714 { name := name.NewName(yyDollar[3].node.(node.SimpleNode).Children) yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, name) } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:714 + //line parser/parser.y:721 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, yyDollar[3].token) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:716 + //line parser/parser.y:723 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, yyDollar[3].token) } case 256: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:718 + //line parser/parser.y:725 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, yyDollar[4].token) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:719 + //line parser/parser.y:726 { yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) } case 258: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:723 + //line parser/parser.y:730 { yyVAL.node = stmt.NewTraitMethodRef(nil, yyDollar[1].token) } case 259: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:724 + //line parser/parser.y:731 { yyVAL.node = yyDollar[1].node } case 260: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:728 + //line parser/parser.y:735 { yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, yyDollar[3].token) } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:732 + //line parser/parser.y:739 { yyVAL.list = nil } case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:733 + //line parser/parser.y:740 { yyVAL.list = yyDollar[2].list } case 263: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:737 + //line parser/parser.y:744 { yyVAL.list = yyDollar[1].list } case 264: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:738 + //line parser/parser.y:745 { yyVAL.list = []node.Node{node.NewIdentifier(yyDollar[1].token)} } case 265: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:742 + //line parser/parser.y:749 { yyVAL.list = nil } case 266: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:743 + //line parser/parser.y:750 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:747 + //line parser/parser.y:754 { yyVAL.list = []node.Node{yyDollar[1].node} } case 268: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:748 + //line parser/parser.y:755 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:752 + //line parser/parser.y:759 { yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 270: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:753 + //line parser/parser.y:760 { yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:754 + //line parser/parser.y:761 { yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:755 + //line parser/parser.y:762 { yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:756 + //line parser/parser.y:763 { yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:757 + //line parser/parser.y:764 { yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 275: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:761 + //line parser/parser.y:768 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:762 + //line parser/parser.y:769 { yyVAL.list = []node.Node{yyDollar[1].node} } case 277: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:766 + //line parser/parser.y:773 { yyVAL.node = stmt.NewProperty(yyDollar[1].token, nil) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:767 + //line parser/parser.y:774 { yyVAL.node = stmt.NewProperty(yyDollar[1].token, yyDollar[3].node) } case 279: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:771 + //line parser/parser.y:778 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 280: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:772 + //line parser/parser.y:779 { yyVAL.list = []node.Node{yyDollar[1].node} } case 281: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:776 + //line parser/parser.y:783 { yyVAL.node = stmt.NewConstant(yyDollar[1].token, yyDollar[3].node) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:780 + //line parser/parser.y:787 { yyVAL.node = stmt.NewConstant(yyDollar[1].token, yyDollar[3].node) } case 283: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:784 + //line parser/parser.y:791 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:785 + //line parser/parser.y:792 { yyVAL.list = []node.Node{yyDollar[1].node} } case 285: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:789 + //line parser/parser.y:796 { yyVAL.node = yyDollar[1].node } case 286: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:793 + //line parser/parser.y:800 { yyVAL.list = nil } case 287: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:794 + //line parser/parser.y:801 { yyVAL.list = yyDollar[1].list } case 288: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:797 + //line parser/parser.y:804 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:798 + //line parser/parser.y:805 { yyVAL.list = []node.Node{yyDollar[1].node} } case 290: yyDollar = yyS[yypt-7 : yypt+1] - //line parser/parser.y:803 + //line parser/parser.y:810 { { yyVAL.node = stmt.NewClass(yyDollar[1].token, nil, yyDollar[2].list, yyDollar[3].node, yyDollar[4].list, yyDollar[6].list) @@ -3783,969 +3789,969 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:809 + //line parser/parser.y:816 { yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].list) } case 292: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:810 + //line parser/parser.y:817 { yyVAL.node = expr.NewNew(yyDollar[2].node, nil) } case 293: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:815 + //line parser/parser.y:822 { list := expr.NewList(yyDollar[3].list) yyVAL.node = assign_op.NewAssign(list, yyDollar[6].node) } case 294: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:820 + //line parser/parser.y:827 { shortList := expr.NewShortList(yyDollar[2].list) yyVAL.node = assign_op.NewAssign(shortList, yyDollar[5].node) } case 295: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:824 + //line parser/parser.y:831 { yyVAL.node = assign_op.NewAssign(yyDollar[1].node, yyDollar[3].node) } case 296: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:825 + //line parser/parser.y:832 { yyVAL.node = assign_op.NewAssignRef(yyDollar[1].node, yyDollar[4].node) } case 297: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:826 + //line parser/parser.y:833 { yyVAL.node = expr.NewClone(yyDollar[2].node) } case 298: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:827 + //line parser/parser.y:834 { yyVAL.node = assign_op.NewPlus(yyDollar[1].node, yyDollar[3].node) } case 299: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:828 + //line parser/parser.y:835 { yyVAL.node = assign_op.NewMinus(yyDollar[1].node, yyDollar[3].node) } case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:829 + //line parser/parser.y:836 { yyVAL.node = assign_op.NewMul(yyDollar[1].node, yyDollar[3].node) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:830 + //line parser/parser.y:837 { yyVAL.node = assign_op.NewPow(yyDollar[1].node, yyDollar[3].node) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:831 + //line parser/parser.y:838 { yyVAL.node = assign_op.NewDiv(yyDollar[1].node, yyDollar[3].node) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:832 + //line parser/parser.y:839 { yyVAL.node = assign_op.NewConcat(yyDollar[1].node, yyDollar[3].node) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:833 + //line parser/parser.y:840 { yyVAL.node = assign_op.NewMod(yyDollar[1].node, yyDollar[3].node) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:834 + //line parser/parser.y:841 { yyVAL.node = assign_op.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:835 + //line parser/parser.y:842 { yyVAL.node = assign_op.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:836 + //line parser/parser.y:843 { yyVAL.node = assign_op.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:837 + //line parser/parser.y:844 { yyVAL.node = assign_op.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:838 + //line parser/parser.y:845 { yyVAL.node = assign_op.NewShiftRight(yyDollar[1].node, yyDollar[3].node) } case 310: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:839 + //line parser/parser.y:846 { yyVAL.node = expr.NewPostInc(yyDollar[1].node) } case 311: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:840 + //line parser/parser.y:847 { yyVAL.node = expr.NewPreInc(yyDollar[2].node) } case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:841 + //line parser/parser.y:848 { yyVAL.node = expr.NewPostDec(yyDollar[1].node) } case 313: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:842 + //line parser/parser.y:849 { yyVAL.node = expr.NewPreDec(yyDollar[2].node) } case 314: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:843 + //line parser/parser.y:850 { yyVAL.node = binary_op.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) } case 315: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:844 + //line parser/parser.y:851 { yyVAL.node = binary_op.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) } case 316: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:845 + //line parser/parser.y:852 { yyVAL.node = binary_op.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) } case 317: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:846 + //line parser/parser.y:853 { yyVAL.node = binary_op.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) } case 318: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:847 + //line parser/parser.y:854 { yyVAL.node = binary_op.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:848 + //line parser/parser.y:855 { yyVAL.node = binary_op.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) } case 320: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:849 + //line parser/parser.y:856 { yyVAL.node = binary_op.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:850 + //line parser/parser.y:857 { yyVAL.node = binary_op.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:851 + //line parser/parser.y:858 { yyVAL.node = binary_op.NewConcat(yyDollar[1].node, yyDollar[3].node) } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:852 + //line parser/parser.y:859 { yyVAL.node = binary_op.NewPlus(yyDollar[1].node, yyDollar[3].node) } case 324: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:853 + //line parser/parser.y:860 { yyVAL.node = binary_op.NewMinus(yyDollar[1].node, yyDollar[3].node) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:854 + //line parser/parser.y:861 { yyVAL.node = binary_op.NewMul(yyDollar[1].node, yyDollar[3].node) } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:855 + //line parser/parser.y:862 { yyVAL.node = binary_op.NewPow(yyDollar[1].node, yyDollar[3].node) } case 327: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:856 + //line parser/parser.y:863 { yyVAL.node = binary_op.NewDiv(yyDollar[1].node, yyDollar[3].node) } case 328: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:857 + //line parser/parser.y:864 { yyVAL.node = binary_op.NewMod(yyDollar[1].node, yyDollar[3].node) } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:858 + //line parser/parser.y:865 { yyVAL.node = binary_op.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) } case 330: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:859 + //line parser/parser.y:866 { yyVAL.node = binary_op.NewShiftRight(yyDollar[1].node, yyDollar[3].node) } case 331: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:860 + //line parser/parser.y:867 { yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) } case 332: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:861 + //line parser/parser.y:868 { yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) } case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:862 + //line parser/parser.y:869 { yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:863 + //line parser/parser.y:870 { yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) } case 335: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:864 + //line parser/parser.y:871 { yyVAL.node = binary_op.NewIdentical(yyDollar[1].node, yyDollar[3].node) } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:865 + //line parser/parser.y:872 { yyVAL.node = binary_op.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) } case 337: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:866 + //line parser/parser.y:873 { yyVAL.node = binary_op.NewEqual(yyDollar[1].node, yyDollar[3].node) } case 338: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:867 + //line parser/parser.y:874 { yyVAL.node = binary_op.NewNotEqual(yyDollar[1].node, yyDollar[3].node) } case 339: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:868 + //line parser/parser.y:875 { yyVAL.node = binary_op.NewSmaller(yyDollar[1].node, yyDollar[3].node) } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:869 + //line parser/parser.y:876 { yyVAL.node = binary_op.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:870 + //line parser/parser.y:877 { yyVAL.node = binary_op.NewGreater(yyDollar[1].node, yyDollar[3].node) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:871 + //line parser/parser.y:878 { yyVAL.node = binary_op.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) } case 343: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:872 + //line parser/parser.y:879 { yyVAL.node = binary_op.NewSpaceship(yyDollar[1].node, yyDollar[3].node) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:873 + //line parser/parser.y:880 { yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:874 + //line parser/parser.y:881 { yyVAL.node = yyDollar[2].node } case 346: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:875 + //line parser/parser.y:882 { yyVAL.node = yyDollar[1].node } case 347: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:876 + //line parser/parser.y:883 { yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) } case 348: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:877 + //line parser/parser.y:884 { yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) } case 349: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:878 + //line parser/parser.y:885 { yyVAL.node = binary_op.NewCoalesce(yyDollar[1].node, yyDollar[3].node) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:879 + //line parser/parser.y:886 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:880 + //line parser/parser.y:887 { yyVAL.node = cast.NewCastInt(yyDollar[2].node) } case 352: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:881 + //line parser/parser.y:888 { yyVAL.node = cast.NewCastDouble(yyDollar[2].node) } case 353: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:882 + //line parser/parser.y:889 { yyVAL.node = cast.NewCastString(yyDollar[2].node) } case 354: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:883 + //line parser/parser.y:890 { yyVAL.node = cast.NewCastArray(yyDollar[2].node) } case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:884 + //line parser/parser.y:891 { yyVAL.node = cast.NewCastObject(yyDollar[2].node) } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:885 + //line parser/parser.y:892 { yyVAL.node = cast.NewCastBool(yyDollar[2].node) } case 357: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:886 + //line parser/parser.y:893 { yyVAL.node = cast.NewCastUnset(yyDollar[2].node) } case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:887 + //line parser/parser.y:894 { yyVAL.node = expr.NewExit(yyDollar[2].node, strings.EqualFold(yyDollar[1].token.Value, "die")) } case 359: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:888 + //line parser/parser.y:895 { yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:889 + //line parser/parser.y:896 { yyVAL.node = yyDollar[1].node } case 361: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:890 + //line parser/parser.y:897 { yyVAL.node = expr.NewShellExec(yyDollar[2].list) } case 362: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:891 + //line parser/parser.y:898 { yyVAL.node = expr.NewPrint(yyDollar[2].node) } case 363: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:892 + //line parser/parser.y:899 { yyVAL.node = expr.NewYield(nil, nil) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:893 + //line parser/parser.y:900 { yyVAL.node = expr.NewYield(nil, yyDollar[2].node) } case 365: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:894 + //line parser/parser.y:901 { yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:895 + //line parser/parser.y:902 { yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) } case 367: yyDollar = yyS[yypt-10 : yypt+1] - //line parser/parser.y:897 + //line parser/parser.y:904 { yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].list, yyDollar[7].node, yyDollar[9].list, false, yyDollar[2].value == "true") } case 368: yyDollar = yyS[yypt-11 : yypt+1] - //line parser/parser.y:901 + //line parser/parser.y:908 { yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].list, yyDollar[8].node, yyDollar[10].list, true, yyDollar[3].value == "true") } case 369: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:907 + //line parser/parser.y:914 { yyVAL.value = "false" } case 370: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:908 + //line parser/parser.y:915 { yyVAL.value = "true" } case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:912 + //line parser/parser.y:919 { yyVAL.list = []node.Node{} } case 372: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:913 + //line parser/parser.y:920 { yyVAL.list = yyDollar[3].list } case 373: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:917 + //line parser/parser.y:924 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:918 + //line parser/parser.y:925 { yyVAL.list = []node.Node{yyDollar[1].node} } case 375: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:922 + //line parser/parser.y:929 { yyVAL.node = expr.NewClusureUse(expr.NewVariable(node.NewIdentifier(yyDollar[1].token)), false) } case 376: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:923 + //line parser/parser.y:930 { yyVAL.node = expr.NewClusureUse(expr.NewVariable(node.NewIdentifier(yyDollar[2].token)), true) } case 377: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:927 + //line parser/parser.y:934 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].list) } case 378: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:929 + //line parser/parser.y:936 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].list) } case 379: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:931 + //line parser/parser.y:938 { yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].list) } case 380: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:932 + //line parser/parser.y:939 { yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].list) } case 381: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:936 + //line parser/parser.y:943 { - yyVAL.node = node.NewSimpleNode("Static") + yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 382: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:937 + //line parser/parser.y:944 { yyVAL.node = yyDollar[1].node } case 383: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:941 + //line parser/parser.y:948 { yyVAL.node = yyDollar[1].node } case 384: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:942 + //line parser/parser.y:949 { yyVAL.node = yyDollar[1].node } case 385: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:946 + //line parser/parser.y:953 { - yyVAL.node = node.NewSimpleNode("") + yyVAL.node = nil } case 386: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:947 + //line parser/parser.y:954 { yyVAL.node = yyDollar[2].node } case 387: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:951 + //line parser/parser.y:958 { yyVAL.list = []node.Node{} } case 388: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:952 + //line parser/parser.y:959 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token)} } case 389: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:953 + //line parser/parser.y:960 { yyVAL.list = yyDollar[1].list } case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:957 + //line parser/parser.y:964 { yyVAL.list = nil } case 391: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:958 + //line parser/parser.y:965 { yyVAL.list = yyDollar[1].list } case 392: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:962 + //line parser/parser.y:969 { yyVAL.node = expr.NewArray(yyDollar[1].token, yyDollar[4].token, yyDollar[3].list) } case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:963 + //line parser/parser.y:970 { yyVAL.node = expr.NewShortArray(yyDollar[1].token, yyDollar[3].token, yyDollar[2].list) } case 394: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:964 + //line parser/parser.y:971 { yyVAL.node = scalar.NewString(yyDollar[1].token) } case 395: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:968 + //line parser/parser.y:975 { yyVAL.node = scalar.NewLnumber(yyDollar[1].token) } case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:969 + //line parser/parser.y:976 { yyVAL.node = scalar.NewDnumber(yyDollar[1].token) } case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:970 + //line parser/parser.y:977 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token) } case 398: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:971 + //line parser/parser.y:978 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token) } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:972 + //line parser/parser.y:979 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token) } case 400: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:973 + //line parser/parser.y:980 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token) } case 401: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:974 + //line parser/parser.y:981 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token) } case 402: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:975 + //line parser/parser.y:982 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token) } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:976 + //line parser/parser.y:983 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token) } case 404: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:977 + //line parser/parser.y:984 { yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token) } case 405: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:979 + //line parser/parser.y:986 { yyVAL.node = scalar.NewString(yyDollar[2].token) /* TODO: mark as Heredoc*/ } case 406: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:981 + //line parser/parser.y:988 { yyVAL.node = scalar.NewEncapsed(yyDollar[1].token, nil, yyDollar[2].token) } case 407: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:982 + //line parser/parser.y:989 { yyVAL.node = scalar.NewEncapsed(yyDollar[1].token, yyDollar[2].list, yyDollar[3].token) } case 408: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:983 + //line parser/parser.y:990 { yyVAL.node = scalar.NewEncapsed(yyDollar[1].token, yyDollar[2].list, yyDollar[3].token) } case 409: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:984 + //line parser/parser.y:991 { yyVAL.node = yyDollar[1].node } case 410: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:985 + //line parser/parser.y:992 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:989 + //line parser/parser.y:996 { yyVAL.node = expr.NewConstFetch(yyDollar[1].node) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:990 + //line parser/parser.y:997 { yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, yyDollar[3].token) } case 413: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:992 + //line parser/parser.y:999 { yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, yyDollar[3].token) } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:996 + //line parser/parser.y:1003 { yyVAL.node = yyDollar[1].node } case 415: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:997 + //line parser/parser.y:1004 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1001 + //line parser/parser.y:1008 { - yyVAL.node = node.NewSimpleNode("optional node. TODO: must be nil") + yyVAL.node = nil } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1002 + //line parser/parser.y:1009 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1006 + //line parser/parser.y:1013 { yyVAL.node = yyDollar[1].node } case 419: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1010 + //line parser/parser.y:1017 { yyVAL.node = yyDollar[1].node } case 420: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1011 + //line parser/parser.y:1018 { yyVAL.node = yyDollar[2].node } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1012 + //line parser/parser.y:1019 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1016 + //line parser/parser.y:1023 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1017 + //line parser/parser.y:1024 { yyVAL.node = yyDollar[2].node } case 424: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1018 + //line parser/parser.y:1025 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1022 + //line parser/parser.y:1029 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1023 + //line parser/parser.y:1030 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) } case 427: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1024 + //line parser/parser.y:1031 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) } case 428: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1025 + //line parser/parser.y:1032 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) } case 429: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1027 + //line parser/parser.y:1034 { yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].list) } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1028 + //line parser/parser.y:1035 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1032 + //line parser/parser.y:1039 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1033 + //line parser/parser.y:1040 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1034 + //line parser/parser.y:1041 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1038 + //line parser/parser.y:1045 { yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[1].token)) } case 435: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1039 + //line parser/parser.y:1046 { yyVAL.node = expr.NewVariable(yyDollar[3].node) } case 436: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1040 + //line parser/parser.y:1047 { yyVAL.node = expr.NewVariable(yyDollar[2].node) } case 437: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1045 + //line parser/parser.y:1052 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) } case 438: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1047 + //line parser/parser.y:1054 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) } case 439: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1051 + //line parser/parser.y:1058 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1052 + //line parser/parser.y:1059 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) } case 441: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1053 + //line parser/parser.y:1060 { yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) } case 442: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1054 + //line parser/parser.y:1061 { yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) } case 443: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1056 + //line parser/parser.y:1063 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) } case 444: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1058 + //line parser/parser.y:1065 { yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1062 + //line parser/parser.y:1069 { yyVAL.node = node.NewSimpleNode("MemberName").Attribute("value", yyDollar[1].token.Value) } case 446: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1063 + //line parser/parser.y:1070 { yyVAL.node = yyDollar[2].node } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1064 + //line parser/parser.y:1071 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1068 + //line parser/parser.y:1075 { yyVAL.node = node.NewIdentifier(yyDollar[1].token) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1069 + //line parser/parser.y:1076 { yyVAL.node = yyDollar[2].node } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1070 + //line parser/parser.y:1077 { yyVAL.node = yyDollar[1].node } case 451: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1075 + //line parser/parser.y:1082 { if yyDollar[1].list[len(yyDollar[1].list)-1] == nil { yyVAL.list = yyDollar[1].list[:len(yyDollar[1].list)-1] @@ -4755,55 +4761,55 @@ yydefault: } case 452: yyDollar = yyS[yypt-0 : yypt+1] - //line parser/parser.y:1085 + //line parser/parser.y:1092 { yyVAL.node = nil } case 453: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1086 + //line parser/parser.y:1093 { yyVAL.node = yyDollar[1].node } case 454: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1091 + //line parser/parser.y:1098 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 455: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1092 + //line parser/parser.y:1099 { yyVAL.list = []node.Node{yyDollar[1].node} } case 456: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1096 + //line parser/parser.y:1103 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) } case 457: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1097 + //line parser/parser.y:1104 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) } case 458: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1098 + //line parser/parser.y:1105 { yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[4].node, true) } case 459: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1099 + //line parser/parser.y:1106 { yyVAL.node = expr.NewArrayItem(nil, yyDollar[2].node, true) } case 460: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:1101 + //line parser/parser.y:1108 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[5].list) @@ -4811,7 +4817,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1107 + //line parser/parser.y:1114 { // TODO: Cannot use list() as standalone expression list := expr.NewList(yyDollar[3].list) @@ -4819,151 +4825,151 @@ yydefault: } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1115 + //line parser/parser.y:1122 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 463: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1116 + //line parser/parser.y:1123 { yyVAL.list = append(yyDollar[1].list, scalar.NewEncapsedStringPart(yyDollar[2].token)) } case 464: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1117 + //line parser/parser.y:1124 { yyVAL.list = []node.Node{yyDollar[1].node} } case 465: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1118 + //line parser/parser.y:1125 { yyVAL.list = []node.Node{scalar.NewEncapsedStringPart(yyDollar[1].token), yyDollar[2].node} } case 466: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1122 + //line parser/parser.y:1129 { yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[1].token)) } case 467: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1123 + //line parser/parser.y:1130 { yyVAL.node = expr.NewArrayDimFetch(expr.NewVariable(node.NewIdentifier(yyDollar[1].token)), yyDollar[3].node) } case 468: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1124 + //line parser/parser.y:1131 { yyVAL.node = expr.NewPropertyFetch(expr.NewVariable(node.NewIdentifier(yyDollar[1].token)), node.NewIdentifier(yyDollar[3].token)) } case 469: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1125 + //line parser/parser.y:1132 { yyVAL.node = expr.NewVariable(yyDollar[2].node) } case 470: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1126 + //line parser/parser.y:1133 { yyVAL.node = expr.NewVariable(node.NewIdentifier(yyDollar[2].token)) } case 471: yyDollar = yyS[yypt-6 : yypt+1] - //line parser/parser.y:1128 + //line parser/parser.y:1135 { yyVAL.node = expr.NewArrayDimFetch(expr.NewVariable(node.NewIdentifier(yyDollar[2].token)), yyDollar[4].node) } case 472: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1129 + //line parser/parser.y:1136 { yyVAL.node = yyDollar[2].node } case 473: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1132 + //line parser/parser.y:1139 { yyVAL.node = node.NewSimpleNode("OffsetString").Attribute("value", yyDollar[1].token.String()) } case 474: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1133 + //line parser/parser.y:1140 { yyVAL.node = node.NewSimpleNode("OffsetNumString").Attribute("value", yyDollar[1].token.String()) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1134 + //line parser/parser.y:1141 { yyVAL.node = node.NewSimpleNode("OffsetNegateNumString").Attribute("value", yyDollar[2].token.String()) } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1135 + //line parser/parser.y:1142 { yyVAL.node = node.NewSimpleNode("OffsetVariable").Attribute("value", yyDollar[1].token.String()) } case 477: yyDollar = yyS[yypt-5 : yypt+1] - //line parser/parser.y:1139 + //line parser/parser.y:1146 { yyVAL.node = expr.NewIsset(yyDollar[3].list) } case 478: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1140 + //line parser/parser.y:1147 { yyVAL.node = expr.NewEmpty(yyDollar[3].node) } case 479: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1141 + //line parser/parser.y:1148 { yyVAL.node = expr.NewInclude(yyDollar[2].node) } case 480: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1142 + //line parser/parser.y:1149 { yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) } case 481: yyDollar = yyS[yypt-4 : yypt+1] - //line parser/parser.y:1143 + //line parser/parser.y:1150 { yyVAL.node = expr.NewEval(yyDollar[3].node) } case 482: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1144 + //line parser/parser.y:1151 { yyVAL.node = expr.NewRequire(yyDollar[2].node) } case 483: yyDollar = yyS[yypt-2 : yypt+1] - //line parser/parser.y:1145 + //line parser/parser.y:1152 { yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) } case 484: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1149 + //line parser/parser.y:1156 { yyVAL.list = []node.Node{yyDollar[1].node} } case 485: yyDollar = yyS[yypt-3 : yypt+1] - //line parser/parser.y:1150 + //line parser/parser.y:1157 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line parser/parser.y:1154 + //line parser/parser.y:1161 { yyVAL.node = yyDollar[1].node } diff --git a/parser/parser.y b/parser/parser.y index e2915d6..4852b21 100644 --- a/parser/parser.y +++ b/parser/parser.y @@ -26,6 +26,11 @@ func Parse(src io.Reader, fName string) node.Node { return rootnode } +type foreachVariable struct { + node node.Node + byRef bool +} + %} %union{ @@ -34,6 +39,7 @@ func Parse(src io.Reader, fName string) node.Node { value string list []node.Node strings []string + foreachVariable foreachVariable } %left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE @@ -196,7 +202,7 @@ func Parse(src io.Reader, fName string) node.Node { %type group_use_declaration inline_use_declaration %type mixed_group_use_declaration use_declaration unprefixed_use_declaration %type const_decl inner_statement -%type expr optional_expr while_statement for_statement foreach_variable +%type expr optional_expr while_statement for_statement %type foreach_statement declare_statement finally_statement unset_variable variable %type extends_from parameter optional_type argument expr_without_variable global_var %type static_var class_statement trait_adaptation trait_precedence trait_alias @@ -217,6 +223,7 @@ func Parse(src io.Reader, fName string) node.Node { %type member_modifier %type use_type +%type foreach_variable %type class_modifiers %type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list @@ -293,7 +300,7 @@ top_statement: use_type: T_FUNCTION { $$ = node.NewIdentifier($1) } - | T_CONST { $$ = node.NewSimpleNode("ConstUseType"); } + | T_CONST { $$ = node.NewIdentifier($1) } ; group_use_declaration: @@ -396,9 +403,9 @@ statement: | T_UNSET '(' unset_variables possible_comma ')' ';' { $$ = stmt.NewUnset($1, $3) } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { $$ = stmt.NewForeach($1, $3, nil, $5, $7); } - | T_FOREACH '(' expr T_AS foreach_variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { $$ = stmt.NewForeach($1, $3, $5, $7, $9); } + { $$ = stmt.NewForeach($1, $3, nil, $5.node, $7, $5.byRef); } + | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement + { $$ = stmt.NewForeach($1, $3, $5, $7.node, $9, $7.byRef); } | T_DECLARE '(' const_list ')' declare_statement { $$ = stmt.NewDeclare($1, $3, $5) } | ';' { $$ = stmt.NewNop($1) } | T_TRY '{' inner_statement_list '}' catch_list finally_statement @@ -492,10 +499,10 @@ implements_list: ; foreach_variable: - variable { $$ = $1; } - | '&' variable { $$ = node.NewSimpleNode("Ref").Append($2); } - | T_LIST '(' array_pair_list ')' { $$ = expr.NewList($3) } - | '[' array_pair_list ']' { $$ = expr.NewShortList($2) } + variable { $$ = foreachVariable{$1, false} } + | '&' variable { $$ = foreachVariable{$2, true} } + | T_LIST '(' array_pair_list ')' { $$ = foreachVariable{expr.NewList($3), false} } + | '[' array_pair_list ']' { $$ = foreachVariable{expr.NewShortList($2), false} } ; for_statement: @@ -933,7 +940,7 @@ function_call: ; class_name: - T_STATIC { $$ = node.NewSimpleNode("Static") } + T_STATIC { $$ = node.NewIdentifier($1) } | name { $$ = $1; } ; @@ -943,7 +950,7 @@ class_name_reference: ; exit_expr: - /* empty */ { $$ = node.NewSimpleNode("") } + /* empty */ { $$ = nil } | '(' optional_expr ')' { $$ = $2; } ; @@ -998,7 +1005,7 @@ expr: ; optional_expr: - /* empty */ { $$ = node.NewSimpleNode("optional node. TODO: must be nil") } + /* empty */ { $$ = nil } | expr { $$ = $1; } ;