diff options
Diffstat (limited to 'appl/cmd')
| -rw-r--r-- | appl/cmd/limbo/limbo.b | 1223 | ||||
| -rw-r--r-- | appl/cmd/limbo/limbo.y | 4 |
2 files changed, 617 insertions, 610 deletions
diff --git a/appl/cmd/limbo/limbo.b b/appl/cmd/limbo/limbo.b index bb78a901..38cae5ab 100644 --- a/appl/cmd/limbo/limbo.b +++ b/appl/cmd/limbo/limbo.b @@ -173,7 +173,7 @@ YYEOFCODE: con 1; YYERRCODE: con 2; YYMAXDEPTH: con 200; -#line 1632 "limbo.y" +#line 1636 "limbo.y" include "ipints.m"; @@ -532,7 +532,7 @@ yyexca := array[] of {-1, 1, 50, 62, 54, 88, 99, 62, - -2, 252, + -2, 253, -1, 211, 59, 29, 71, 29, @@ -540,15 +540,15 @@ yyexca := array[] of {-1, 1, -1, 230, 1, 2, -2, 0, --1, 273, +-1, 274, 50, 176, - -2, 257, --1, 308, + -2, 258, +-1, 309, 59, 41, 71, 41, 91, 41, -2, 0, --1, 310, +-1, 311, 72, 175, 85, 150, 86, 150, @@ -557,11 +557,11 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 380, +-1, 381, 50, 62, 99, 62, - -2, 252, --1, 381, + -2, 253, +-1, 382, 72, 175, 85, 150, 86, 150, @@ -570,15 +570,15 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 387, +-1, 388, 53, 71, 54, 71, -2, 110, --1, 389, +-1, 390, 53, 72, 54, 72, -2, 112, --1, 421, +-1, 422, 72, 175, 85, 150, 86, 150, @@ -587,7 +587,7 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 428, +-1, 429, 72, 175, 85, 150, 86, 150, @@ -596,19 +596,19 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 443, +-1, 444, 53, 71, 54, 71, -2, 111, --1, 444, +-1, 445, 53, 72, 54, 72, -2, 113, --1, 452, - 71, 279, - 99, 279, +-1, 453, + 71, 280, + 99, 280, -2, 163, --1, 469, +-1, 470, 72, 175, 85, 150, 86, 150, @@ -617,23 +617,23 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 486, +-1, 487, 50, 126, 99, 126, - -2, 239, --1, 491, - 71, 276, + -2, 240, +-1, 492, + 71, 277, -2, 0, --1, 503, +-1, 504, 59, 47, 71, 47, -2, 0, --1, 508, +-1, 509, 59, 41, 71, 41, 91, 41, -2, 0, --1, 514, +-1, 515, 72, 175, 85, 150, 86, 150, @@ -642,7 +642,7 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 548, +-1, 549, 72, 175, 85, 150, 86, 150, @@ -651,7 +651,7 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 554, +-1, 555, 71, 154, 72, 175, 85, 150, @@ -661,11 +661,11 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 562, +-1, 563, 56, 59, 62, 59, -2, 62, --1, 568, +-1, 569, 72, 175, 85, 150, 86, 150, @@ -674,7 +674,7 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 573, +-1, 574, 71, 157, 72, 175, 85, 150, @@ -684,10 +684,10 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 577, +-1, 578, 72, 176, -2, 163, --1, 596, +-1, 597, 71, 160, 72, 175, 85, 150, @@ -697,7 +697,7 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 602, +-1, 603, 71, 168, 72, 175, 85, 150, @@ -707,7 +707,7 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 606, +-1, 607, 72, 175, 85, 150, 86, 150, @@ -716,367 +716,365 @@ yyexca := array[] of {-1, 1, 90, 150, 91, 150, -2, 0, --1, 609, +-1, 610, 50, 62, 56, 171, 62, 171, 99, 62, - -2, 252, + -2, 253, }; -YYNPROD: con 284; +YYNPROD: con 285; YYPRIVATE: con 57344; yytoknames: array of string; yystates: array of string; yydebug: con 0; -YYLAST: con 2727; +YYLAST: con 2705; yyact := array[] of { - 379, 591, 453, 364, 505, 384, 412, 310, 369, 314, - 359, 451, 449, 185, 84, 83, 432, 298, 270, 15, - 8, 49, 213, 102, 320, 12, 42, 110, 48, 78, - 79, 80, 4, 35, 198, 51, 23, 544, 363, 6, - 423, 3, 6, 486, 459, 382, 365, 14, 458, 21, - 14, 353, 350, 293, 285, 491, 118, 225, 400, 330, - 286, 226, 31, 223, 46, 112, 465, 11, 105, 517, - 420, 419, 418, 186, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 43, 117, 422, - 182, 183, 184, 599, 71, 10, 286, 205, 10, 208, - 93, 349, 286, 601, 119, 349, 32, 114, 40, 349, - 294, 32, 294, 286, 44, 119, 428, 427, 426, 308, - 430, 429, 431, 585, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 309, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 186, - 6, 547, 273, 230, 37, 22, 194, 195, 14, 22, - 271, 485, 267, 210, 5, 483, 482, 565, 279, 481, - 513, 410, 284, 87, 438, 559, 424, 228, 409, 288, - 85, 407, 94, 90, 289, 99, 269, 415, 217, 202, - 5, 415, 47, 92, 82, 22, 209, 26, 303, 25, - 212, 19, 24, 218, 229, 566, 10, 354, 96, 595, - 98, 95, 100, 572, 101, 88, 89, 86, 557, 194, - 195, 17, 87, 312, 311, 18, 297, 19, 187, 85, - 553, 77, 90, 313, 326, 305, 536, 13, 512, 112, - 323, 318, 92, 82, 525, 207, 490, 17, 87, 468, - 399, 18, 383, 23, 508, 85, 316, 215, 90, 6, - 498, 2, 500, 13, 88, 89, 86, 14, 92, 82, - 194, 195, 479, 186, 43, 467, 398, 340, 194, 195, - 77, 114, 193, 361, 282, 499, 338, 182, 500, 535, - 88, 89, 86, 336, 194, 195, 219, 530, 87, 211, - 341, 44, 87, 324, 580, 85, 77, 325, 90, 85, - 381, 348, 90, 206, 19, 10, 358, 357, 92, 82, - 579, 393, 92, 82, 604, 214, 389, 387, 391, 448, - 614, 194, 195, 402, 45, 539, 194, 195, 18, 392, - 88, 89, 86, 356, 88, 89, 86, 321, 194, 195, - 192, 385, 72, 403, 404, 495, 77, 33, 317, 108, - 77, 416, 73, 19, 19, 421, 436, 301, 281, 186, - 76, 75, 45, 435, 74, 437, 18, 216, 487, 493, - 434, 441, 439, 115, 115, 612, 564, 116, 116, 452, - 488, 340, 183, 444, 443, 507, 414, 45, 316, 604, - 562, 18, 493, 543, 493, 603, 336, 493, 600, 70, - 597, 493, 63, 588, 504, 73, 473, 574, 469, 22, - 478, 442, 476, 76, 75, 69, 68, 74, 480, 18, - 54, 55, 62, 60, 61, 64, 87, 433, 291, 452, - 290, 91, 268, 85, 91, 157, 90, 65, 66, 67, - 120, 489, 493, 104, 497, 493, 92, 82, 555, 540, - 594, 494, 186, 77, 159, 477, 168, 194, 195, 103, - 523, 507, 522, 515, 516, 511, 406, 510, 88, 89, - 86, 87, 452, 527, 523, 529, 528, 487, 85, 518, - 533, 90, 593, 526, 77, 91, 39, 91, 532, 537, - 466, 92, 82, 417, 545, 91, 408, 568, 546, 541, - 523, 36, 552, 329, 224, 556, 91, 592, 299, 554, - 106, 300, 34, 88, 89, 86, 158, 401, 161, 397, - 162, 163, 560, 563, 441, 316, 335, 332, 201, 77, - 160, 159, 570, 200, 197, 577, 569, 575, 571, 573, - 81, 477, 177, 97, 181, 179, 331, 523, 180, 583, - 446, 177, 584, 445, 577, 178, 587, 141, 142, 138, - 139, 140, 137, 135, 561, 328, 227, 346, 414, 345, - 596, 41, 203, 606, 598, 477, 586, 577, 602, 605, - 91, 548, 386, 327, 607, 222, 611, 221, 549, 475, - 613, 474, 471, 425, 196, 477, 199, 91, 137, 135, - 91, 91, 39, 91, 204, 138, 139, 140, 137, 135, - 91, 183, 168, 188, 19, 220, 29, 27, 524, 243, - 360, 538, 307, 287, 91, 91, 368, 121, 30, 28, - 1, 464, 272, 477, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 136, 274, 156, 155, - 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, - 144, 143, 141, 142, 138, 139, 140, 137, 135, 315, - 343, 542, 582, 581, 413, 503, 502, 590, 91, 144, - 143, 141, 142, 138, 139, 140, 137, 135, 589, 283, - 16, 411, 306, 355, 91, 9, 551, 87, 550, 521, - 91, 520, 7, 450, 85, 337, 292, 90, 266, 295, - 296, 506, 371, 109, 107, 87, 113, 92, 82, 199, - 111, 91, 85, 20, 38, 90, 0, 99, 282, 342, - 0, 91, 91, 319, 322, 92, 82, 0, 0, 88, - 89, 86, 0, 0, 0, 91, 91, 0, 0, 91, - 96, 0, 98, 95, 0, 77, 87, 88, 89, 86, - 0, 0, 0, 85, 0, 0, 90, 0, 0, 0, - 0, 0, 0, 77, 0, 0, 92, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 333, 91, 0, - 455, 0, 0, 0, 0, 0, 0, 91, 88, 89, - 86, 91, 0, 347, 0, 50, 91, 0, 91, 351, - 0, 0, 0, 0, 77, 0, 0, 91, 0, 0, - 52, 53, 454, 91, 0, 0, 59, 72, 0, 0, - 390, 57, 58, 0, 63, 0, 0, 73, 0, 0, - 395, 396, 0, 0, 0, 76, 75, 69, 68, 74, - 0, 18, 54, 55, 62, 60, 61, 64, 405, 0, - 0, 0, 91, 0, 0, 0, 91, 0, 0, 65, - 66, 67, 145, 146, 147, 148, 144, 143, 141, 142, - 138, 139, 140, 137, 135, 77, 0, 91, 0, 0, - 0, 0, 0, 366, 0, 0, 0, 196, 0, 0, - 91, 0, 0, 0, 0, 0, 447, 0, 50, 0, - 456, 0, 0, 0, 0, 460, 0, 461, 0, 0, - 0, 0, 0, 52, 53, 56, 97, 0, 0, 59, - 378, 0, 472, 0, 57, 58, 0, 63, 370, 0, - 73, 0, 0, 0, 0, 0, 0, 0, 76, 75, - 380, 68, 74, 0, 18, 54, 55, 62, 60, 61, - 64, 367, 509, 366, 0, 0, 13, 0, 0, 0, - 0, 496, 65, 66, 67, 501, 0, 0, 50, 372, - 0, 0, 0, 373, 374, 377, 375, 376, 77, 0, - 0, 0, 0, 52, 53, 56, 501, 0, 0, 59, - 378, 0, 0, 0, 57, 58, 0, 63, 370, 534, - 73, 0, 0, 0, 0, 0, 0, 0, 76, 75, - 380, 68, 74, 0, 18, 54, 55, 62, 60, 61, - 64, 367, 470, 366, 0, 0, 13, 0, 0, 0, - 0, 0, 65, 66, 67, 0, 0, 0, 50, 372, - 0, 0, 0, 373, 374, 377, 375, 376, 77, 0, - 0, 0, 0, 52, 53, 56, 0, 0, 0, 59, - 378, 0, 0, 0, 57, 58, 0, 63, 370, 0, - 73, 0, 0, 0, 0, 0, 0, 0, 76, 75, - 380, 68, 74, 0, 18, 54, 55, 62, 60, 61, - 64, 367, 440, 366, 0, 0, 13, 0, 0, 0, - 0, 0, 65, 66, 67, 0, 0, 0, 50, 372, - 0, 0, 0, 373, 374, 377, 375, 376, 77, 0, - 0, 0, 0, 52, 53, 56, 0, 0, 0, 59, - 378, 0, 0, 0, 57, 58, 0, 63, 370, 0, - 73, 0, 0, 0, 0, 0, 0, 0, 76, 75, - 380, 68, 74, 0, 18, 54, 55, 62, 60, 61, - 64, 367, 362, 608, 0, 0, 13, 0, 0, 0, - 0, 0, 65, 66, 67, 0, 0, 0, 50, 372, - 0, 0, 0, 373, 374, 377, 375, 376, 77, 0, - 0, 0, 0, 52, 53, 610, 0, 0, 0, 59, - 378, 0, 0, 0, 57, 58, 0, 63, 370, 0, - 73, 0, 0, 0, 0, 0, 0, 0, 76, 75, - 609, 68, 74, 0, 18, 54, 55, 62, 60, 61, - 64, 367, 576, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 65, 66, 67, 0, 0, 50, 0, 372, - 0, 0, 0, 373, 374, 377, 375, 376, 77, 0, - 0, 0, 52, 53, 454, 0, 0, 0, 59, 378, - 0, 0, 0, 57, 58, 0, 63, 370, 0, 73, - 0, 0, 0, 0, 0, 0, 0, 76, 75, 380, - 68, 74, 0, 18, 54, 55, 62, 60, 61, 64, - 367, 366, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 65, 66, 67, 0, 0, 50, 0, 372, 0, - 0, 0, 373, 374, 377, 375, 376, 77, 0, 0, - 0, 52, 53, 56, 0, 0, 0, 59, 378, 0, - 0, 0, 57, 58, 0, 63, 370, 0, 73, 0, - 0, 0, 0, 0, 0, 0, 76, 75, 380, 68, - 74, 0, 18, 54, 55, 62, 60, 61, 64, 367, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 66, 67, 50, 0, 0, 0, 372, 0, 0, - 0, 373, 374, 377, 375, 376, 77, 0, 52, 53, - 56, 0, 0, 0, 59, 72, 0, 0, 0, 57, - 58, 0, 63, 0, 0, 73, 0, 0, 0, 0, - 0, 0, 0, 76, 75, 69, 275, 74, 0, 18, - 54, 55, 62, 60, 61, 64, 0, 0, 0, 50, - 0, 0, 0, 0, 0, 278, 0, 276, 277, 67, - 0, 0, 0, 0, 52, 53, 56, 0, 0, 0, - 59, 72, 0, 77, 280, 57, 58, 0, 63, 0, + 380, 592, 454, 365, 506, 385, 413, 311, 370, 315, + 360, 452, 450, 185, 84, 83, 433, 299, 271, 15, + 8, 49, 213, 102, 321, 12, 42, 110, 48, 78, + 79, 80, 4, 35, 198, 51, 23, 492, 364, 6, + 424, 3, 6, 545, 487, 401, 366, 14, 460, 21, + 14, 87, 331, 287, 383, 459, 354, 351, 85, 294, + 286, 90, 118, 226, 223, 112, 46, 225, 31, 466, + 309, 92, 82, 186, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 310, 117, 423, + 182, 183, 184, 88, 89, 86, 322, 205, 105, 208, + 71, 10, 287, 287, 10, 350, 600, 518, 586, 77, + 40, 548, 350, 119, 350, 295, 32, 32, 295, 287, + 44, 119, 486, 484, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 186, + 6, 22, 274, 230, 483, 11, 210, 514, 14, 5, + 272, 22, 268, 566, 602, 429, 428, 427, 280, 431, + 430, 432, 285, 411, 596, 43, 37, 482, 207, 289, + 87, 439, 425, 416, 290, 410, 270, 85, 93, 209, + 90, 202, 99, 416, 217, 114, 19, 408, 304, 22, + 92, 82, 212, 313, 312, 218, 194, 195, 193, 94, + 229, 355, 10, 567, 47, 96, 17, 98, 95, 100, + 18, 101, 88, 89, 86, 513, 298, 194, 195, 573, + 2, 26, 13, 314, 327, 306, 194, 195, 77, 112, + 324, 319, 87, 421, 420, 419, 206, 194, 195, 85, + 187, 25, 90, 23, 99, 560, 317, 194, 195, 6, + 24, 87, 92, 82, 194, 195, 536, 14, 85, 5, + 558, 90, 554, 99, 186, 228, 192, 96, 341, 98, + 95, 92, 82, 531, 88, 89, 86, 339, 182, 194, + 195, 194, 195, 215, 337, 537, 526, 491, 464, 463, + 77, 342, 101, 88, 89, 86, 19, 44, 496, 509, + 302, 382, 349, 469, 400, 384, 499, 359, 358, 77, + 480, 10, 394, 468, 399, 362, 17, 390, 388, 392, + 18, 283, 219, 211, 403, 325, 19, 488, 33, 326, + 393, 605, 13, 87, 357, 216, 318, 615, 581, 489, + 85, 19, 494, 90, 404, 405, 45, 580, 613, 282, + 18, 214, 417, 92, 82, 45, 422, 437, 565, 18, + 186, 115, 43, 108, 436, 116, 438, 540, 19, 114, + 386, 435, 442, 440, 505, 88, 89, 86, 508, 563, + 453, 544, 341, 183, 445, 444, 22, 415, 115, 317, + 605, 77, 116, 494, 481, 494, 604, 337, 494, 601, + 70, 598, 494, 63, 589, 541, 73, 474, 575, 470, + 434, 479, 443, 477, 76, 75, 69, 68, 74, 292, + 18, 54, 55, 62, 60, 61, 64, 87, 291, 269, + 453, 508, 91, 157, 85, 91, 120, 90, 65, 66, + 67, 104, 490, 494, 103, 498, 494, 92, 82, 556, + 159, 595, 495, 186, 77, 511, 478, 168, 194, 195, + 488, 524, 519, 523, 516, 517, 512, 501, 467, 88, + 89, 86, 87, 453, 528, 524, 530, 529, 418, 85, + 409, 534, 90, 594, 527, 77, 91, 39, 91, 533, + 538, 330, 92, 82, 224, 546, 91, 106, 569, 547, + 542, 524, 36, 553, 34, 402, 557, 91, 593, 500, + 555, 300, 501, 398, 88, 89, 86, 158, 336, 161, + 333, 162, 163, 561, 564, 442, 317, 201, 200, 197, + 77, 160, 159, 571, 179, 447, 578, 570, 576, 572, + 574, 177, 478, 81, 72, 332, 97, 181, 524, 446, + 584, 180, 177, 585, 73, 578, 178, 588, 329, 227, + 347, 346, 76, 75, 45, 562, 74, 41, 18, 415, + 203, 597, 607, 587, 549, 599, 478, 387, 578, 603, + 606, 91, 328, 222, 221, 608, 550, 612, 476, 475, + 472, 614, 426, 137, 135, 135, 478, 196, 91, 199, + 39, 91, 91, 188, 91, 19, 525, 204, 361, 539, + 308, 91, 183, 168, 288, 369, 121, 1, 220, 138, + 139, 140, 137, 135, 465, 91, 91, 141, 142, 138, + 139, 140, 137, 135, 478, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 136, 273, 156, + 155, 154, 153, 152, 151, 149, 150, 145, 146, 147, + 148, 144, 143, 141, 142, 138, 139, 140, 137, 135, + 29, 344, 275, 27, 87, 316, 543, 583, 582, 414, + 91, 85, 30, 87, 90, 28, 504, 503, 591, 590, + 85, 16, 284, 90, 92, 82, 91, 412, 307, 356, + 9, 552, 91, 92, 82, 449, 551, 522, 521, 293, + 7, 451, 296, 297, 283, 338, 88, 89, 86, 267, + 507, 372, 199, 91, 109, 88, 89, 86, 107, 113, + 343, 111, 77, 91, 91, 20, 320, 323, 38, 0, + 0, 77, 0, 0, 0, 0, 0, 91, 91, 0, + 0, 91, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 136, 0, 156, 155, 154, 153, + 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, + 141, 142, 138, 139, 140, 137, 135, 0, 0, 0, + 91, 334, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 91, 0, 0, 50, 348, 91, 0, + 91, 0, 0, 352, 0, 0, 0, 0, 0, 91, + 568, 52, 53, 56, 0, 91, 0, 59, 72, 0, + 0, 281, 57, 58, 391, 63, 0, 0, 73, 0, + 0, 0, 0, 0, 396, 397, 76, 75, 69, 68, + 74, 0, 18, 54, 55, 62, 60, 61, 64, 0, + 0, 0, 406, 0, 91, 0, 0, 0, 91, 0, + 65, 66, 67, 87, 0, 0, 0, 0, 0, 0, + 85, 0, 0, 90, 0, 0, 77, 0, 0, 91, + 0, 0, 0, 92, 82, 0, 0, 367, 0, 0, + 0, 196, 91, 0, 0, 0, 0, 0, 0, 0, + 448, 0, 50, 407, 457, 88, 89, 86, 0, 461, + 0, 462, 0, 0, 0, 0, 0, 52, 53, 56, + 97, 77, 0, 59, 379, 0, 473, 0, 57, 58, + 0, 63, 371, 0, 73, 0, 0, 0, 0, 0, + 0, 0, 76, 75, 381, 68, 74, 0, 18, 54, + 55, 62, 60, 61, 64, 368, 510, 367, 0, 0, + 13, 0, 0, 0, 0, 497, 65, 66, 67, 502, + 0, 0, 50, 373, 0, 0, 0, 374, 375, 378, + 376, 377, 77, 0, 0, 0, 0, 52, 53, 56, + 502, 0, 0, 59, 379, 0, 0, 0, 57, 58, + 0, 63, 371, 535, 73, 0, 0, 0, 0, 0, + 0, 0, 76, 75, 381, 68, 74, 0, 18, 54, + 55, 62, 60, 61, 64, 368, 471, 367, 0, 0, + 13, 0, 0, 0, 0, 0, 65, 66, 67, 0, + 0, 0, 50, 373, 0, 0, 0, 374, 375, 378, + 376, 377, 77, 0, 0, 0, 0, 52, 53, 56, + 0, 0, 0, 59, 379, 0, 0, 0, 57, 58, + 0, 63, 371, 0, 73, 0, 0, 0, 0, 0, + 0, 0, 76, 75, 381, 68, 74, 0, 18, 54, + 55, 62, 60, 61, 64, 368, 441, 367, 0, 0, + 13, 0, 0, 0, 0, 0, 65, 66, 67, 0, + 0, 0, 50, 373, 0, 0, 0, 374, 375, 378, + 376, 377, 77, 0, 0, 0, 0, 52, 53, 56, + 0, 0, 0, 59, 379, 0, 0, 0, 57, 58, + 0, 63, 371, 0, 73, 0, 0, 0, 0, 0, + 0, 0, 76, 75, 381, 68, 74, 0, 18, 54, + 55, 62, 60, 61, 64, 368, 363, 609, 0, 0, + 13, 0, 0, 0, 0, 0, 65, 66, 67, 0, + 0, 0, 50, 373, 0, 0, 0, 374, 375, 378, + 376, 377, 77, 0, 0, 0, 0, 52, 53, 611, + 0, 0, 0, 59, 379, 0, 0, 0, 57, 58, + 0, 63, 371, 0, 73, 0, 0, 0, 0, 0, + 0, 0, 76, 75, 610, 68, 74, 0, 18, 54, + 55, 62, 60, 61, 64, 368, 577, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 65, 66, 67, 0, + 0, 50, 0, 373, 0, 0, 0, 374, 375, 378, + 376, 377, 77, 0, 0, 0, 52, 53, 455, 0, + 0, 0, 59, 379, 0, 0, 0, 57, 58, 0, + 63, 371, 0, 73, 0, 0, 0, 0, 0, 0, + 0, 76, 75, 381, 68, 74, 0, 18, 54, 55, + 62, 60, 61, 64, 368, 367, 0, 0, 0, 13, + 0, 0, 0, 0, 0, 65, 66, 67, 0, 0, + 50, 0, 373, 0, 0, 0, 374, 375, 378, 376, + 377, 77, 0, 0, 0, 52, 53, 56, 0, 0, + 0, 59, 379, 0, 0, 0, 57, 58, 0, 63, + 371, 0, 73, 0, 0, 0, 0, 0, 0, 0, + 76, 75, 381, 68, 74, 0, 18, 54, 55, 62, + 60, 61, 64, 368, 456, 144, 143, 141, 142, 138, + 139, 140, 137, 135, 65, 66, 67, 0, 0, 50, + 0, 373, 0, 0, 0, 374, 375, 378, 376, 377, + 77, 0, 0, 0, 52, 53, 455, 0, 0, 0, + 59, 72, 0, 0, 0, 57, 58, 0, 63, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 76, 75, 69, 68, 74, 0, 18, 54, 55, 62, 60, 61, 64, 0, 0, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 66, 67, 0, 0, 0, 52, - 53, 56, 0, 0, 0, 59, 72, 0, 0, 77, - 57, 58, 0, 63, 0, 0, 73, 0, 0, 0, - 0, 0, 0, 0, 76, 75, 69, 68, 74, 0, - 18, 54, 55, 62, 60, 61, 64, 0, 0, 0, - 52, 53, 56, 0, 0, 0, 59, 72, 65, 66, - 67, 57, 58, 0, 63, 0, 0, 73, 0, 0, - 0, 0, 0, 0, 77, 76, 75, 69, 68, 74, - 0, 18, 54, 55, 62, 60, 61, 64, 0, 0, - 0, 0, 0, 0, 0, 0, 87, 0, 0, 65, - 66, 67, 0, 85, 0, 0, 90, 0, 99, 0, - 0, 0, 0, 0, 0, 77, 92, 82, 149, 150, + 0, 0, 0, 65, 66, 67, 0, 87, 0, 52, + 53, 56, 0, 0, 85, 59, 72, 90, 0, 77, + 57, 58, 0, 63, 0, 0, 73, 92, 82, 0, + 0, 0, 0, 0, 76, 75, 69, 276, 74, 0, + 18, 54, 55, 62, 60, 61, 64, 301, 243, 88, + 89, 86, 0, 0, 0, 0, 279, 0, 277, 278, + 67, 50, 0, 0, 0, 77, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 0, 52, 53, 56, 0, + 0, 0, 59, 72, 0, 0, 0, 57, 58, 0, + 63, 0, 0, 73, 0, 0, 0, 0, 0, 0, + 0, 76, 75, 69, 68, 74, 0, 18, 54, 55, + 62, 60, 61, 64, 0, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 65, 66, 67, 0, 0, + 0, 52, 53, 56, 0, 0, 0, 59, 72, 0, + 0, 77, 57, 58, 0, 63, 0, 0, 73, 0, + 0, 0, 0, 0, 0, 0, 76, 75, 69, 68, + 74, 0, 18, 54, 55, 62, 60, 61, 64, 0, + 0, 0, 52, 53, 56, 0, 0, 0, 59, 72, + 65, 66, 67, 57, 58, 0, 63, 0, 0, 73, + 0, 0, 0, 0, 0, 0, 77, 76, 75, 69, + 68, 74, 0, 18, 54, 55, 62, 60, 61, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 66, 67, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 136, 77, 156, 155, + 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, + 144, 143, 141, 142, 138, 139, 140, 137, 135, 155, + 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, + 144, 143, 141, 142, 138, 139, 140, 137, 135, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 136, 559, 156, 155, 154, 153, 152, 151, 149, + 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, + 139, 140, 137, 135, 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, - 140, 137, 135, 463, 462, 0, 0, 101, 88, 89, - 86, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 136, 77, 156, 155, 154, 153, 152, - 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 155, 154, 153, 152, + 140, 137, 135, 0, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 136, 532, 156, 155, + 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, + 144, 143, 141, 142, 138, 139, 140, 137, 135, 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 136, 567, - 156, 155, 154, 153, 152, 151, 149, 150, 145, 146, - 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, - 135, 154, 153, 152, 151, 149, 150, 145, 146, 147, + 142, 138, 139, 140, 137, 135, 0, 0, 0, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 136, 485, 156, 155, 154, 153, 152, 151, 149, + 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, + 139, 140, 137, 135, 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, 135, - 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 136, 558, 156, 155, 154, 153, 152, - 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 152, 151, 149, 150, - 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, - 140, 137, 135, 0, 0, 0, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 136, 531, - 156, 155, 154, 153, 152, 151, 149, 150, 145, 146, - 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, - 135, 151, 149, 150, 145, 146, 147, 148, 144, 143, + 0, 0, 0, 0, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 136, 353, 156, 155, + 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, + 144, 143, 141, 142, 138, 139, 140, 137, 135, 149, + 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, + 139, 140, 137, 135, 0, 0, 0, 0, 0, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 136, 345, 156, 155, 154, 153, 152, 151, 149, + 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, + 139, 140, 137, 135, 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, 135, 0, 0, 0, - 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 136, 484, 156, 155, 154, 153, 152, - 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 0, 0, 0, 0, + 0, 0, 0, 0, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 136, 305, 156, 155, + 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, + 144, 143, 141, 142, 138, 139, 140, 137, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 136, 352, - 156, 155, 154, 153, 152, 151, 149, 150, 145, 146, - 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, - 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 136, 303, 156, 155, 154, 153, 152, 151, 149, + 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, + 139, 140, 137, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 136, 344, 156, 155, 154, 153, 152, - 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 0, 0, 0, 0, + 0, 0, 0, 0, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 136, 191, 156, 155, + 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, + 144, 143, 141, 142, 138, 139, 140, 137, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 136, 304, - 156, 155, 154, 153, 152, 151, 149, 150, 145, 146, - 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, - 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 136, 190, 156, 155, 154, 153, 152, 151, 149, + 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, + 139, 140, 137, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 136, 302, 156, 155, 154, 153, 152, - 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 0, 0, 0, 0, + 0, 0, 0, 0, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 136, 189, 156, 155, + 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, + 144, 143, 141, 142, 138, 139, 140, 137, 135, 0, + 87, 0, 0, 0, 87, 0, 0, 85, 0, 0, + 90, 389, 0, 0, 90, 0, 0, 0, 0, 0, + 92, 395, 0, 0, 92, 82, 0, 0, 0, 0, + 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 89, 86, 0, 88, 89, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, + 0, 0, 77, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 136, 0, 156, 155, 154, + 153, 152, 151, 149, 150, 145, 146, 147, 148, 144, + 143, 141, 142, 138, 139, 140, 137, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 136, 191, + 127, 128, 129, 130, 131, 132, 133, 134, 136, 579, 156, 155, 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 136, 190, 156, 155, 154, 153, 152, - 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 136, 189, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 136, 520, 156, 155, 154, 153, 152, 151, 149, + 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, + 139, 140, 137, 135, 0, 0, 0, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, + 493, 156, 155, 154, 153, 152, 151, 149, 150, 145, + 146, 147, 148, 144, 143, 141, 142, 138, 139, 140, + 137, 135, 0, 0, 0, 340, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 136, 0, 156, 155, 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, - 135, 0, 87, 0, 0, 0, 87, 0, 0, 85, - 0, 0, 90, 388, 0, 0, 90, 0, 0, 0, - 0, 0, 92, 394, 0, 0, 92, 82, 0, 0, - 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 86, 0, 88, 89, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 0, 0, 77, 123, 124, 125, 126, 127, + 135, 0, 0, 0, 335, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 0, 156, 155, 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, 140, 137, 135, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 136, 578, 156, 155, 154, 153, 152, 151, 149, 150, - 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, - 140, 137, 135, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 136, 519, 156, 155, 154, 153, 152, - 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 0, 0, 0, 123, + 0, 515, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 136, 0, 156, 155, 154, 153, + 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, + 141, 142, 138, 139, 140, 137, 135, 0, 458, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 136, 492, 156, 155, 154, 153, 152, 151, 149, + 134, 136, 0, 156, 155, 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, 142, 138, - 139, 140, 137, 135, 0, 0, 0, 339, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 136, 0, 156, 155, 154, 153, 152, 151, 149, 150, - 145, 146, 147, 148, 144, 143, 141, 142, 138, 139, - 140, 137, 135, 0, 0, 0, 334, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, - 0, 156, 155, 154, 153, 152, 151, 149, 150, 145, - 146, 147, 148, 144, 143, 141, 142, 138, 139, 140, - 137, 135, 0, 514, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 136, 0, 156, 155, - 154, 153, 152, 151, 149, 150, 145, 146, 147, 148, - 144, 143, 141, 142, 138, 139, 140, 137, 135, 0, - 457, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 136, 0, 156, 155, 154, 153, 152, - 151, 149, 150, 145, 146, 147, 148, 144, 143, 141, - 142, 138, 139, 140, 137, 135, 156, 155, 154, 153, - 152, 151, 149, 150, 145, 146, 147, 148, 144, 143, - 141, 142, 138, 139, 140, 137, 135, + 139, 140, 137, 135, 156, 155, 154, 153, 152, 151, + 149, 150, 145, 146, 147, 148, 144, 143, 141, 142, + 138, 139, 140, 137, 135, }; yypact := array[] of { - 198,-1000, 370, 172,-1000, 140,-1000,-1000, 137, 135, - 633, 632, 12, 306, 482,-1000, 467, 550,-1000, 285, - -35, 130,-1000,-1000,-1000,-1000,-1000,1507,1507,1507, -1507, 737, 595, 120, 144, 427, 404, -19, 480, 335, --1000, 370, 16,-1000,-1000,-1000, 401,-1000,2272,-1000, - 396, 497,1548,1548,1548,1548,1548,1548,1548,1548, -1548,1548,1548,1548,1548, 530, 520, 523,1548, 376, -1548,-1000,1507, 583,-1000,-1000,-1000, 594,2217,2162, -2107, 288,-1000,-1000,-1000, 737, 509, 737, 508, 503, - 550,-1000, 551,-1000,-1000, 737,1507, 251,1507, 134, - 239, 550, 265, 348, 550, 236, 737, 567, 565, -36, --1000, 474, 7, -38,-1000,-1000,-1000, 544,-1000, 285, --1000, 172,-1000,1507,1507,1507,1507,1507,1507,1507, -1507,1507,1507,1507,1507, 635,1507,1507,1507,1507, -1507,1507,1507,1507,1507,1507,1507,1507,1507,1507, -1507,1507,1507,1507,1507,1507,1507,1507,1507, 393, - 323,1396,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, --1000,-1000,-1000,-1000,-1000,-1000,-1000,1452, 318, 224, - 737,1507,-1000,-1000,-1000, 14,2667,-1000,1507,-1000, --1000,-1000,-1000,1507, 391, 389, 424, 737, 13, 424, - 737, 737, 583, 452, 305,2052,-1000,1507,1997,-1000, - 737, 640, 49,-1000,-1000, 163, 285,-1000,-1000, 370, - 424,-1000,-1000, 334, 273, 273, 254,-1000,-1000,-1000, - 172,2667,2667,2667,2667,2667,2667,2667,2667,2667, -2667,2667,2667,1507,2667, 581, 581, 581, 581, 591, - 591, 545, 545, 669, 669, 669, 669, 866, 866,1624, -1848,1794,1741,1741,1687,2688, 563, -39,-1000, 420, - 543, 473, -40,2667,-1000,1548, 521, 502, 737,2554, - 501,1548,1507, 424,2515,-1000,1507, 265, 650,1942, - 548, 546, 424,-1000, 737, 424, 424, 427, 10, 424, - 737,-1000,-1000,1887,-1000, 11, 146,-1000, 638, 223, -1121,-1000,-1000, 5, 191,-1000, 299, 562,-1000, 424, --1000,2277, 424,-1000,-1000,-1000,2667,-1000,-1000,1507, -1396,2273, 678, 424, 494, 216,-1000, 189, -41, 492, -2667,-1000,1507,-1000,-1000, 452, 452, 424,-1000, 407, --1000, 424,-1000, 119,-1000,-1000, 466, 116,-1000, 110, --1000, 370,-1000,-1000,-1000, 463, 0,-1000, -10, 114, - 574, 31, 388, 388,1507,1507,1507, 112,1507,2667, - 376,1051,-1000,-1000, 370,-1000,-1000,-1000, 737,-1000, - 424, 531, 528,2667,1548, 424, 424, 269, 808,-1000, -1507, 737,2630, 6, 2, 424, 737,-1000,1587,-1000, - -21,-1000,-1000,-1000, 460, 215, 188, 696,-1000,-1000, --1000, 981, 573, 737,-1000,1507, 572, 570,1329,1507, - 212, 379, 107,-1000, 104, 103,1832, 99,-1000, 3, --1000,-1000, 338,-1000,-1000,-1000,-1000, 424, 808, 185, - -44,-1000,2477, 409,1548,-1000, 424,-1000,-1000,-1000, - 424, 293, 737,1507,-1000, 200, 219, 422, 194, 911, - 436,1507, 176,2593,1507,1507, -17, 449,2424, 808, - 622,-1000,-1000,-1000,-1000,-1000,-1000, 193,-1000, 183, --1000, 808,1507, 808,1507,-1000, 235,1777, 370,1507, - 737, 227, 175, 639,-1000, 283, 413,-1000, 638,-1000, - 354, -3,-1000,1507,1329, 89, 561, 569,-1000, 808, - 169,-1000, 406,2477,1507,-1000,-1000,2667,-1000,2667, --1000,-1000, 157,1722, 113,-1000,-1000, 351, 346,-1000, - 337, 106, 145,-1000,-1000,1667, 469,1507,1329,1507, - 152,-1000, 365,-1000,1260,-1000,2371,-1000,-1000,-1000, - 268, 447,-1000, 252,-1000,-1000, 808,-1000,1329, 51, --1000, 556,-1000,1260,-1000, 361, 0,2477, 468,-1000, --1000, 148,-1000, 358,-1000,1507, 21, 356,-1000, 32, --1000, 353,-1000,-1000,-1000,-1000,1260,-1000, 553,-1000, --1000,-1000,1191,-1000, 468, 333,1329, 278, 0, 376, -1548,-1000,-1000,-1000,-1000, + 167,-1000, 347, 277,-1000, 198,-1000,-1000, 189, 169, + 689, 686, 18, 287, 474,-1000, 468, 546,-1000, 307, + -33, 152,-1000,-1000,-1000,-1000,-1000,1579,1579,1579, +1579, 314, 586, 147, 151, 412, 402, 11, 467, 349, +-1000, 347, 22,-1000,-1000,-1000, 397,-1000,2250,-1000, + 394, 498,1620,1620,1620,1620,1620,1620,1620,1620, +1620,1620,1620,1620,1620, 531, 509, 526,1620, 377, +1620,-1000,1579, 581,-1000,-1000,-1000, 584,2195,2140, +2085, 214,-1000,-1000,-1000, 314, 504, 314, 503, 502, + 546,-1000, 549,-1000,-1000, 314,1579, 184,1579, 127, + 273, 546, 301, 316, 546, 272, 314, 564, 563, -35, +-1000, 464, 17, -36,-1000,-1000,-1000, 537,-1000, 307, +-1000, 277,-1000,1579,1579,1579,1579,1579,1579,1579, +1579,1579,1579,1579,1579,1524,1579,1579,1579,1579, +1579,1579,1579,1579,1579,1579,1579,1579,1579,1579, +1579,1579,1579,1579,1579,1579,1579,1579,1579, 390, + 525,1457,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, +-1000,-1000,-1000,-1000,-1000,-1000,-1000, 809, 309, 271, + 314,1579,-1000,-1000,-1000, 20,2645,-1000,1579,-1000, +-1000,-1000,-1000,1579, 389, 380, 425, 314, 19, 425, + 314, 314, 581,1448, 248,2030,-1000,1579,1975,-1000, + 314, 628, 0,-1000,-1000, 143, 307,-1000,-1000, 347, + 425,-1000,-1000, 322, 12, 12, 286,-1000,-1000,-1000, + 277,2645,2645,2645,2645,2645,2645,2645,2645,2645, +2645,2645,2645,1579, 577,2645, 576, 576, 576, 576, + 605, 605, 615, 615,1375,1375,1375,1375,1988,1988, +1935,1881,1827,1774,1774,1720,2666, 562, -46,-1000, + 416, 536, 461, -47,2645,-1000,1620, 520, 495, 314, +2532, 493,1620,1579, 425,2493,-1000,1579, 301, 651, +1920, 540, 539, 425,-1000, 314, 425, 425, 412, 15, + 425, 314,-1000,-1000,1865,-1000, 16, 150,-1000, 626, + 265,1125,-1000,-1000, 14, 254,-1000, 328, 557,-1000, + 425,-1000,2255, 425,-1000,-1000,-1000,2645,-1000,-1000, +1579,1457,2251, 664, 425, 488, 264,-1000, 253, -54, + 480,2645,-1000,1579,-1000,-1000,1448,1448, 425,-1000, + 854,-1000, 425,-1000, 135,-1000,-1000, 450, 123,-1000, + 112,-1000, 347,-1000,-1000,-1000, 448, 183,-1000, -10, + 120, 573, 90, 371, 371,1579,1579,1579, 119,1579, +2645, 377,1055,-1000,-1000, 347,-1000,-1000,-1000, 314, +-1000, 425, 527, 513,2645,1620, 425, 425, 655,1402, +-1000,1579, 314,2608, 13, 6, 425, 314,-1000, 232, +-1000, -18,-1000,-1000,-1000, 438, 263, 252, 213,-1000, +-1000,-1000, 985, 571, 314,-1000,1579, 570, 569,1333, +1579, 260, 355, 115,-1000, 92, 51,1810, 50,-1000, + 4,-1000,-1000, 297,-1000,-1000,-1000,-1000, 425,1402, + 236, -62,-1000,2455, 410,1620,-1000, 425,-1000,-1000, +-1000, 425, 246, 314,1579,-1000, 256, 453, 392, 249, + 915, 424,1579, 163,2571,1579,1579, 21, 432,2402, +1402, 610,-1000,-1000,-1000,-1000,-1000,-1000, 408,-1000, + 235,-1000,1402,1579,1402,1579,-1000, 221,1755, 347, +1579, 314, 204, 234, 627,-1000, 325, 369,-1000, 626, +-1000, 342, 3,-1000,1579,1333, 39, 554, 567,-1000, +1402, 211,-1000, 407,2455,1579,-1000,-1000,2645,-1000, +2645,-1000,-1000, 209,1700, 193,-1000,-1000, 340, 339, +-1000, 319, 102, 153,-1000,-1000, 768, 470,1579,1333, +1579, 168,-1000, 366,-1000,1264,-1000,2349,-1000,-1000, +-1000, 305, 430,-1000, 296,-1000,-1000,1402,-1000,1333, + 36,-1000, 553,-1000,1264,-1000, 362, 183,2455, 469, +-1000,-1000, 113,-1000, 359,-1000,1579, 34, 357,-1000, + 103,-1000, 354,-1000,-1000,-1000,-1000,1264,-1000, 552, +-1000,-1000,-1000,1195,-1000, 469, 306,1333, 295, 183, + 377,1620,-1000,-1000,-1000,-1000, }; yypgo := array[] of { - 0, 528, 744, 164, 33, 24, 419, 15, 14, 46, - 743, 740, 736, 34, 734, 733, 27, 732, 16, 4, - 731, 108, 8, 0, 21, 35, 13, 728, 725, 94, - 25, 67, 26, 12, 723, 11, 2, 38, 41, 32, - 722, 22, 3, 7, 721, 719, 718, 716, 715, 20, - 713, 712, 711, 10, 710, 708, 697, 1, 696, 695, - 694, 6, 5, 693, 692, 691, 19, 23, 689, 9, - 667, 18, 652, 651, 17, 650, 647, 646, 643, + 0, 531, 758, 186, 33, 24, 420, 15, 14, 46, + 755, 751, 749, 34, 748, 744, 27, 741, 16, 4, + 740, 110, 8, 0, 21, 35, 13, 739, 735, 100, + 25, 165, 26, 12, 731, 11, 2, 38, 41, 32, + 730, 22, 3, 7, 728, 727, 726, 721, 720, 20, + 719, 718, 717, 10, 711, 709, 708, 1, 707, 706, + 699, 6, 5, 698, 697, 696, 19, 23, 695, 9, + 692, 18, 668, 644, 17, 637, 636, 635, 634, }; yyr1 := array[] of { 0, 76, 75, 75, 38, 38, 39, 39, 39, 39, @@ -1100,14 +1098,14 @@ yyr1 := array[] of { 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, + 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, - 78, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 29, 29, 31, 72, 72, 71, 71, 70, - 70, 70, 70, 65, 65, 32, 32, 32, 32, 27, - 27, 28, 28, 26, 26, 33, 33, 34, 34, 35, - 35, 69, 68, 68, + 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, + 25, 78, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 29, 29, 31, 72, 72, 71, 71, + 70, 70, 70, 70, 65, 65, 32, 32, 32, 32, + 27, 27, 28, 28, 26, 26, 33, 33, 34, 34, + 35, 35, 69, 68, 68, }; yyr2 := array[] of { 0, 0, 5, 1, 1, 2, 2, 1, 1, 2, @@ -1131,14 +1129,14 @@ yyr2 := array[] of { 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 6, 8, 7, - 5, 3, 6, 4, 2, 2, 2, 1, 4, 3, - 0, 4, 3, 3, 4, 6, 2, 2, 1, 1, - 1, 6, 1, 1, 3, 1, 3, 1, 1, 1, - 3, 3, 2, 1, 0, 1, 1, 3, 3, 0, - 1, 1, 2, 1, 3, 1, 2, 1, 3, 1, - 3, 2, 2, 4, + 3, 3, 3, 3, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 6, 8, + 7, 5, 3, 6, 4, 2, 2, 2, 1, 4, + 3, 0, 4, 3, 3, 4, 6, 2, 2, 1, + 1, 1, 6, 1, 1, 3, 1, 3, 1, 1, + 1, 3, 3, 2, 1, 0, 1, 1, 3, 3, + 0, 1, 1, 2, 1, 3, 1, 2, 1, 3, + 1, 3, 2, 2, 4, }; yychk := array[] of { -1000, -75, 73, -38, -39, 2, -37, -40, -49, -48, @@ -1167,106 +1165,106 @@ yychk := array[] of { -38, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 4, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -27, -26, 59, -25, - -71, -22, -72, -23, -70, 60, 81, 82, 79, -23, - 42, 60, 70, -1, -23, 40, 99, -78, -23, -23, - 59, 59, -1, 40, 99, -1, -1, -4, -74, -1, - 79, 72, 72, -23, 72, -13, -51, 2, 70, 87, - -43, 71, 70, -32, -69, -68, -9, 34, -16, -1, - -5, 84, -1, -5, 59, 63, -23, 40, 42, 50, - 99, 45, 45, -1, 42, 45, -24, -28, -26, 42, - -23, -41, 99, 40, 72, 41, 41, -1, -67, 99, - 42, -1, 72, 40, 71, -50, -9, -49, -66, -53, - 2, 70, 71, -37, -42, -9, 2, 70, -77, -22, - 47, -17, 88, 92, 93, 95, 96, 94, 39, -23, - 59, -43, 40, 71, -62, 62, 40, -7, 46, -8, - -1, -22, -71, -23, 60, -1, -1, 45, 70, 71, - 99, 45, -23, -74, -74, -1, 79, 72, 50, 72, - 71, -52, -61, -60, -9, 91, -69, 50, 72, 71, - 70, -43, 99, 50, 72, 39, 87, 86, 85, 90, - 89, 91, -18, 59, -18, -22, -23, -22, 72, -26, - 71, -61, -9, -7, -8, 42, 42, -1, 70, -33, - -34, -35, -23, -36, 34, 2, -1, 40, 42, 42, - -1, -1, 77, 76, -73, 87, 50, 70, 71, -43, - 71, 39, -1, -23, 39, 39, -42, -9, -23, 70, - 59, 72, 72, 72, 72, 72, 40, 50, 62, -33, - 71, 99, 55, 56, 62, 72, -1, -23, 70, 76, - 79, -1, -58, -59, 2, -19, -20, 59, 70, 71, - 51, -26, 72, 4, 40, -22, -22, 86, 50, 70, - -44, -45, -36, -23, 16, 71, -35, -23, -36, -23, - 72, 72, -69, -23, -1, 72, 71, -62, 2, 62, - 56, -53, -65, 59, 40, -23, -42, 72, 40, 39, - -46, -47, -36, 71, -43, 62, -23, 71, 72, 72, - -19, -9, 59, -19, 59, 71, 70, 72, 48, -22, - -42, -22, 71, -43, 62, -36, 2, -23, 70, 62, - 62, -63, -64, -36, -42, 72, 40, -36, 62, -55, - -56, -57, 59, 34, 2, 71, -43, 62, -22, 72, - 62, 71, -43, 62, 56, -36, 40, -57, 2, 59, - 34, -57, 62, -42, 62, + -23, -23, -23, -23, -23, -23, -23, -27, -26, 59, + -25, -71, -22, -72, -23, -70, 60, 81, 82, 79, + -23, 42, 60, 70, -1, -23, 40, 99, -78, -23, + -23, 59, 59, -1, 40, 99, -1, -1, -4, -74, + -1, 79, 72, 72, -23, 72, -13, -51, 2, 70, + 87, -43, 71, 70, -32, -69, -68, -9, 34, -16, + -1, -5, 84, -1, -5, 59, 63, -23, 40, 42, + 50, 99, 45, 45, -1, 42, 45, -24, -28, -26, + 42, -23, -41, 99, 40, 72, 41, 41, -1, -67, + 99, 42, -1, 72, 40, 71, -50, -9, -49, -66, + -53, 2, 70, 71, -37, -42, -9, 2, 70, -77, + -22, 47, -17, 88, 92, 93, 95, 96, 94, 39, + -23, 59, -43, 40, 71, -62, 62, 40, -7, 46, + -8, -1, -22, -71, -23, 60, -1, -1, 45, 70, + 71, 99, 45, -23, -74, -74, -1, 79, 72, 50, + 72, 71, -52, -61, -60, -9, 91, -69, 50, 72, + 71, 70, -43, 99, 50, 72, 39, 87, 86, 85, + 90, 89, 91, -18, 59, -18, -22, -23, -22, 72, + -26, 71, -61, -9, -7, -8, 42, 42, -1, 70, + -33, -34, -35, -23, -36, 34, 2, -1, 40, 42, + 42, -1, -1, 77, 76, -73, 87, 50, 70, 71, + -43, 71, 39, -1, -23, 39, 39, -42, -9, -23, + 70, 59, 72, 72, 72, 72, 72, 40, 50, 62, + -33, 71, 99, 55, 56, 62, 72, -1, -23, 70, + 76, 79, -1, -58, -59, 2, -19, -20, 59, 70, + 71, 51, -26, 72, 4, 40, -22, -22, 86, 50, + 70, -44, -45, -36, -23, 16, 71, -35, -23, -36, + -23, 72, 72, -69, -23, -1, 72, 71, -62, 2, + 62, 56, -53, -65, 59, 40, -23, -42, 72, 40, + 39, -46, -47, -36, 71, -43, 62, -23, 71, 72, + 72, -19, -9, 59, -19, 59, 71, 70, 72, 48, + -22, -42, -22, 71, -43, 62, -36, 2, -23, 70, + 62, 62, -63, -64, -36, -42, 72, 40, -36, 62, + -55, -56, -57, 59, 34, 2, 71, -43, 62, -22, + 72, 62, 71, -43, 62, 56, -36, 40, -57, 2, + 59, 34, -57, 62, -42, 62, }; yydef := array[] of { 0, -2, 0, -2, 4, 0, 7, 8, 0, 0, - 0, 17, 0, 0, 0, 25, 0, -2, 253, 0, + 0, 17, 0, 0, 0, 25, 0, -2, 254, 0, 61, 0, 62, 5, 6, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 95, 93, 97, - 121, 0, 0, 265, 266, 252, 0, 1, 0, 177, - 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, - 0, 237, 0, 0, 248, 249, 250, 0, 0, 0, + 121, 0, 0, 266, 267, 253, 0, 1, 0, 177, + 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 238, 0, 0, 249, 250, 251, 0, 0, 0, 0, 0, 70, 71, 72, 0, 0, 0, 0, 0, 88, 81, 82, 18, 19, 0, 0, 0, 0, 0, 0, 88, 0, 0, 88, 0, 0, 0, 0, 98, - 99, 0, 0, 105, 17, 106, 107, 0, 254, 0, + 99, 0, 0, 105, 17, 106, 107, 0, 255, 0, 63, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, - 0, 175, 246, 247, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 0, 0, 0, - 0, 0, 234, 235, 236, 0, 273, 240, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 270, 0, + 0, 175, 247, 248, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 0, 0, 0, + 0, 0, 235, 236, 237, 0, 274, 241, 0, 13, 12, 14, 15, 0, 0, 0, 75, 0, 0, 86, 0, 0, 0, 0, 0, 0, 22, 0, 0, 26, 0, -2, 0, 114, 123, 0, 0, 116, 122, 0, - 94, 90, 91, 0, 0, 0, 0, 89, 267, 268, + 94, 90, 91, 0, 0, 0, 0, 89, 268, 269, -2, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 0, 191, 193, 194, 195, 196, 197, + 187, 188, 189, 0, 191, 192, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 192, 0, 270, 242, 243, - 255, 0, 0, -2, 258, 259, 0, 0, 0, 0, - 0, 0, 0, 231, 0, 239, 0, 0, 0, 0, - 73, 84, 76, 77, 0, 78, 79, 117, 0, 66, - 0, 20, 21, 0, 24, 0, 0, 31, -2, 0, - -2, 119, 123, 0, 0, 47, 0, 0, 100, 101, - 102, 0, 103, 104, 108, 109, 190, 238, 244, 175, - 0, 0, 0, 262, 0, 0, 233, 0, 271, 0, - 274, 241, 0, 65, 16, 0, 0, 87, 80, 0, - 83, 67, 23, 0, 28, 30, 0, 0, 36, 0, - 43, 0, 118, 124, 125, 0, 0, 123, 0, 0, - 0, 0, 152, 152, 175, 0, 175, 0, 0, 176, - -2, -2, 115, 96, 281, 282, 92, -2, 0, -2, - 0, 0, 256, 257, 70, 260, 261, 0, 0, 230, - 272, 0, 0, 0, 0, 68, 0, 27, 0, 33, - 39, 42, 44, 45, 0, 0, 0, 151, 128, 129, - 123, -2, 0, 0, 134, 0, 0, 0, -2, 0, - 0, 0, 0, 153, 0, 0, 0, 0, 148, 0, - 120, 48, 0, -2, -2, 245, 251, 227, 0, 0, - 275, 277, -2, 0, 165, 167, 232, 64, 74, 85, - 69, 0, 0, 0, 37, 0, 0, 0, 0, -2, - 131, 0, 0, 0, 175, 175, 0, 0, 0, 0, - 0, 140, 141, 142, 143, 144, -2, 0, 283, 0, - 229, -2, 0, 0, 0, 32, 0, 0, 0, 0, - 0, 0, 0, -2, 54, 0, 58, 59, -2, 130, - 264, 0, 132, 0, -2, 0, 0, 0, 151, 0, - 0, 123, 0, 163, 0, 228, 278, 164, 166, 280, - 34, 35, 0, 0, 0, 50, 51, 52, 53, 55, - 0, 0, 0, 263, 127, 0, 135, 175, -2, 175, - 0, 123, 0, 146, -2, 155, 0, 40, 46, 49, - 0, 0, -2, 0, 60, 38, 0, 133, -2, 0, - 138, 0, 145, -2, 158, 0, 167, -2, 0, 56, - 57, 0, 123, 0, 136, 175, 0, 0, 156, 0, - 123, 0, 171, 172, 174, 149, -2, 161, 0, 139, - 159, 147, -2, 169, 0, 0, -2, 0, 174, -2, - 172, 173, 162, 137, 170, + 208, 209, 210, 211, 212, 213, 193, 0, 271, 243, + 244, 256, 0, 0, -2, 259, 260, 0, 0, 0, + 0, 0, 0, 0, 232, 0, 240, 0, 0, 0, + 0, 73, 84, 76, 77, 0, 78, 79, 117, 0, + 66, 0, 20, 21, 0, 24, 0, 0, 31, -2, + 0, -2, 119, 123, 0, 0, 47, 0, 0, 100, + 101, 102, 0, 103, 104, 108, 109, 190, 239, 245, + 175, 0, 0, 0, 263, 0, 0, 234, 0, 272, + 0, 275, 242, 0, 65, 16, 0, 0, 87, 80, + 0, 83, 67, 23, 0, 28, 30, 0, 0, 36, + 0, 43, 0, 118, 124, 125, 0, 0, 123, 0, + 0, 0, 0, 152, 152, 175, 0, 175, 0, 0, + 176, -2, -2, 115, 96, 282, 283, 92, -2, 0, + -2, 0, 0, 257, 258, 70, 261, 262, 0, 0, + 231, 273, 0, 0, 0, 0, 68, 0, 27, 0, + 33, 39, 42, 44, 45, 0, 0, 0, 151, 128, + 129, 123, -2, 0, 0, 134, 0, 0, 0, -2, + 0, 0, 0, 0, 153, 0, 0, 0, 0, 148, + 0, 120, 48, 0, -2, -2, 246, 252, 228, 0, + 0, 276, 278, -2, 0, 165, 167, 233, 64, 74, + 85, 69, 0, 0, 0, 37, 0, 0, 0, 0, + -2, 131, 0, 0, 0, 175, 175, 0, 0, 0, + 0, 0, 140, 141, 142, 143, 144, -2, 0, 284, + 0, 230, -2, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, -2, 54, 0, 58, 59, -2, + 130, 265, 0, 132, 0, -2, 0, 0, 0, 151, + 0, 0, 123, 0, 163, 0, 229, 279, 164, 166, + 281, 34, 35, 0, 0, 0, 50, 51, 52, 53, + 55, 0, 0, 0, 264, 127, 0, 135, 175, -2, + 175, 0, 123, 0, 146, -2, 155, 0, 40, 46, + 49, 0, 0, -2, 0, 60, 38, 0, 133, -2, + 0, 138, 0, 145, -2, 158, 0, 167, -2, 0, + 56, 57, 0, 123, 0, 136, 175, 0, 0, 156, + 0, 123, 0, 171, 172, 174, 149, -2, 161, 0, + 139, 159, 147, -2, 169, 0, 0, -2, 0, 174, + -2, 172, 173, 162, 137, 170, }; yytok1 := array[] of { 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -2034,14 +2032,14 @@ yyval.ids = yys[yyp+1].yyv.ids; { yyval.ids = mkids(yys[yypt-2].yyv.node.src, enter("junk", 0), yys[yypt-0].yyv.ty, nil); yyval.ids.store = Darg; - yyerror("illegal argument declaraion"); + yyerror("illegal argument declaration"); } 104=> #line 661 "limbo.y" { yyval.ids = mkids(yys[yypt-2].yyv.node.src, enter("junk", 0), yys[yypt-0].yyv.ty, nil); yyval.ids.store = Darg; - yyerror("illegal argument declaraion"); + yyerror("illegal argument declaration"); } 105=> #line 669 "limbo.y" @@ -2585,212 +2583,217 @@ yyval.node = yys[yyp+1].yyv.node; 191=> #line 1176 "limbo.y" { - yyval.node = mkbin(Odas, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Osnd, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 192=> #line 1180 "limbo.y" { + yyval.node = mkbin(Odas, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + } +193=> +#line 1184 "limbo.y" +{ yyval.node = mkn(Oload, yys[yypt-0].yyv.node, nil); yyval.node.src.start = yys[yypt-2].yyv.tok.src.start; yyval.node.src.stop = yys[yypt-0].yyv.node.src.stop; yyval.node.ty = mkidtype(yys[yypt-1].yyv.tok.src, yys[yypt-1].yyv.tok.v.idval); } -193=> -#line 1187 "limbo.y" -{ - yyval.node = yyval.node = mkbin(Oexp, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); - } 194=> #line 1191 "limbo.y" { - yyval.node = mkbin(Omul, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = yyval.node = mkbin(Oexp, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 195=> #line 1195 "limbo.y" { - yyval.node = mkbin(Odiv, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Omul, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 196=> #line 1199 "limbo.y" { - yyval.node = mkbin(Omod, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Odiv, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 197=> #line 1203 "limbo.y" { - yyval.node = mkbin(Oadd, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Omod, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 198=> #line 1207 "limbo.y" { - yyval.node = mkbin(Osub, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Oadd, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 199=> #line 1211 "limbo.y" { - yyval.node = mkbin(Orsh, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Osub, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 200=> #line 1215 "limbo.y" { - yyval.node = mkbin(Olsh, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Orsh, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 201=> #line 1219 "limbo.y" { - yyval.node = mkbin(Olt, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Olsh, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 202=> #line 1223 "limbo.y" { - yyval.node = mkbin(Ogt, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Olt, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 203=> #line 1227 "limbo.y" { - yyval.node = mkbin(Oleq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Ogt, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 204=> #line 1231 "limbo.y" { - yyval.node = mkbin(Ogeq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Oleq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 205=> #line 1235 "limbo.y" { - yyval.node = mkbin(Oeq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Ogeq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 206=> #line 1239 "limbo.y" { - yyval.node = mkbin(Oneq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Oeq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 207=> #line 1243 "limbo.y" { - yyval.node = mkbin(Oand, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Oneq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 208=> #line 1247 "limbo.y" { - yyval.node = mkbin(Oxor, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Oand, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 209=> #line 1251 "limbo.y" { - yyval.node = mkbin(Oor, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Oxor, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 210=> #line 1255 "limbo.y" { - yyval.node = mkbin(Ocons, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Oor, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 211=> #line 1259 "limbo.y" { - yyval.node = mkbin(Oandand, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Ocons, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 212=> #line 1263 "limbo.y" { - yyval.node = mkbin(Ooror, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Oandand, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 213=> -yyval.node = yys[yyp+1].yyv.node; +#line 1267 "limbo.y" +{ + yyval.node = mkbin(Ooror, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + } 214=> -#line 1270 "limbo.y" +yyval.node = yys[yyp+1].yyv.node; +215=> +#line 1274 "limbo.y" { yys[yypt-0].yyv.node.src.start = yys[yypt-1].yyv.tok.src.start; yyval.node = yys[yypt-0].yyv.node; } -215=> -#line 1275 "limbo.y" +216=> +#line 1279 "limbo.y" { yyval.node = mkunary(Oneg, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -216=> -#line 1280 "limbo.y" +217=> +#line 1284 "limbo.y" { yyval.node = mkunary(Onot, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -217=> -#line 1285 "limbo.y" +218=> +#line 1289 "limbo.y" { yyval.node = mkunary(Ocomp, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -218=> -#line 1290 "limbo.y" +219=> +#line 1294 "limbo.y" { yyval.node = mkunary(Oind, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -219=> -#line 1295 "limbo.y" +220=> +#line 1299 "limbo.y" { yyval.node = mkunary(Opreinc, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -220=> -#line 1300 "limbo.y" +221=> +#line 1304 "limbo.y" { yyval.node = mkunary(Opredec, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -221=> -#line 1305 "limbo.y" +222=> +#line 1309 "limbo.y" { yyval.node = mkunary(Orcv, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -222=> -#line 1310 "limbo.y" +223=> +#line 1314 "limbo.y" { yyval.node = mkunary(Ohd, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -223=> -#line 1315 "limbo.y" +224=> +#line 1319 "limbo.y" { yyval.node = mkunary(Otl, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -224=> -#line 1320 "limbo.y" +225=> +#line 1324 "limbo.y" { yyval.node = mkunary(Olen, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -225=> -#line 1325 "limbo.y" +226=> +#line 1329 "limbo.y" { yyval.node = mkunary(Oref, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -226=> -#line 1330 "limbo.y" +227=> +#line 1334 "limbo.y" { yyval.node = mkunary(Otagof, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; } -227=> -#line 1335 "limbo.y" +228=> +#line 1339 "limbo.y" { yyval.node = mkn(Oarray, yys[yypt-3].yyv.node, nil); yyval.node.ty = mktype(yys[yypt-5].yyv.tok.src.start, yys[yypt-0].yyv.ty.src.stop, Tarray, yys[yypt-0].yyv.ty, nil); yyval.node.src = yyval.node.ty.src; } -228=> -#line 1341 "limbo.y" +229=> +#line 1345 "limbo.y" { yyval.node = mkn(Oarray, yys[yypt-5].yyv.node, yys[yypt-1].yyv.node); yyval.node.src.start = yys[yypt-7].yyv.tok.src.start; yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -229=> -#line 1347 "limbo.y" +230=> +#line 1351 "limbo.y" { yyval.node = mkn(Onothing, nil, nil); yyval.node.src.start = yys[yypt-5].yyv.tok.src.start; @@ -2799,66 +2802,66 @@ yyval.node = yys[yyp+1].yyv.node; yyval.node.src.start = yys[yypt-6].yyv.tok.src.start; yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -230=> -#line 1356 "limbo.y" +231=> +#line 1360 "limbo.y" { yyval.node = etolist(yys[yypt-1].yyv.node); yyval.node.src.start = yys[yypt-4].yyv.tok.src.start; yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -231=> -#line 1362 "limbo.y" +232=> +#line 1366 "limbo.y" { yyval.node = mkn(Ochan, nil, nil); yyval.node.ty = mktype(yys[yypt-2].yyv.tok.src.start, yys[yypt-0].yyv.ty.src.stop, Tchan, yys[yypt-0].yyv.ty, nil); yyval.node.src = yyval.node.ty.src; } -232=> -#line 1368 "limbo.y" +233=> +#line 1372 "limbo.y" { yyval.node = mkn(Ochan, yys[yypt-3].yyv.node, nil); yyval.node.ty = mktype(yys[yypt-5].yyv.tok.src.start, yys[yypt-0].yyv.ty.src.stop, Tchan, yys[yypt-0].yyv.ty, nil); yyval.node.src = yyval.node.ty.src; } -233=> -#line 1374 "limbo.y" +234=> +#line 1378 "limbo.y" { yyval.node = mkunary(Ocast, yys[yypt-0].yyv.node); yyval.node.ty = mktype(yys[yypt-3].yyv.tok.src.start, yys[yypt-0].yyv.node.src.stop, Tarray, mkidtype(yys[yypt-1].yyv.tok.src, yys[yypt-1].yyv.tok.v.idval), nil); yyval.node.src = yyval.node.ty.src; } -234=> -#line 1380 "limbo.y" +235=> +#line 1384 "limbo.y" { yyval.node = mkunary(Ocast, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; yyval.node.ty = mkidtype(yyval.node.src, yys[yypt-1].yyv.tok.v.idval); } -235=> -#line 1386 "limbo.y" +236=> +#line 1390 "limbo.y" { yyval.node = mkunary(Ocast, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; yyval.node.ty = mkidtype(yyval.node.src, yys[yypt-1].yyv.tok.v.idval); } -236=> -#line 1392 "limbo.y" +237=> +#line 1396 "limbo.y" { yyval.node = mkunary(Ocast, yys[yypt-0].yyv.node); yyval.node.src.start = yys[yypt-1].yyv.tok.src.start; yyval.node.ty = yys[yypt-1].yyv.ty; } -237=> -yyval.node = yys[yyp+1].yyv.node; 238=> -#line 1401 "limbo.y" +yyval.node = yys[yyp+1].yyv.node; +239=> +#line 1405 "limbo.y" { yyval.node = mkn(Ocall, yys[yypt-3].yyv.node, yys[yypt-1].yyv.node); yyval.node.src.start = yys[yypt-3].yyv.node.src.start; yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -239=> -#line 1407 "limbo.y" +240=> +#line 1411 "limbo.y" { yyval.node = yys[yypt-1].yyv.node; if(yys[yypt-1].yyv.node.op == Oseq) @@ -2868,39 +2871,39 @@ yyval.node = yys[yyp+1].yyv.node; yyval.node.src.start = yys[yypt-2].yyv.tok.src.start; yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -240=> -#line 1417 "limbo.y" +241=> +#line 1421 "limbo.y" { # n := mkdeclname($1, mkids($1, enter(".fn"+string nfnexp++, 0), nil, nil)); # $<node>$ = fndef(n, $2); # nfns++; } -241=> -#line 1422 "limbo.y" +242=> +#line 1426 "limbo.y" { # $$ = fnfinishdef($<node>3, $4); # $$ = mkdeclname($1, $$.left.decl); yyerror("urt unk"); yyval.node = nil; } -242=> -#line 1429 "limbo.y" -{ - yyval.node = mkbin(Odot, yys[yypt-2].yyv.node, mkname(yys[yypt-0].yyv.tok.src, yys[yypt-0].yyv.tok.v.idval)); - } 243=> #line 1433 "limbo.y" { - yyval.node = mkbin(Omdot, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + yyval.node = mkbin(Odot, yys[yypt-2].yyv.node, mkname(yys[yypt-0].yyv.tok.src, yys[yypt-0].yyv.tok.v.idval)); } 244=> #line 1437 "limbo.y" { + yyval.node = mkbin(Omdot, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); + } +245=> +#line 1441 "limbo.y" +{ yyval.node = mkbin(Oindex, yys[yypt-3].yyv.node, yys[yypt-1].yyv.node); yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -245=> -#line 1442 "limbo.y" +246=> +#line 1446 "limbo.y" { if(yys[yypt-3].yyv.node.op == Onothing) yys[yypt-3].yyv.node.src = yys[yypt-2].yyv.tok.src; @@ -2909,173 +2912,173 @@ yyval.node = yys[yyp+1].yyv.node; yyval.node = mkbin(Oslice, yys[yypt-5].yyv.node, mkbin(Oseq, yys[yypt-3].yyv.node, yys[yypt-1].yyv.node)); yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -246=> -#line 1451 "limbo.y" +247=> +#line 1455 "limbo.y" { yyval.node = mkunary(Oinc, yys[yypt-1].yyv.node); yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -247=> -#line 1456 "limbo.y" +248=> +#line 1460 "limbo.y" { yyval.node = mkunary(Odec, yys[yypt-1].yyv.node); yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -248=> -#line 1461 "limbo.y" +249=> +#line 1465 "limbo.y" { yyval.node = mksconst(yys[yypt-0].yyv.tok.src, yys[yypt-0].yyv.tok.v.idval); } -249=> -#line 1465 "limbo.y" +250=> +#line 1469 "limbo.y" { yyval.node = mkconst(yys[yypt-0].yyv.tok.src, yys[yypt-0].yyv.tok.v.ival); if(yys[yypt-0].yyv.tok.v.ival > big 16r7fffffff || yys[yypt-0].yyv.tok.v.ival < big -16r7fffffff) yyval.node.ty = tbig; } -250=> -#line 1471 "limbo.y" +251=> +#line 1475 "limbo.y" { yyval.node = mkrconst(yys[yypt-0].yyv.tok.src, yys[yypt-0].yyv.tok.v.rval); } -251=> -#line 1475 "limbo.y" +252=> +#line 1479 "limbo.y" { yyval.node = mkbin(Oindex, yys[yypt-5].yyv.node, rotater(mkbin(Oseq, yys[yypt-3].yyv.node, yys[yypt-1].yyv.node))); yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -252=> -#line 1482 "limbo.y" +253=> +#line 1486 "limbo.y" { yyval.node = mkname(yys[yypt-0].yyv.tok.src, yys[yypt-0].yyv.tok.v.idval); } -253=> -#line 1486 "limbo.y" +254=> +#line 1490 "limbo.y" { yyval.node = mknil(yys[yypt-0].yyv.tok.src); } -254=> -#line 1492 "limbo.y" +255=> +#line 1496 "limbo.y" { yyval.node = mkn(Otuple, rotater(yys[yypt-1].yyv.node), nil); yyval.node.src.start = yys[yypt-2].yyv.tok.src.start; yyval.node.src.stop = yys[yypt-0].yyv.tok.src.stop; } -255=> -yyval.node = yys[yyp+1].yyv.node; 256=> -#line 1501 "limbo.y" +yyval.node = yys[yyp+1].yyv.node; +257=> +#line 1505 "limbo.y" { yyval.node = mkbin(Oseq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } -257=> -yyval.node = yys[yyp+1].yyv.node; 258=> yyval.node = yys[yyp+1].yyv.node; 259=> -#line 1511 "limbo.y" +yyval.node = yys[yyp+1].yyv.node; +260=> +#line 1515 "limbo.y" { yyval.node = mkn(Otype, nil, nil); yyval.node.ty = mkidtype(yys[yypt-0].yyv.tok.src, yys[yypt-0].yyv.tok.v.idval); yyval.node.src = yyval.node.ty.src; } -260=> -#line 1517 "limbo.y" +261=> +#line 1521 "limbo.y" { yyval.node = mkn(Otype, nil, nil); yyval.node.ty = mktype(yys[yypt-2].yyv.tok.src.start, yys[yypt-0].yyv.ty.src.stop, Tarray, yys[yypt-0].yyv.ty, nil); yyval.node.src = yyval.node.ty.src; } -261=> -#line 1523 "limbo.y" +262=> +#line 1527 "limbo.y" { yyval.node = mkn(Otype, nil, nil); yyval.node.ty = mktype(yys[yypt-2].yyv.tok.src.start, yys[yypt-0].yyv.ty.src.stop, Tlist, yys[yypt-0].yyv.ty, nil); yyval.node.src = yyval.node.ty.src; } -262=> -#line 1529 "limbo.y" +263=> +#line 1533 "limbo.y" { yyval.node = mkn(Otype, nil ,nil); yyval.node.ty = yys[yypt-0].yyv.ty; yyval.node.ty.flags |= CYCLIC; yyval.node.src = yyval.node.ty.src; } -263=> -#line 1538 "limbo.y" +264=> +#line 1542 "limbo.y" { yyval.node = mkname(yys[yypt-0].yyv.tok.src, yys[yypt-0].yyv.tok.v.idval); } -264=> -#line 1542 "limbo.y" +265=> +#line 1546 "limbo.y" { yyval.node = nil; } -265=> -yyval.node = yys[yyp+1].yyv.node; 266=> yyval.node = yys[yyp+1].yyv.node; 267=> -#line 1550 "limbo.y" -{ - yyval.node = mkbin(Oseq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); - } +yyval.node = yys[yyp+1].yyv.node; 268=> #line 1554 "limbo.y" { yyval.node = mkbin(Oseq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 269=> -#line 1560 "limbo.y" +#line 1558 "limbo.y" { - yyval.node = nil; + yyval.node = mkbin(Oseq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } 270=> #line 1564 "limbo.y" { - yyval.node = rotater(yys[yypt-0].yyv.node); + yyval.node = nil; } 271=> -yyval.node = yys[yyp+1].yyv.node; +#line 1568 "limbo.y" +{ + yyval.node = rotater(yys[yypt-0].yyv.node); + } 272=> yyval.node = yys[yyp+1].yyv.node; 273=> yyval.node = yys[yyp+1].yyv.node; 274=> -#line 1575 "limbo.y" +yyval.node = yys[yyp+1].yyv.node; +275=> +#line 1579 "limbo.y" { yyval.node = mkbin(Oseq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } -275=> -#line 1581 "limbo.y" +276=> +#line 1585 "limbo.y" { yyval.node = rotater(yys[yypt-0].yyv.node); } -276=> -#line 1585 "limbo.y" +277=> +#line 1589 "limbo.y" { yyval.node = rotater(yys[yypt-1].yyv.node); } -277=> -yyval.node = yys[yyp+1].yyv.node; 278=> -#line 1592 "limbo.y" +yyval.node = yys[yyp+1].yyv.node; +279=> +#line 1596 "limbo.y" { yyval.node = mkbin(Oseq, yys[yypt-2].yyv.node, yys[yypt-0].yyv.node); } -279=> -#line 1598 "limbo.y" +280=> +#line 1602 "limbo.y" { yyval.node = mkn(Oelem, nil, yys[yypt-0].yyv.node); yyval.node.src = yys[yypt-0].yyv.node.src; } -280=> -#line 1603 "limbo.y" +281=> +#line 1607 "limbo.y" { yyval.node = mkbin(Oelem, rotater(yys[yypt-2].yyv.node), yys[yypt-0].yyv.node); } -281=> -#line 1609 "limbo.y" +282=> +#line 1613 "limbo.y" { if(yys[yypt-1].yyv.node.op == Oseq) yys[yypt-1].yyv.node.right.left = rotater(yys[yypt-0].yyv.node); @@ -3083,13 +3086,13 @@ yyval.node = yys[yyp+1].yyv.node; yys[yypt-1].yyv.node.left = rotater(yys[yypt-0].yyv.node); yyval.node = yys[yypt-1].yyv.node; } -282=> -#line 1619 "limbo.y" +283=> +#line 1623 "limbo.y" { yyval.node = typedecl(yys[yypt-1].yyv.ids, mktype(yys[yypt-1].yyv.ids.src.start, yys[yypt-0].yyv.tok.src.stop, Tpoly, nil, nil)); } -283=> -#line 1623 "limbo.y" +284=> +#line 1627 "limbo.y" { if(yys[yypt-3].yyv.node.op == Oseq) yys[yypt-3].yyv.node.right.left = rotater(yys[yypt-2].yyv.node); diff --git a/appl/cmd/limbo/limbo.y b/appl/cmd/limbo/limbo.y index 4eb4af8a..4e858199 100644 --- a/appl/cmd/limbo/limbo.y +++ b/appl/cmd/limbo/limbo.y @@ -1172,6 +1172,10 @@ exp : monexp { $$ = mkbin(Osnd, $1, $4); } + | exp Lcomm exp + { + $$ = mkbin(Osnd, $1, $3); + } | exp Ldeclas exp { $$ = mkbin(Odas, $1, $3); |
