code: purgatorio

Download patch

ref: d09cf07a82cf4ffb846a31d0384e774b4c4661e1
parent: 866d74c0c4bb50e85e9e8bb95140c10d409e53be
author: henesy <devnull@localhost>
date: Sat Feb 29 19:21:59 EST 2020

merge a4add4f40ff6df8dabad332f92c881d706d4ad18

--- a/appl/cmd/limbo/limbo.b
+++ b/appl/cmd/limbo/limbo.b
@@ -173,7 +173,7 @@
 YYERRCODE: con 2;
 YYMAXDEPTH: con 200;
 
-#line	1632	"limbo.y"
+#line	1636	"limbo.y"
 
 
 include "ipints.m";
@@ -532,7 +532,7 @@
 	50, 62,
 	54, 88,
 	99, 62,
-	-2, 252,
+	-2, 253,
 -1, 211,
 	59, 29,
 	71, 29,
@@ -540,15 +540,15 @@
 -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 @@
 	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 @@
 	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 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 428,
+-1, 429,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -596,19 +596,19 @@
 	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 @@
 	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 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 548,
+-1, 549,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -651,7 +651,7 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 554,
+-1, 555,
 	71, 154,
 	72, 175,
 	85, 150,
@@ -661,11 +661,11 @@
 	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 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 573,
+-1, 574,
 	71, 157,
 	72, 175,
 	85, 150,
@@ -684,10 +684,10 @@
 	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 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 602,
+-1, 603,
 	71, 168,
 	72, 175,
 	85, 150,
@@ -707,7 +707,7 @@
 	90, 150,
 	91, 150,
 	-2, 0,
--1, 606,
+-1, 607,
 	72, 175,
 	85, 150,
 	86, 150,
@@ -716,367 +716,365 @@
 	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,
+ 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, 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, 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 @@
   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 @@
    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 @@
  -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,7 +2032,7 @@
 {
 		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"
@@ -2041,7 +2039,7 @@
 {
 		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 @@
 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.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,15 +2871,15 @@
 		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);
@@ -2883,24 +2886,24 @@
 		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,92 +2912,92 @@
 		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;
@@ -3001,25 +3004,20 @@
 		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"
 {
@@ -3026,56 +3024,61 @@
 		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 @@
 			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);
--- a/appl/cmd/limbo/limbo.y
+++ b/appl/cmd/limbo/limbo.y
@@ -1172,6 +1172,10 @@
 	{
 		$$ = mkbin(Osnd, $1, $4);
 	}
+	| exp Lcomm exp
+	{
+		$$ = mkbin(Osnd, $1, $3);
+	}
 	| exp Ldeclas exp
 	{
 		$$ = mkbin(Odas, $1, $3);
--- a/limbo/limbo.y
+++ b/limbo/limbo.y
@@ -1128,6 +1128,10 @@
 	{
 		$$ = mkbin(Osnd, $1, $4);
 	}
+	| exp Lcomm exp
+	{
+		$$ = mkbin(Osnd, $1, $3);
+	}
 	| exp Ldeclas exp
 	{
 		$$ = mkbin(Odas, $1, $3);