aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo
diff options
context:
space:
mode:
authorEugene Sandulenko2017-03-29 22:16:46 +0200
committerEugene Sandulenko2017-03-29 22:17:18 +0200
commite135dad5ac0897edc30586668da256323561147a (patch)
tree3f1b67ba2532780a0489712f6846ba7c8472a378 /engines/director/lingo
parent74e923d42a36f1a20ebc2610e08402b1ae4c0fe5 (diff)
downloadscummvm-rg350-e135dad5ac0897edc30586668da256323561147a.tar.gz
scummvm-rg350-e135dad5ac0897edc30586668da256323561147a.tar.bz2
scummvm-rg350-e135dad5ac0897edc30586668da256323561147a.zip
DIRECTOR: Lingo: Added another if statement variant
Diffstat (limited to 'engines/director/lingo')
-rw-r--r--engines/director/lingo/lingo-gr.cpp1261
-rw-r--r--engines/director/lingo/lingo-gr.y10
2 files changed, 645 insertions, 626 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index a409256939..b8d9749052 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -540,16 +540,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 124
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1822
+#define YYLAST 1792
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 106
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 43
/* YYNRULES -- Number of rules. */
-#define YYNRULES 163
+#define YYNRULES 164
/* YYNRULES -- Number of states. */
-#define YYNSTATES 357
+#define YYNSTATES 360
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -606,20 +606,20 @@ static const yytype_uint16 yyprhs[] =
0, 0, 3, 7, 9, 12, 14, 15, 17, 19,
21, 26, 31, 36, 41, 46, 51, 57, 62, 67,
73, 75, 77, 79, 81, 89, 100, 112, 116, 123,
- 128, 135, 145, 155, 162, 173, 184, 185, 189, 192,
- 194, 197, 199, 206, 208, 215, 217, 221, 225, 228,
- 232, 234, 236, 237, 238, 239, 242, 245, 249, 251,
- 253, 255, 257, 259, 261, 264, 267, 272, 277, 279,
- 281, 284, 286, 290, 294, 298, 302, 306, 310, 314,
- 318, 322, 326, 330, 334, 337, 341, 345, 349, 353,
- 356, 359, 363, 367, 372, 377, 382, 389, 394, 401,
- 406, 413, 418, 425, 428, 431, 433, 435, 438, 440,
- 443, 446, 449, 451, 454, 457, 459, 462, 467, 472,
- 479, 484, 487, 491, 493, 497, 499, 503, 505, 509,
- 512, 515, 518, 521, 525, 528, 531, 533, 537, 540,
- 543, 546, 550, 553, 554, 558, 559, 568, 571, 572,
- 581, 589, 596, 599, 600, 602, 606, 611, 612, 615,
- 616, 618, 622, 624
+ 128, 135, 145, 155, 165, 172, 183, 194, 195, 199,
+ 202, 204, 207, 209, 216, 218, 225, 227, 231, 235,
+ 238, 242, 244, 246, 247, 248, 249, 252, 255, 259,
+ 261, 263, 265, 267, 269, 271, 274, 277, 282, 287,
+ 289, 291, 294, 296, 300, 304, 308, 312, 316, 320,
+ 324, 328, 332, 336, 340, 344, 347, 351, 355, 359,
+ 363, 366, 369, 373, 377, 382, 387, 392, 399, 404,
+ 411, 416, 423, 428, 435, 438, 441, 443, 445, 448,
+ 450, 453, 456, 459, 461, 464, 467, 469, 472, 477,
+ 482, 489, 494, 497, 501, 503, 507, 509, 513, 515,
+ 519, 522, 525, 528, 531, 535, 538, 541, 543, 547,
+ 550, 553, 556, 560, 563, 564, 568, 569, 578, 581,
+ 582, 591, 599, 606, 609, 610, 612, 616, 621, 622,
+ 625, 626, 628, 632, 634
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -640,7 +640,8 @@ static const yytype_int16 yyrhs[] =
125, 32, -1, 128, 129, 54, 129, -1, 122, 119,
53, 126, 125, 32, -1, 122, 119, 53, 126, 125,
58, 126, 125, 32, -1, 122, 119, 53, 126, 125,
- 124, 115, 125, 32, -1, 122, 119, 52, 124, 111,
+ 124, 115, 125, 32, -1, 122, 119, 53, 126, 125,
+ 58, 124, 111, 125, -1, 122, 119, 52, 124, 111,
125, -1, 122, 119, 52, 124, 111, 125, 58, 124,
111, 125, -1, 122, 119, 52, 124, 111, 125, 116,
125, 114, 125, -1, -1, 58, 124, 111, -1, 115,
@@ -696,20 +697,20 @@ static const yytype_uint16 yyrline[] =
0, 119, 119, 120, 121, 124, 129, 130, 131, 132,
135, 141, 144, 145, 146, 152, 160, 168, 174, 182,
192, 193, 196, 197, 202, 215, 233, 247, 253, 256,
- 261, 271, 283, 295, 305, 315, 327, 328, 331, 332,
- 335, 336, 339, 347, 348, 356, 357, 358, 361, 364,
- 371, 378, 386, 389, 392, 393, 394, 397, 403, 407,
- 408, 411, 414, 417, 420, 423, 424, 425, 428, 432,
- 439, 445, 446, 447, 448, 449, 450, 451, 452, 453,
- 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
- 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
- 474, 475, 476, 479, 484, 485, 486, 487, 488, 489,
- 490, 491, 492, 495, 498, 501, 505, 506, 507, 508,
- 509, 510, 511, 514, 515, 518, 519, 522, 523, 534,
- 535, 536, 537, 540, 543, 548, 549, 552, 553, 556,
- 557, 560, 563, 566, 566, 596, 596, 601, 604, 604,
- 609, 617, 624, 626, 627, 628, 629, 632, 636, 644,
- 645, 646, 649, 650
+ 261, 271, 283, 295, 305, 315, 325, 337, 338, 341,
+ 342, 345, 346, 349, 357, 358, 366, 367, 368, 371,
+ 374, 381, 388, 396, 399, 402, 403, 404, 407, 413,
+ 417, 418, 421, 424, 427, 430, 433, 434, 435, 438,
+ 442, 449, 455, 456, 457, 458, 459, 460, 461, 462,
+ 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
+ 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
+ 483, 484, 485, 486, 489, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 505, 508, 511, 515, 516, 517,
+ 518, 519, 520, 521, 524, 525, 528, 529, 532, 533,
+ 544, 545, 546, 547, 550, 553, 558, 559, 562, 563,
+ 566, 567, 570, 573, 576, 576, 606, 606, 611, 614,
+ 614, 619, 627, 634, 636, 637, 638, 639, 642, 646,
+ 654, 655, 656, 659, 660
};
#endif
@@ -769,20 +770,20 @@ static const yytype_uint8 yyr1[] =
0, 106, 107, 107, 107, 108, 109, 109, 109, 109,
110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
111, 111, 112, 112, 112, 112, 112, 112, 112, 112,
- 113, 113, 113, 113, 113, 113, 114, 114, 115, 115,
- 116, 116, 117, 118, 118, 119, 119, 119, 120, 121,
- 122, 123, 124, 125, 126, 126, 126, 127, 128, 129,
+ 113, 113, 113, 113, 113, 113, 113, 114, 114, 115,
+ 115, 116, 116, 117, 118, 118, 119, 119, 119, 120,
+ 121, 122, 123, 124, 125, 126, 126, 126, 127, 128,
129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 130, 131, 131, 131, 131, 131, 131,
+ 129, 129, 129, 129, 130, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 132, 132, 133, 133, 134, 134, 135,
- 135, 135, 135, 135, 135, 136, 136, 137, 137, 138,
- 138, 138, 138, 139, 138, 141, 140, 140, 142, 140,
- 140, 140, 143, 144, 144, 144, 144, 145, 146, 147,
- 147, 147, 148, 148
+ 131, 131, 131, 131, 132, 132, 133, 133, 134, 134,
+ 135, 135, 135, 135, 135, 135, 136, 136, 137, 137,
+ 138, 138, 138, 138, 139, 138, 141, 140, 140, 142,
+ 140, 140, 140, 143, 144, 144, 144, 144, 145, 146,
+ 147, 147, 147, 148, 148
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -791,20 +792,20 @@ static const yytype_uint8 yyr2[] =
0, 2, 3, 1, 2, 1, 0, 1, 1, 1,
4, 4, 4, 4, 4, 4, 5, 4, 4, 5,
1, 1, 1, 1, 7, 10, 11, 3, 6, 4,
- 6, 9, 9, 6, 10, 10, 0, 3, 2, 1,
- 2, 1, 6, 1, 6, 1, 3, 3, 2, 3,
- 1, 1, 0, 0, 0, 2, 2, 3, 1, 1,
- 1, 1, 1, 1, 2, 2, 4, 4, 1, 1,
- 2, 1, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 2, 3, 3, 3, 3, 2,
- 2, 3, 3, 4, 4, 4, 6, 4, 6, 4,
- 6, 4, 6, 2, 2, 1, 1, 2, 1, 2,
- 2, 2, 1, 2, 2, 1, 2, 4, 4, 6,
- 4, 2, 3, 1, 3, 1, 3, 1, 3, 2,
- 2, 2, 2, 3, 2, 2, 1, 3, 2, 2,
- 2, 3, 2, 0, 3, 0, 8, 2, 0, 8,
- 7, 6, 2, 0, 1, 3, 4, 0, 2, 0,
- 1, 3, 1, 3
+ 6, 9, 9, 9, 6, 10, 10, 0, 3, 2,
+ 1, 2, 1, 6, 1, 6, 1, 3, 3, 2,
+ 3, 1, 1, 0, 0, 0, 2, 2, 3, 1,
+ 1, 1, 1, 1, 1, 2, 2, 4, 4, 1,
+ 1, 2, 1, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 2, 3, 3, 3, 3,
+ 2, 2, 3, 3, 4, 4, 4, 6, 4, 6,
+ 4, 6, 4, 6, 2, 2, 1, 1, 2, 1,
+ 2, 2, 2, 1, 2, 2, 1, 2, 4, 4,
+ 6, 4, 2, 3, 1, 3, 1, 3, 1, 3,
+ 2, 2, 2, 2, 3, 2, 2, 1, 3, 2,
+ 2, 2, 3, 2, 0, 3, 0, 8, 2, 0,
+ 8, 7, 6, 2, 0, 1, 3, 4, 0, 2,
+ 0, 1, 3, 1, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -812,49 +813,49 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 0, 59, 69, 0, 60, 112, 115, 0, 0,
- 0, 63, 0, 0, 68, 62, 61, 143, 108, 0,
- 0, 50, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
- 0, 0, 0, 0, 0, 159, 0, 3, 71, 22,
- 9, 23, 0, 0, 0, 0, 0, 20, 21, 105,
- 106, 7, 52, 8, 5, 4, 68, 0, 70, 114,
- 113, 0, 162, 116, 159, 64, 0, 65, 159, 158,
- 159, 107, 123, 109, 0, 129, 0, 130, 0, 131,
- 136, 132, 134, 145, 104, 0, 48, 0, 0, 0,
- 0, 147, 148, 121, 139, 140, 142, 127, 111, 84,
- 0, 0, 0, 0, 0, 125, 110, 152, 0, 89,
- 90, 0, 160, 0, 1, 6, 0, 0, 0, 0,
- 45, 53, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 153,
- 159, 0, 162, 0, 0, 122, 0, 160, 0, 144,
- 0, 135, 138, 0, 133, 52, 0, 0, 0, 49,
- 0, 0, 0, 0, 0, 57, 52, 0, 141, 0,
+ 0, 0, 60, 70, 0, 61, 113, 116, 0, 0,
+ 0, 64, 0, 0, 69, 63, 62, 144, 109, 0,
+ 0, 51, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 59, 0,
+ 0, 0, 0, 0, 0, 160, 0, 3, 72, 22,
+ 9, 23, 0, 0, 0, 0, 0, 20, 21, 106,
+ 107, 7, 53, 8, 5, 4, 69, 0, 71, 115,
+ 114, 0, 163, 117, 160, 65, 0, 66, 160, 159,
+ 160, 108, 124, 110, 0, 130, 0, 131, 0, 132,
+ 137, 133, 135, 146, 105, 0, 49, 0, 0, 0,
+ 0, 148, 149, 122, 140, 141, 143, 128, 112, 85,
+ 0, 0, 0, 0, 0, 126, 111, 153, 0, 90,
+ 91, 0, 161, 0, 1, 6, 0, 0, 0, 0,
+ 46, 54, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 154,
+ 160, 0, 163, 0, 0, 123, 0, 161, 0, 145,
+ 0, 136, 139, 0, 134, 53, 0, 0, 0, 50,
+ 0, 0, 0, 0, 0, 58, 53, 0, 142, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 91, 92, 0, 2, 0, 53, 0, 0,
- 52, 54, 0, 27, 0, 54, 80, 81, 79, 82,
- 83, 76, 86, 87, 88, 85, 72, 73, 74, 75,
- 77, 78, 154, 0, 117, 163, 66, 67, 124, 137,
- 153, 0, 10, 11, 12, 13, 18, 15, 0, 0,
- 17, 14, 153, 120, 128, 95, 0, 97, 0, 99,
- 0, 101, 0, 93, 94, 126, 118, 159, 161, 54,
- 0, 47, 0, 53, 46, 29, 53, 0, 157, 0,
- 103, 19, 16, 0, 0, 0, 0, 0, 0, 53,
- 0, 0, 53, 55, 56, 52, 0, 155, 0, 54,
- 157, 157, 96, 98, 100, 102, 119, 0, 0, 53,
- 33, 30, 54, 0, 28, 156, 151, 54, 54, 24,
- 53, 54, 51, 52, 53, 41, 0, 53, 53, 43,
- 39, 0, 150, 146, 149, 54, 53, 0, 40, 36,
- 0, 0, 38, 0, 0, 53, 0, 53, 52, 53,
- 52, 31, 32, 52, 0, 25, 34, 0, 35, 0,
- 54, 26, 37, 53, 53, 42, 44
+ 0, 0, 92, 93, 0, 2, 0, 54, 0, 0,
+ 53, 55, 0, 27, 0, 55, 81, 82, 80, 83,
+ 84, 77, 87, 88, 89, 86, 73, 74, 75, 76,
+ 78, 79, 155, 0, 118, 164, 67, 68, 125, 138,
+ 154, 0, 10, 11, 12, 13, 18, 15, 0, 0,
+ 17, 14, 154, 121, 129, 96, 0, 98, 0, 100,
+ 0, 102, 0, 94, 95, 127, 119, 160, 162, 55,
+ 0, 48, 0, 54, 47, 29, 54, 0, 158, 0,
+ 104, 19, 16, 0, 0, 0, 0, 0, 0, 54,
+ 0, 0, 54, 56, 57, 53, 0, 156, 0, 55,
+ 158, 158, 97, 99, 101, 103, 120, 0, 0, 54,
+ 34, 30, 53, 0, 28, 157, 152, 55, 55, 24,
+ 54, 55, 52, 53, 54, 42, 0, 0, 54, 54,
+ 44, 40, 0, 151, 147, 150, 55, 54, 0, 41,
+ 37, 0, 54, 0, 39, 0, 0, 54, 0, 54,
+ 53, 54, 53, 33, 31, 32, 53, 0, 25, 35,
+ 0, 36, 0, 55, 26, 38, 54, 54, 43, 45
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 46, 283, 47, 48, 49, 284, 51, 339, 318,
- 319, 315, 320, 129, 52, 53, 54, 316, 149, 203,
+ -1, 46, 283, 47, 48, 49, 284, 51, 341, 319,
+ 320, 315, 321, 129, 52, 53, 54, 316, 149, 203,
263, 55, 56, 57, 233, 58, 83, 116, 108, 59,
91, 92, 60, 80, 61, 165, 176, 62, 223, 289,
63, 158, 73
@@ -862,229 +863,226 @@ static const yytype_int16 yydefgoto[] =
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -265
+#define YYPACT_NINF -281
static const yytype_int16 yypact[] =
{
- 345, -70, -265, -265, 1002, -265, -265, 1002, 1002, 1042,
- 14, -265, 1002, 1115, 1155, -265, -265, -265, 20, 54,
- 888, -265, 58, 1002, 40, 35, 62, 66, 72, 1002,
- 929, 83, 1002, 1002, 1002, 1002, 1002, 1002, -265, 84,
- 87, 17, 1002, 1002, 1002, 1002, 3, -265, -265, -265,
- -265, -265, 19, 28, 1228, 805, 1002, 1720, -265, -265,
- -265, -265, -265, -265, -265, -265, 21, 1002, 1720, 1720,
- 1720, 1002, 1720, 16, 1002, 1720, 1002, 16, 1002, 16,
- 1002, -265, -265, 25, 1002, -265, 1002, -265, 77, -265,
- 1720, 13, -265, -265, 1258, 95, -265, -38, 1002, -32,
- 74, -265, -265, 1555, -265, 13, -265, -265, 27, -50,
- 1291, 1324, 1357, 1390, 1588, -265, 47, -265, 96, -50,
- -50, 1654, 1720, -2, -265, 437, 1228, 1002, 1228, 52,
- 1687, -265, 781, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
- 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 105,
- 1002, 1258, 1654, -82, 1002, 48, -39, 1654, -31, 48,
- 126, 1720, 1720, 1002, -265, -265, 79, 1002, 1002, -265,
- 1002, 1002, 1522, 1002, 1002, -265, -265, 1002, -265, 129,
- 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
- 130, -16, -265, -265, 1002, -265, 59, 1720, 60, 1621,
- -265, -265, 1002, -265, 1002, -265, 151, 151, 151, -50,
- -50, -50, 1720, 151, 151, 231, 947, 947, -50, -50,
- 1720, 1720, -265, -25, -265, 1720, -265, -265, -265, 1720,
- 105, 1002, -265, -265, 1720, 1720, 1720, 1720, 1002, 1002,
- 1720, 1720, 105, 1720, -265, 1720, 1197, 1720, 1423, 1720,
- 1456, 1720, 1489, 1720, 1720, -265, -265, 1002, 1720, -265,
- -14, -265, 805, 621, 1720, 1720, 621, 133, 57, -25,
- 1720, 1720, 1720, -25, 1002, 1002, 1002, 1002, -7, 621,
- 109, 1002, -265, -265, -265, -26, 134, -265, 137, -265,
- 57, 57, 1720, 1720, 1720, 1720, -265, 135, 1002, 1720,
- -29, -265, -265, 141, -265, -265, 529, -265, -265, -265,
- 1720, -265, -265, -265, 141, -265, 1228, 621, 141, 141,
- -265, 1228, -265, 621, 621, -265, 621, 805, -265, 112,
- 121, 147, -265, 148, 139, 621, 161, -265, -265, -265,
- -265, -265, -265, -265, 162, -265, -265, 805, -265, 713,
- 713, -265, -265, -265, 621, -265, -265
+ 348, -80, -281, -281, 1005, -281, -281, 1005, 1005, 1045,
+ 22, -281, 1005, 1118, 1158, -281, -281, -281, -22, 30,
+ 891, -281, 33, 1005, 46, 35, 42, 48, 52, 1005,
+ 932, 54, 1005, 1005, 1005, 1005, 1005, 1005, -281, 58,
+ 62, -25, 1005, 1005, 1005, 1005, 3, -281, -281, -281,
+ -281, -281, -5, 9, 1231, 808, 1005, 1690, -281, -281,
+ -281, -281, -281, -281, -281, -281, -3, 1005, 1690, 1690,
+ 1690, 1005, 1690, 6, 1005, 1690, 1005, 6, 1005, 6,
+ 1005, -281, -281, 11, 1005, -281, 1005, -281, 81, -281,
+ 1690, 26, -281, -281, 1261, 105, -281, -38, 1005, -32,
+ 101, -281, -281, 151, -281, 26, -281, -281, 49, -50,
+ 1294, 1327, 1360, 1393, 1558, -281, 51, -281, 129, -50,
+ -50, 1624, 1690, 14, -281, 440, 1231, 1005, 1231, 69,
+ 1657, -281, 784, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
+ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 130,
+ 1005, 1261, 1624, -16, 1005, 55, -7, 1624, 4, 55,
+ 133, 1690, 1690, 1005, -281, -281, 96, 1005, 1005, -281,
+ 1005, 1005, 1525, 1005, 1005, -281, -281, 1005, -281, 134,
+ 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
+ 137, 5, -281, -281, 1005, -281, 66, 1690, 67, 1591,
+ -281, -281, 1005, -281, 1005, -281, 950, 950, 950, -50,
+ -50, -50, 1690, 950, 950, 231, 1063, 1063, -50, -50,
+ 1690, 1690, -281, -36, -281, 1690, -281, -281, -281, 1690,
+ 130, 1005, -281, -281, 1690, 1690, 1690, 1690, 1005, 1005,
+ 1690, 1690, 130, 1690, -281, 1690, 1200, 1690, 1426, 1690,
+ 1459, 1690, 1492, 1690, 1690, -281, -281, 1005, 1690, -281,
+ -14, -281, 808, 624, 1690, 1690, 624, 142, 68, -36,
+ 1690, 1690, 1690, -36, 1005, 1005, 1005, 1005, 7, 624,
+ 123, 1005, -281, -281, -281, -26, 147, -281, 152, -281,
+ 68, 68, 1690, 1690, 1690, 1690, -281, 159, 1005, 1690,
+ -29, -281, 65, 158, -281, -281, 532, -281, -281, -281,
+ 1690, -281, -281, -281, 158, -281, 1231, 808, 624, 158,
+ 158, -281, 1231, -281, 624, 624, -281, 624, 808, -281,
+ 138, 145, -281, 168, -281, 169, 150, 624, 174, -281,
+ -281, -281, -281, -281, -281, -281, -281, 177, -281, -281,
+ 808, -281, 716, 716, -281, -281, -281, 624, -281, -281
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -265, -265, 18, 71, -265, -54, 0, -265, -265, -265,
- -102, -243, -118, -124, -265, -265, -265, -264, -109, 2,
- -194, -265, -265, 1, -265, -265, -265, -265, -265, -265,
- 171, -13, -265, -265, -265, -265, -265, -265, -180, -181,
- -265, -33, 12
+ -281, -281, 18, 85, -281, -54, 0, -281, -281, -281,
+ -89, -254, -107, -124, -281, -281, -281, -280, -109, 2,
+ -194, -281, -281, 1, -281, -281, -281, -281, -281, -281,
+ 183, -13, -281, -281, -281, -281, -281, -281, -188, -160,
+ -281, -33, 12
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -7
+#define YYTABLE_NINF -56
static const yytype_int16 yytable[] =
{
50, 131, 196, 124, 198, 68, 301, 312, 69, 70,
- 72, 266, 123, 75, 72, 72, 170, 106, 224, 65,
- 280, 90, 173, 154, 94, 77, 79, 139, 64, 313,
- 103, 90, 302, 109, 110, 111, 112, 113, 114, 321,
- 281, 155, 74, 119, 120, 121, 122, 159, 97, 98,
- 269, 147, 148, 171, 321, 130, 230, 132, 86, 174,
- 88, 226, 273, 99, 125, 279, 154, 242, 151, 227,
- 81, 328, 152, 64, 194, 122, 328, 152, 164, 157,
- 267, 122, 82, 153, 256, 161, 93, 162, 156, 257,
- 100, 262, 178, 296, 101, 306, 95, 96, 194, 172,
- 102, 64, 193, 194, 200, 201, 231, 232, 317, 307,
- 308, 107, 115, 323, 324, 117, 118, 326, 126, 127,
- 150, 154, 163, 169, 191, 50, 175, 130, 197, 199,
- 160, 335, 179, 222, 206, 207, 208, 209, 210, 211,
+ 72, 266, 123, 75, 72, 72, 170, 106, 64, 65,
+ 280, 90, 173, 322, 94, 77, 79, 139, 81, 313,
+ 103, 90, 302, 109, 110, 111, 112, 113, 114, 322,
+ 281, 155, 269, 119, 120, 121, 122, 159, 97, 98,
+ 74, 147, 148, 171, 273, 130, 230, 132, 82, 174,
+ 329, 93, 64, 99, 125, 279, 329, 242, 151, 267,
+ 100, 86, 152, 88, 118, 122, 101, 152, 164, 157,
+ 102, 122, 107, 153, 224, 161, 115, 162, 156, 154,
+ 117, 262, 178, 226, 126, 306, 150, -55, 154, 172,
+ 127, 64, 95, 96, 227, 256, -55, 296, 318, 194,
+ 257, 154, 194, 324, 325, -55, 160, 327, 193, 194,
+ -55, 200, 201, 231, 232, 50, 163, 130, 197, 199,
+ 307, 308, 337, 169, 206, 207, 208, 209, 210, 211,
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
- 205, 122, 190, 194, 228, 225, 354, 244, 255, 259,
- 261, 287, 288, 298, 229, 305, 304, 309, 234, 235,
- 338, 236, 237, 340, 240, 241, 303, 312, 243, 341,
- 342, 245, 246, 247, 248, 249, 250, 251, 252, 253,
- 254, 343, 330, 345, 351, 258, 195, 334, 314, 260,
- 332, 105, 0, 264, 327, 265, 0, 0, 282, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 136, 137, 278, 138, 0, 0, 139, 347,
- 0, 349, 270, 0, 350, 0, 0, 0, 0, 271,
+ 205, 122, -55, 175, 179, 225, 190, 191, 222, 357,
+ 194, 228, 244, -55, 229, 255, 259, 261, 234, 235,
+ 287, 236, 237, 288, 240, 241, 303, 298, 243, 304,
+ 305, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 309, 331, 317, 312, 258, 340, 342, 336, 260,
+ 344, 345, 346, 264, 328, 265, 348, 177, 282, 354,
+ 195, 314, 334, 105, 0, 0, 133, 134, 0, 0,
+ 0, 135, 136, 137, 278, 138, 0, 0, 139, 140,
+ 141, 350, 270, 352, 0, 0, 0, 353, 0, 271,
272, 268, 0, 142, 143, 144, 145, 146, 0, 0,
0, 0, 147, 148, 0, 0, 0, 0, 122, 0,
- 0, 0, 0, 0, 0, 285, 0, 0, 286, 0,
- 0, 0, 0, 337, 0, 292, 293, 294, 295, 0,
+ 0, 0, 0, 332, 0, 285, 0, 0, 286, 0,
+ 0, 0, 0, 0, 339, 292, 293, 294, 295, 0,
0, 297, 299, 0, 300, 0, 0, 290, 0, 0,
- 0, 291, 0, 352, 0, 0, 0, 0, 0, 310,
+ 0, 291, 0, 0, 0, 0, 355, 0, 0, 310,
0, 311, 136, 137, 0, 138, 0, 0, 139, 0,
- 0, 0, 325, 0, 0, 0, 329, 130, 0, 331,
- 333, 0, 130, 0, 143, 144, 145, 146, 336, 0,
- 0, 0, 147, 148, 0, 0, 0, 344, 0, 346,
- 0, 348, 0, 0, 0, -6, 1, 0, 0, 353,
- 353, 0, 0, 0, 0, 355, 356, 2, 3, 4,
- 5, 0, 6, 7, 8, 9, 10, 0, 11, 12,
- 13, 0, 0, 14, 15, 0, 16, 0, 17, 0,
- 0, 0, 18, 0, 19, 20, 21, 0, 0, 22,
- 0, 0, 0, 0, 23, 24, 25, 0, 0, 0,
- 26, 0, 0, 0, 27, 28, 29, 30, 0, 31,
- 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 0, 0, 33, 34, 35, 36, 37,
- 0, 0, 38, 39, 40, 41, 0, 0, 42, 43,
- 0, 0, 0, -6, 44, 0, 0, 0, 45, 2,
- 3, 4, 5, 0, 6, 7, 8, 9, 10, 0,
- 11, 12, 13, 0, 0, 14, 15, 0, 16, 0,
- 17, 0, 0, 0, 18, 0, 19, 20, 21, 0,
- 0, 22, 0, 0, 0, 0, 23, 24, 25, 0,
- 0, 0, 26, 0, 0, 0, 27, 28, 29, 30,
- 0, 31, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 0, 0, 33, 34, 35,
- 36, 37, 0, 0, 38, 39, 40, 41, 0, 0,
- 42, 43, 0, 0, 0, 0, 44, 0, 0, 0,
- 45, 2, 3, 4, 5, 0, 6, 7, 8, 9,
- 10, 0, 11, 12, 13, 0, 0, 66, 15, 0,
- 16, 322, 17, 0, 0, 0, 18, 0, 19, 20,
- 21, 0, 0, 0, 0, 0, 0, 0, 23, 24,
- 25, 0, 0, 0, 26, 0, 0, 0, 0, 0,
- 29, 30, 0, 31, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 0, 0, 33,
- 34, 35, 36, 37, 0, 0, 38, 39, 0, 41,
- 0, 0, 42, 43, 0, 0, 0, 64, 44, 0,
- 0, 0, 45, 2, 3, 4, 5, 0, 6, 7,
- 8, 9, 10, 0, 11, 12, 13, 0, 0, 66,
- 15, 0, 16, 0, 17, 0, 0, 0, 18, 0,
- 19, 20, 21, 0, 0, 0, 0, 0, 0, 0,
- 23, 24, 25, 0, 0, 0, 26, 0, 0, 0,
- 0, 0, 29, 30, 0, 31, 0, 0, 0, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
- 0, 33, 34, 35, 36, 37, 0, 0, 38, 39,
- 0, 41, 0, 0, 42, 43, 0, 0, 0, 64,
- 44, 0, 0, 0, 45, 2, 3, 4, 5, 0,
- 6, 7, 8, 9, 10, 0, 11, 12, 13, 0,
- 0, 66, 15, 0, 16, 0, 17, 0, 0, 0,
- 18, 0, 19, 20, 21, 0, 0, 0, 0, 0,
- 0, 0, 23, 24, 25, 0, 0, 0, 26, 0,
- 0, 0, 0, 0, 29, 30, 0, 31, 0, 0,
- 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 0, 0, 33, 34, 35, 36, 37, 0, 0,
- 38, 39, 0, 41, 0, 0, 42, 43, 0, 0,
- 0, 0, 44, 0, 0, 0, 45, 2, 3, 4,
- 5, 0, 6, 7, 8, 9, 10, 0, 11, 12,
- 13, 0, 0, 66, 15, 204, 16, 0, 17, 0,
- 0, 0, 18, 0, 19, 20, 133, 134, 0, 0,
- 0, 135, 136, 137, 23, 138, 25, 0, 139, 140,
- 141, 0, 0, 0, 0, 0, 29, 30, 0, 31,
- 0, 0, 0, 142, 143, 144, 145, 146, 32, 64,
- 0, 0, 147, 148, 0, 33, 34, 35, 36, 37,
- 0, 0, 0, 39, 0, 41, 0, 0, 42, 43,
- 2, 3, 4, 5, 44, 0, 0, 0, 45, 0,
- 0, 11, 12, 13, 0, 0, 66, 15, 0, 16,
- 0, 0, 0, 0, 0, 0, 84, 0, 0, 0,
- 0, 85, 0, 86, 87, 88, 89, 67, 0, 25,
- 0, 2, 3, 4, 5, 0, 0, 0, 0, 0,
- 0, 0, 11, 12, 13, 0, 0, 66, 15, 0,
- 16, 32, 0, 0, 0, 0, 0, 84, 33, 34,
- 35, 36, 37, 0, 86, 0, 88, 0, 67, 0,
- 25, 42, 43, 0, 0, 0, 0, 44, 0, 0,
- 0, 45, 104, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 0, 0, 33,
- 34, 35, 36, 37, 2, 3, 4, 5, 136, 137,
- 0, 138, 42, 43, 139, 11, 12, 13, 44, 0,
- 66, 15, 45, 16, 0, 0, 0, 0, 0, 0,
- 0, 0, 145, 146, 0, 0, 0, 0, 147, 148,
- 0, 67, 0, 25, 2, 3, 4, 5, 0, 0,
+ 0, 0, 326, 0, 0, 0, 330, 130, 0, 0,
+ 333, 335, 0, 130, 143, 144, 145, 146, 0, 338,
+ 0, 0, 147, 148, 343, 0, 0, 0, 0, 347,
+ 0, 349, 0, 351, 0, 0, 0, 0, -6, 1,
+ 0, 0, 356, 356, 0, 0, 0, 0, 358, 359,
+ 2, 3, 4, 5, 0, 6, 7, 8, 9, 10,
+ 0, 11, 12, 13, 0, 0, 14, 15, 0, 16,
+ 0, 17, 0, 0, 0, 18, 0, 19, 20, 21,
+ 0, 0, 22, 0, 0, 0, 0, 23, 24, 25,
+ 0, 0, 0, 26, 0, 0, 0, 27, 28, 29,
+ 30, 0, 31, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 0, 0, 0, 0, 0, 0, 33, 34,
+ 35, 36, 37, 0, 0, 38, 39, 40, 41, 0,
+ 0, 42, 43, 0, 0, 0, -6, 44, 0, 0,
+ 0, 45, 2, 3, 4, 5, 0, 6, 7, 8,
+ 9, 10, 0, 11, 12, 13, 0, 0, 14, 15,
+ 0, 16, 0, 17, 0, 0, 0, 18, 0, 19,
+ 20, 21, 0, 0, 22, 0, 0, 0, 0, 23,
+ 24, 25, 0, 0, 0, 26, 0, 0, 0, 27,
+ 28, 29, 30, 0, 31, 0, 0, 0, 0, 0,
+ 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
+ 33, 34, 35, 36, 37, 0, 0, 38, 39, 40,
+ 41, 0, 0, 42, 43, 0, 0, 0, 0, 44,
+ 0, 0, 0, 45, 2, 3, 4, 5, 0, 6,
+ 7, 8, 9, 10, 0, 11, 12, 13, 0, 0,
+ 66, 15, 0, 16, 323, 17, 0, 0, 0, 18,
+ 0, 19, 20, 21, 0, 0, 0, 0, 0, 0,
+ 0, 23, 24, 25, 0, 0, 0, 26, 0, 0,
+ 0, 0, 0, 29, 30, 0, 31, 0, 0, 0,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 0, 0, 33, 34, 35, 36, 37, 0, 0, 38,
+ 39, 0, 41, 0, 0, 42, 43, 0, 0, 0,
+ 64, 44, 0, 0, 0, 45, 2, 3, 4, 5,
+ 0, 6, 7, 8, 9, 10, 0, 11, 12, 13,
+ 0, 0, 66, 15, 0, 16, 0, 17, 0, 0,
+ 0, 18, 0, 19, 20, 21, 0, 0, 0, 0,
+ 0, 0, 0, 23, 24, 25, 0, 0, 0, 26,
+ 0, 0, 0, 0, 0, 29, 30, 0, 31, 0,
+ 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,
+ 0, 0, 0, 0, 33, 34, 35, 36, 37, 0,
+ 0, 38, 39, 0, 41, 0, 0, 42, 43, 0,
+ 0, 0, 64, 44, 0, 0, 0, 45, 2, 3,
+ 4, 5, 0, 6, 7, 8, 9, 10, 0, 11,
+ 12, 13, 0, 0, 66, 15, 0, 16, 0, 17,
+ 0, 0, 0, 18, 0, 19, 20, 21, 0, 0,
+ 0, 0, 0, 0, 0, 23, 24, 25, 0, 0,
+ 0, 26, 0, 0, 0, 0, 0, 29, 30, 0,
+ 31, 0, 0, 0, 0, 0, 0, 0, 0, 32,
+ 0, 0, 0, 0, 0, 0, 33, 34, 35, 36,
+ 37, 0, 0, 38, 39, 0, 41, 0, 0, 42,
+ 43, 0, 0, 0, 0, 44, 0, 0, 0, 45,
+ 2, 3, 4, 5, 0, 6, 7, 8, 9, 10,
+ 0, 11, 12, 13, 0, 0, 66, 15, 204, 16,
+ 0, 17, 0, 0, 0, 18, 0, 19, 20, 133,
+ 134, 0, 0, 0, 135, 136, 137, 23, 138, 25,
+ 0, 139, 140, 141, 0, 0, 0, 0, 0, 29,
+ 30, 0, 31, 0, 0, 0, 142, 143, 144, 145,
+ 146, 32, 64, 0, 0, 147, 148, 0, 33, 34,
+ 35, 36, 37, 0, 0, 0, 39, 0, 41, 0,
+ 0, 42, 43, 2, 3, 4, 5, 44, 0, 0,
+ 0, 45, 0, 0, 11, 12, 13, 0, 0, 66,
+ 15, 0, 16, 0, 0, 0, 0, 0, 0, 84,
+ 0, 0, 0, 0, 85, 0, 86, 87, 88, 89,
+ 67, 0, 25, 0, 2, 3, 4, 5, 0, 0,
0, 0, 0, 0, 0, 11, 12, 13, 0, 0,
- 66, 15, 0, 16, 0, 32, 0, 0, 0, 0,
- 0, 0, 33, 34, 35, 36, 37, 0, 0, 0,
- 0, 67, 0, 25, 0, 42, 43, 0, 0, 0,
- 0, 44, 0, 0, 0, 45, 0, 0, 0, 0,
+ 66, 15, 0, 16, 32, 0, 0, 0, 0, 0,
+ 84, 33, 34, 35, 36, 37, 0, 86, 0, 88,
+ 0, 67, 0, 25, 42, 43, 0, 0, 0, 0,
+ 44, 0, 0, 0, 45, 104, 0, 0, 0, 0,
0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
0, 0, 33, 34, 35, 36, 37, 2, 3, 4,
- 5, 0, 0, 0, 0, 42, 43, 0, 11, 12,
- 13, 71, 0, 66, 15, 45, 16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67, 0, 25, 2, 3, 4,
+ 5, 136, 137, 0, 138, 42, 43, 139, 11, 12,
+ 13, 44, 0, 66, 15, 45, 16, 0, 0, 0,
+ 0, 0, 142, 143, 144, 145, 146, 0, 0, 0,
+ 0, 147, 148, 0, 67, 0, 25, 2, 3, 4,
5, 0, 0, 0, 0, 0, 0, 0, 11, 12,
13, 0, 0, 66, 15, 0, 16, 0, 32, 0,
0, 0, 0, 0, 0, 33, 34, 35, 36, 37,
0, 0, 0, 0, 67, 0, 25, 0, 42, 43,
- 0, 0, 0, 0, 76, 0, 0, 0, 45, 0,
+ 0, 0, 0, 0, 44, 0, 0, 0, 45, 0,
0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
0, 0, 0, 0, 0, 33, 34, 35, 36, 37,
- 2, 3, 4, 5, 274, 0, 0, 0, 42, 43,
- 0, 11, 12, 13, 78, 0, 66, 15, 45, 16,
- 0, 0, 133, 134, 0, 0, 0, 135, 136, 137,
- 0, 138, 0, 0, 139, 140, 141, 67, 0, 25,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 142,
- 143, 144, 145, 146, 0, 0, 0, 0, 147, 148,
- 166, 32, 0, 0, 0, 0, 0, 0, 33, 34,
- 35, 36, 37, 0, 0, 0, 0, 0, 0, 0,
- 0, 42, 43, 133, 134, 0, 0, 128, 135, 136,
- 137, 45, 138, 167, 168, 139, 140, 141, 180, 0,
- 0, 0, 0, 0, 0, 181, 0, 0, 0, 0,
- 142, 143, 144, 145, 146, 0, 133, 134, 0, 147,
- 148, 135, 136, 137, 0, 138, 0, 0, 139, 140,
- 141, 182, 0, 0, 0, 0, 0, 0, 183, 0,
+ 2, 3, 4, 5, 136, 137, 0, 138, 42, 43,
+ 139, 11, 12, 13, 71, 0, 66, 15, 45, 16,
+ 0, 0, 0, 0, 0, 0, 0, 0, 145, 146,
+ 0, 0, 0, 0, 147, 148, 0, 67, 0, 25,
+ 2, 3, 4, 5, 0, 0, 0, 0, 0, 0,
+ 0, 11, 12, 13, 0, 0, 66, 15, 0, 16,
+ 0, 32, 0, 0, 0, 0, 0, 0, 33, 34,
+ 35, 36, 37, 0, 0, 0, 0, 67, 0, 25,
+ 0, 42, 43, 0, 0, 0, 0, 76, 0, 0,
+ 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 32, 0, 0, 0, 0, 0, 0, 33, 34,
+ 35, 36, 37, 2, 3, 4, 5, 274, 0, 0,
+ 0, 42, 43, 0, 11, 12, 13, 78, 0, 66,
+ 15, 45, 16, 0, 0, 133, 134, 0, 0, 0,
+ 135, 136, 137, 0, 138, 0, 0, 139, 140, 141,
+ 67, 0, 25, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 142, 143, 144, 145, 146, 0, 0, 0,
+ 0, 147, 148, 166, 32, 0, 0, 0, 0, 0,
+ 0, 33, 34, 35, 36, 37, 0, 0, 0, 0,
+ 0, 0, 0, 0, 42, 43, 133, 134, 0, 0,
+ 128, 135, 136, 137, 45, 138, 167, 168, 139, 140,
+ 141, 180, 0, 0, 0, 0, 0, 0, 181, 0,
0, 0, 0, 142, 143, 144, 145, 146, 0, 133,
134, 0, 147, 148, 135, 136, 137, 0, 138, 0,
- 0, 139, 140, 141, 184, 0, 0, 0, 0, 0,
- 0, 185, 0, 0, 0, 0, 142, 143, 144, 145,
+ 0, 139, 140, 141, 182, 0, 0, 0, 0, 0,
+ 0, 183, 0, 0, 0, 0, 142, 143, 144, 145,
146, 0, 133, 134, 0, 147, 148, 135, 136, 137,
- 0, 138, 0, 0, 139, 140, 141, 186, 0, 0,
- 0, 0, 0, 0, 187, 0, 0, 0, 0, 142,
+ 0, 138, 0, 0, 139, 140, 141, 184, 0, 0,
+ 0, 0, 0, 0, 185, 0, 0, 0, 0, 142,
143, 144, 145, 146, 0, 133, 134, 0, 147, 148,
135, 136, 137, 0, 138, 0, 0, 139, 140, 141,
- 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 186, 0, 0, 0, 0, 0, 0, 187, 0, 0,
0, 0, 142, 143, 144, 145, 146, 0, 133, 134,
0, 147, 148, 135, 136, 137, 0, 138, 0, 0,
- 139, 140, 141, 276, 0, 0, 0, 0, 0, 0,
+ 139, 140, 141, 275, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 142, 143, 144, 145, 146,
0, 133, 134, 0, 147, 148, 135, 136, 137, 0,
- 138, 0, 0, 139, 140, 141, 277, 0, 0, 0,
+ 138, 0, 0, 139, 140, 141, 276, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 142, 143,
144, 145, 146, 0, 133, 134, 0, 147, 148, 135,
- 136, 137, 0, 138, 0, 0, 139, 140, 141, 0,
- 0, 0, 0, 0, 0, 0, 238, 0, 0, 0,
+ 136, 137, 0, 138, 0, 0, 139, 140, 141, 277,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 142, 143, 144, 145, 146, 0, 133, 134, 0,
147, 148, 135, 136, 137, 0, 138, 0, 0, 139,
- 140, 141, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 177, 0, 239, 142, 143, 144, 145, 146, 0,
+ 140, 141, 0, 0, 0, 0, 0, 0, 0, 238,
+ 0, 0, 0, 0, 142, 143, 144, 145, 146, 0,
133, 134, 0, 147, 148, 135, 136, 137, 0, 138,
0, 0, 139, 140, 141, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 142, 143, 144,
+ 0, 0, 0, 0, 0, 0, 239, 142, 143, 144,
145, 146, 0, 133, 134, 0, 147, 148, 135, 136,
137, 0, 138, 0, 0, 139, 140, 141, 0, 0,
0, 0, 0, 188, 189, 0, 0, 0, 0, 0,
@@ -1108,122 +1106,111 @@ static const yytype_int16 yytable[] =
static const yytype_int16 yycheck[] =
{
0, 55, 126, 0, 128, 4, 32, 36, 7, 8,
- 9, 205, 45, 12, 13, 14, 54, 30, 100, 1,
- 34, 20, 54, 105, 23, 13, 14, 77, 98, 58,
- 29, 30, 58, 32, 33, 34, 35, 36, 37, 303,
- 54, 74, 28, 42, 43, 44, 45, 80, 13, 14,
- 230, 101, 102, 91, 318, 54, 165, 56, 45, 91,
- 47, 100, 242, 28, 46, 259, 105, 176, 67, 100,
- 50, 314, 71, 98, 105, 74, 319, 76, 91, 78,
- 105, 80, 28, 71, 100, 84, 28, 86, 76, 105,
- 28, 200, 105, 100, 28, 289, 56, 57, 105, 98,
- 28, 98, 104, 105, 52, 53, 27, 28, 302, 290,
- 291, 28, 28, 307, 308, 28, 99, 311, 99, 91,
- 99, 105, 45, 28, 28, 125, 52, 126, 127, 128,
- 105, 325, 105, 28, 133, 134, 135, 136, 137, 138,
+ 9, 205, 45, 12, 13, 14, 54, 30, 98, 1,
+ 34, 20, 54, 303, 23, 13, 14, 77, 50, 58,
+ 29, 30, 58, 32, 33, 34, 35, 36, 37, 319,
+ 54, 74, 230, 42, 43, 44, 45, 80, 13, 14,
+ 28, 101, 102, 91, 242, 54, 165, 56, 28, 91,
+ 314, 28, 98, 28, 46, 259, 320, 176, 67, 105,
+ 28, 45, 71, 47, 99, 74, 28, 76, 91, 78,
+ 28, 80, 28, 71, 100, 84, 28, 86, 76, 105,
+ 28, 200, 105, 100, 99, 289, 99, 32, 105, 98,
+ 91, 98, 56, 57, 100, 100, 41, 100, 302, 105,
+ 105, 105, 105, 307, 308, 50, 105, 311, 104, 105,
+ 55, 52, 53, 27, 28, 125, 45, 126, 127, 128,
+ 290, 291, 326, 28, 133, 134, 135, 136, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 132, 150, 105, 105, 28, 154, 350, 28, 28, 100,
- 100, 28, 105, 54, 163, 28, 32, 32, 167, 168,
- 58, 170, 171, 52, 173, 174, 285, 36, 177, 32,
- 32, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 52, 316, 32, 32, 194, 125, 321, 300, 197,
- 318, 30, -1, 202, 313, 204, -1, -1, 262, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 71, 72, 257, 74, -1, -1, 77, 338,
- -1, 340, 231, -1, 343, -1, -1, -1, -1, 238,
+ 132, 150, 87, 52, 105, 154, 105, 28, 28, 353,
+ 105, 28, 28, 98, 163, 28, 100, 100, 167, 168,
+ 28, 170, 171, 105, 173, 174, 285, 54, 177, 32,
+ 28, 180, 181, 182, 183, 184, 185, 186, 187, 188,
+ 189, 32, 316, 302, 36, 194, 58, 52, 322, 197,
+ 32, 32, 52, 202, 313, 204, 32, 56, 262, 32,
+ 125, 300, 319, 30, -1, -1, 65, 66, -1, -1,
+ -1, 70, 71, 72, 257, 74, -1, -1, 77, 78,
+ 79, 340, 231, 342, -1, -1, -1, 346, -1, 238,
239, 223, -1, 92, 93, 94, 95, 96, -1, -1,
-1, -1, 101, 102, -1, -1, -1, -1, 257, -1,
- -1, -1, -1, -1, -1, 263, -1, -1, 266, -1,
- -1, -1, -1, 327, -1, 274, 275, 276, 277, -1,
+ -1, -1, -1, 317, -1, 263, -1, -1, 266, -1,
+ -1, -1, -1, -1, 328, 274, 275, 276, 277, -1,
-1, 279, 281, -1, 282, -1, -1, 269, -1, -1,
- -1, 273, -1, 347, -1, -1, -1, -1, -1, 298,
+ -1, 273, -1, -1, -1, -1, 350, -1, -1, 298,
-1, 299, 71, 72, -1, 74, -1, -1, 77, -1,
- -1, -1, 310, -1, -1, -1, 314, 316, -1, 317,
- 318, -1, 321, -1, 93, 94, 95, 96, 326, -1,
- -1, -1, 101, 102, -1, -1, -1, 335, -1, 337,
- -1, 339, -1, -1, -1, 0, 1, -1, -1, 349,
- 350, -1, -1, -1, -1, 353, 354, 12, 13, 14,
- 15, -1, 17, 18, 19, 20, 21, -1, 23, 24,
- 25, -1, -1, 28, 29, -1, 31, -1, 33, -1,
- -1, -1, 37, -1, 39, 40, 41, -1, -1, 44,
- -1, -1, -1, -1, 49, 50, 51, -1, -1, -1,
- 55, -1, -1, -1, 59, 60, 61, 62, -1, 64,
- -1, -1, -1, -1, -1, -1, -1, -1, 73, -1,
- -1, -1, -1, -1, -1, 80, 81, 82, 83, 84,
- -1, -1, 87, 88, 89, 90, -1, -1, 93, 94,
- -1, -1, -1, 98, 99, -1, -1, -1, 103, 12,
- 13, 14, 15, -1, 17, 18, 19, 20, 21, -1,
- 23, 24, 25, -1, -1, 28, 29, -1, 31, -1,
- 33, -1, -1, -1, 37, -1, 39, 40, 41, -1,
- -1, 44, -1, -1, -1, -1, 49, 50, 51, -1,
- -1, -1, 55, -1, -1, -1, 59, 60, 61, 62,
- -1, 64, -1, -1, -1, -1, -1, -1, -1, -1,
- 73, -1, -1, -1, -1, -1, -1, 80, 81, 82,
- 83, 84, -1, -1, 87, 88, 89, 90, -1, -1,
- 93, 94, -1, -1, -1, -1, 99, -1, -1, -1,
- 103, 12, 13, 14, 15, -1, 17, 18, 19, 20,
- 21, -1, 23, 24, 25, -1, -1, 28, 29, -1,
- 31, 32, 33, -1, -1, -1, 37, -1, 39, 40,
- 41, -1, -1, -1, -1, -1, -1, -1, 49, 50,
- 51, -1, -1, -1, 55, -1, -1, -1, -1, -1,
- 61, 62, -1, 64, -1, -1, -1, -1, -1, -1,
- -1, -1, 73, -1, -1, -1, -1, -1, -1, 80,
- 81, 82, 83, 84, -1, -1, 87, 88, -1, 90,
- -1, -1, 93, 94, -1, -1, -1, 98, 99, -1,
- -1, -1, 103, 12, 13, 14, 15, -1, 17, 18,
- 19, 20, 21, -1, 23, 24, 25, -1, -1, 28,
- 29, -1, 31, -1, 33, -1, -1, -1, 37, -1,
- 39, 40, 41, -1, -1, -1, -1, -1, -1, -1,
- 49, 50, 51, -1, -1, -1, 55, -1, -1, -1,
- -1, -1, 61, 62, -1, 64, -1, -1, -1, -1,
- -1, -1, -1, -1, 73, -1, -1, -1, -1, -1,
- -1, 80, 81, 82, 83, 84, -1, -1, 87, 88,
- -1, 90, -1, -1, 93, 94, -1, -1, -1, 98,
- 99, -1, -1, -1, 103, 12, 13, 14, 15, -1,
- 17, 18, 19, 20, 21, -1, 23, 24, 25, -1,
- -1, 28, 29, -1, 31, -1, 33, -1, -1, -1,
- 37, -1, 39, 40, 41, -1, -1, -1, -1, -1,
- -1, -1, 49, 50, 51, -1, -1, -1, 55, -1,
- -1, -1, -1, -1, 61, 62, -1, 64, -1, -1,
- -1, -1, -1, -1, -1, -1, 73, -1, -1, -1,
- -1, -1, -1, 80, 81, 82, 83, 84, -1, -1,
- 87, 88, -1, 90, -1, -1, 93, 94, -1, -1,
- -1, -1, 99, -1, -1, -1, 103, 12, 13, 14,
- 15, -1, 17, 18, 19, 20, 21, -1, 23, 24,
- 25, -1, -1, 28, 29, 54, 31, -1, 33, -1,
- -1, -1, 37, -1, 39, 40, 65, 66, -1, -1,
- -1, 70, 71, 72, 49, 74, 51, -1, 77, 78,
- 79, -1, -1, -1, -1, -1, 61, 62, -1, 64,
- -1, -1, -1, 92, 93, 94, 95, 96, 73, 98,
- -1, -1, 101, 102, -1, 80, 81, 82, 83, 84,
- -1, -1, -1, 88, -1, 90, -1, -1, 93, 94,
- 12, 13, 14, 15, 99, -1, -1, -1, 103, -1,
+ -1, -1, 310, -1, -1, -1, 314, 316, -1, -1,
+ 318, 319, -1, 322, 93, 94, 95, 96, -1, 327,
+ -1, -1, 101, 102, 332, -1, -1, -1, -1, 337,
+ -1, 339, -1, 341, -1, -1, -1, -1, 0, 1,
+ -1, -1, 352, 353, -1, -1, -1, -1, 356, 357,
+ 12, 13, 14, 15, -1, 17, 18, 19, 20, 21,
-1, 23, 24, 25, -1, -1, 28, 29, -1, 31,
- -1, -1, -1, -1, -1, -1, 38, -1, -1, -1,
- -1, 43, -1, 45, 46, 47, 48, 49, -1, 51,
- -1, 12, 13, 14, 15, -1, -1, -1, -1, -1,
- -1, -1, 23, 24, 25, -1, -1, 28, 29, -1,
- 31, 73, -1, -1, -1, -1, -1, 38, 80, 81,
- 82, 83, 84, -1, 45, -1, 47, -1, 49, -1,
- 51, 93, 94, -1, -1, -1, -1, 99, -1, -1,
- -1, 103, 63, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 73, -1, -1, -1, -1, -1, -1, 80,
- 81, 82, 83, 84, 12, 13, 14, 15, 71, 72,
- -1, 74, 93, 94, 77, 23, 24, 25, 99, -1,
- 28, 29, 103, 31, -1, -1, -1, -1, -1, -1,
- -1, -1, 95, 96, -1, -1, -1, -1, 101, 102,
- -1, 49, -1, 51, 12, 13, 14, 15, -1, -1,
+ -1, 33, -1, -1, -1, 37, -1, 39, 40, 41,
+ -1, -1, 44, -1, -1, -1, -1, 49, 50, 51,
+ -1, -1, -1, 55, -1, -1, -1, 59, 60, 61,
+ 62, -1, 64, -1, -1, -1, -1, -1, -1, -1,
+ -1, 73, -1, -1, -1, -1, -1, -1, 80, 81,
+ 82, 83, 84, -1, -1, 87, 88, 89, 90, -1,
+ -1, 93, 94, -1, -1, -1, 98, 99, -1, -1,
+ -1, 103, 12, 13, 14, 15, -1, 17, 18, 19,
+ 20, 21, -1, 23, 24, 25, -1, -1, 28, 29,
+ -1, 31, -1, 33, -1, -1, -1, 37, -1, 39,
+ 40, 41, -1, -1, 44, -1, -1, -1, -1, 49,
+ 50, 51, -1, -1, -1, 55, -1, -1, -1, 59,
+ 60, 61, 62, -1, 64, -1, -1, -1, -1, -1,
+ -1, -1, -1, 73, -1, -1, -1, -1, -1, -1,
+ 80, 81, 82, 83, 84, -1, -1, 87, 88, 89,
+ 90, -1, -1, 93, 94, -1, -1, -1, -1, 99,
+ -1, -1, -1, 103, 12, 13, 14, 15, -1, 17,
+ 18, 19, 20, 21, -1, 23, 24, 25, -1, -1,
+ 28, 29, -1, 31, 32, 33, -1, -1, -1, 37,
+ -1, 39, 40, 41, -1, -1, -1, -1, -1, -1,
+ -1, 49, 50, 51, -1, -1, -1, 55, -1, -1,
+ -1, -1, -1, 61, 62, -1, 64, -1, -1, -1,
+ -1, -1, -1, -1, -1, 73, -1, -1, -1, -1,
+ -1, -1, 80, 81, 82, 83, 84, -1, -1, 87,
+ 88, -1, 90, -1, -1, 93, 94, -1, -1, -1,
+ 98, 99, -1, -1, -1, 103, 12, 13, 14, 15,
+ -1, 17, 18, 19, 20, 21, -1, 23, 24, 25,
+ -1, -1, 28, 29, -1, 31, -1, 33, -1, -1,
+ -1, 37, -1, 39, 40, 41, -1, -1, -1, -1,
+ -1, -1, -1, 49, 50, 51, -1, -1, -1, 55,
+ -1, -1, -1, -1, -1, 61, 62, -1, 64, -1,
+ -1, -1, -1, -1, -1, -1, -1, 73, -1, -1,
+ -1, -1, -1, -1, 80, 81, 82, 83, 84, -1,
+ -1, 87, 88, -1, 90, -1, -1, 93, 94, -1,
+ -1, -1, 98, 99, -1, -1, -1, 103, 12, 13,
+ 14, 15, -1, 17, 18, 19, 20, 21, -1, 23,
+ 24, 25, -1, -1, 28, 29, -1, 31, -1, 33,
+ -1, -1, -1, 37, -1, 39, 40, 41, -1, -1,
+ -1, -1, -1, -1, -1, 49, 50, 51, -1, -1,
+ -1, 55, -1, -1, -1, -1, -1, 61, 62, -1,
+ 64, -1, -1, -1, -1, -1, -1, -1, -1, 73,
+ -1, -1, -1, -1, -1, -1, 80, 81, 82, 83,
+ 84, -1, -1, 87, 88, -1, 90, -1, -1, 93,
+ 94, -1, -1, -1, -1, 99, -1, -1, -1, 103,
+ 12, 13, 14, 15, -1, 17, 18, 19, 20, 21,
+ -1, 23, 24, 25, -1, -1, 28, 29, 54, 31,
+ -1, 33, -1, -1, -1, 37, -1, 39, 40, 65,
+ 66, -1, -1, -1, 70, 71, 72, 49, 74, 51,
+ -1, 77, 78, 79, -1, -1, -1, -1, -1, 61,
+ 62, -1, 64, -1, -1, -1, 92, 93, 94, 95,
+ 96, 73, 98, -1, -1, 101, 102, -1, 80, 81,
+ 82, 83, 84, -1, -1, -1, 88, -1, 90, -1,
+ -1, 93, 94, 12, 13, 14, 15, 99, -1, -1,
+ -1, 103, -1, -1, 23, 24, 25, -1, -1, 28,
+ 29, -1, 31, -1, -1, -1, -1, -1, -1, 38,
+ -1, -1, -1, -1, 43, -1, 45, 46, 47, 48,
+ 49, -1, 51, -1, 12, 13, 14, 15, -1, -1,
-1, -1, -1, -1, -1, 23, 24, 25, -1, -1,
- 28, 29, -1, 31, -1, 73, -1, -1, -1, -1,
- -1, -1, 80, 81, 82, 83, 84, -1, -1, -1,
- -1, 49, -1, 51, -1, 93, 94, -1, -1, -1,
- -1, 99, -1, -1, -1, 103, -1, -1, -1, -1,
+ 28, 29, -1, 31, 73, -1, -1, -1, -1, -1,
+ 38, 80, 81, 82, 83, 84, -1, 45, -1, 47,
+ -1, 49, -1, 51, 93, 94, -1, -1, -1, -1,
+ 99, -1, -1, -1, 103, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 73, -1, -1, -1, -1,
-1, -1, 80, 81, 82, 83, 84, 12, 13, 14,
- 15, -1, -1, -1, -1, 93, 94, -1, 23, 24,
+ 15, 71, 72, -1, 74, 93, 94, 77, 23, 24,
25, 99, -1, 28, 29, 103, 31, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 49, -1, 51, 12, 13, 14,
+ -1, -1, 92, 93, 94, 95, 96, -1, -1, -1,
+ -1, 101, 102, -1, 49, -1, 51, 12, 13, 14,
15, -1, -1, -1, -1, -1, -1, -1, 23, 24,
25, -1, -1, 28, 29, -1, 31, -1, 73, -1,
-1, -1, -1, -1, -1, 80, 81, 82, 83, 84,
@@ -1231,19 +1218,27 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, 99, -1, -1, -1, 103, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 73, -1,
-1, -1, -1, -1, -1, 80, 81, 82, 83, 84,
- 12, 13, 14, 15, 47, -1, -1, -1, 93, 94,
- -1, 23, 24, 25, 99, -1, 28, 29, 103, 31,
- -1, -1, 65, 66, -1, -1, -1, 70, 71, 72,
- -1, 74, -1, -1, 77, 78, 79, 49, -1, 51,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
- 93, 94, 95, 96, -1, -1, -1, -1, 101, 102,
- 42, 73, -1, -1, -1, -1, -1, -1, 80, 81,
- 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
- -1, 93, 94, 65, 66, -1, -1, 99, 70, 71,
- 72, 103, 74, 75, 76, 77, 78, 79, 47, -1,
- -1, -1, -1, -1, -1, 54, -1, -1, -1, -1,
- 92, 93, 94, 95, 96, -1, 65, 66, -1, 101,
- 102, 70, 71, 72, -1, 74, -1, -1, 77, 78,
+ 12, 13, 14, 15, 71, 72, -1, 74, 93, 94,
+ 77, 23, 24, 25, 99, -1, 28, 29, 103, 31,
+ -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
+ -1, -1, -1, -1, 101, 102, -1, 49, -1, 51,
+ 12, 13, 14, 15, -1, -1, -1, -1, -1, -1,
+ -1, 23, 24, 25, -1, -1, 28, 29, -1, 31,
+ -1, 73, -1, -1, -1, -1, -1, -1, 80, 81,
+ 82, 83, 84, -1, -1, -1, -1, 49, -1, 51,
+ -1, 93, 94, -1, -1, -1, -1, 99, -1, -1,
+ -1, 103, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 73, -1, -1, -1, -1, -1, -1, 80, 81,
+ 82, 83, 84, 12, 13, 14, 15, 47, -1, -1,
+ -1, 93, 94, -1, 23, 24, 25, 99, -1, 28,
+ 29, 103, 31, -1, -1, 65, 66, -1, -1, -1,
+ 70, 71, 72, -1, 74, -1, -1, 77, 78, 79,
+ 49, -1, 51, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 92, 93, 94, 95, 96, -1, -1, -1,
+ -1, 101, 102, 42, 73, -1, -1, -1, -1, -1,
+ -1, 80, 81, 82, 83, 84, -1, -1, -1, -1,
+ -1, -1, -1, -1, 93, 94, 65, 66, -1, -1,
+ 99, 70, 71, 72, 103, 74, 75, 76, 77, 78,
79, 47, -1, -1, -1, -1, -1, -1, 54, -1,
-1, -1, -1, 92, 93, 94, 95, 96, -1, 65,
66, -1, 101, 102, 70, 71, 72, -1, 74, -1,
@@ -1254,7 +1249,7 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, 54, -1, -1, -1, -1, 92,
93, 94, 95, 96, -1, 65, 66, -1, 101, 102,
70, 71, 72, -1, 74, -1, -1, 77, 78, 79,
- 47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 47, -1, -1, -1, -1, -1, -1, 54, -1, -1,
-1, -1, 92, 93, 94, 95, 96, -1, 65, 66,
-1, 101, 102, 70, 71, 72, -1, 74, -1, -1,
77, 78, 79, 47, -1, -1, -1, -1, -1, -1,
@@ -1263,15 +1258,15 @@ static const yytype_int16 yycheck[] =
74, -1, -1, 77, 78, 79, 47, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 92, 93,
94, 95, 96, -1, 65, 66, -1, 101, 102, 70,
- 71, 72, -1, 74, -1, -1, 77, 78, 79, -1,
- -1, -1, -1, -1, -1, -1, 54, -1, -1, -1,
+ 71, 72, -1, 74, -1, -1, 77, 78, 79, 47,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 92, 93, 94, 95, 96, -1, 65, 66, -1,
101, 102, 70, 71, 72, -1, 74, -1, -1, 77,
- 78, 79, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 56, -1, 91, 92, 93, 94, 95, 96, -1,
+ 78, 79, -1, -1, -1, -1, -1, -1, -1, 54,
+ -1, -1, -1, -1, 92, 93, 94, 95, 96, -1,
65, 66, -1, 101, 102, 70, 71, 72, -1, 74,
-1, -1, 77, 78, 79, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 92, 93, 94,
+ -1, -1, -1, -1, -1, -1, 91, 92, 93, 94,
95, 96, -1, 65, 66, -1, 101, 102, 70, 71,
72, -1, 74, -1, -1, 77, 78, 79, -1, -1,
-1, -1, -1, 85, 86, -1, -1, -1, -1, -1,
@@ -1327,11 +1322,11 @@ static const yytype_uint8 yystos[] =
34, 54, 111, 108, 112, 125, 125, 28, 105, 145,
108, 108, 129, 129, 129, 129, 100, 125, 54, 129,
125, 32, 58, 124, 32, 28, 126, 145, 145, 32,
- 129, 125, 36, 58, 116, 117, 123, 126, 115, 116,
- 118, 123, 32, 126, 126, 125, 126, 124, 117, 125,
- 119, 125, 118, 125, 119, 126, 125, 111, 58, 114,
- 52, 32, 32, 52, 125, 32, 125, 124, 125, 124,
- 124, 32, 111, 112, 126, 125, 125
+ 129, 125, 36, 58, 116, 117, 123, 124, 126, 115,
+ 116, 118, 123, 32, 126, 126, 125, 126, 124, 117,
+ 125, 119, 111, 125, 118, 125, 119, 126, 125, 111,
+ 58, 114, 52, 125, 32, 32, 52, 125, 32, 125,
+ 124, 125, 124, 124, 32, 111, 112, 126, 125, 125
};
#define yyerrok (yyerrstatus = 0)
@@ -2375,6 +2370,20 @@ yyreduce:
#line 295 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
+ WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
+ WRITE_UINT32(&else1, (yyvsp[(7) - (9)].code) - (yyvsp[(1) - (9)].code));
+ WRITE_UINT32(&end, (yyvsp[(9) - (9)].code) - (yyvsp[(1) - (9)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 1] = then; /* thenpart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 2] = else1; /* elsepart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 3] = end; /* end, if cond fails */
+
+ g_lingo->processIf(0, (yyvsp[(9) - (9)].code) - (yyvsp[(1) - (9)].code)); ;}
+ break;
+
+ case 34:
+#line 305 "engines/director/lingo/lingo-gr.y"
+ {
+ inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
WRITE_UINT32(&else1, 0);
WRITE_UINT32(&end, (yyvsp[(6) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2385,8 +2394,8 @@ yyreduce:
g_lingo->processIf(0, 0); ;}
break;
- case 34:
-#line 305 "engines/director/lingo/lingo-gr.y"
+ case 35:
+#line 315 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (10)].code) - (yyvsp[(1) - (10)].code));
@@ -2399,8 +2408,8 @@ yyreduce:
g_lingo->processIf(0, 0); ;}
break;
- case 35:
-#line 315 "engines/director/lingo/lingo-gr.y"
+ case 36:
+#line 325 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (10)].code) - (yyvsp[(1) - (10)].code));
@@ -2413,18 +2422,18 @@ yyreduce:
g_lingo->processIf(0, (yyvsp[(10) - (10)].code) - (yyvsp[(1) - (10)].code)); ;}
break;
- case 36:
-#line 327 "engines/director/lingo/lingo-gr.y"
+ case 37:
+#line 337 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = 0; ;}
break;
- case 37:
-#line 328 "engines/director/lingo/lingo-gr.y"
+ case 38:
+#line 338 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(2) - (3)].code); ;}
break;
- case 42:
-#line 339 "engines/director/lingo/lingo-gr.y"
+ case 43:
+#line 349 "engines/director/lingo/lingo-gr.y"
{
inst then = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2433,8 +2442,8 @@ yyreduce:
g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
break;
- case 44:
-#line 348 "engines/director/lingo/lingo-gr.y"
+ case 45:
+#line 358 "engines/director/lingo/lingo-gr.y"
{
inst then = 0;
WRITE_UINT32(&then, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2443,23 +2452,23 @@ yyreduce:
g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
break;
- case 45:
-#line 356 "engines/director/lingo/lingo-gr.y"
+ case 46:
+#line 366 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(STOP); ;}
break;
- case 46:
-#line 357 "engines/director/lingo/lingo-gr.y"
+ case 47:
+#line 367 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code2(g_lingo->c_eq, STOP); ;}
break;
- case 48:
-#line 361 "engines/director/lingo/lingo-gr.y"
+ case 49:
+#line 371 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); ;}
break;
- case 49:
-#line 364 "engines/director/lingo/lingo-gr.y"
+ case 50:
+#line 374 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP);
g_lingo->code3(STOP, STOP, STOP);
@@ -2467,8 +2476,8 @@ yyreduce:
delete (yyvsp[(3) - (3)].s); ;}
break;
- case 50:
-#line 371 "engines/director/lingo/lingo-gr.y"
+ case 51:
+#line 381 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_ifcode);
g_lingo->code3(STOP, STOP, STOP);
@@ -2476,8 +2485,8 @@ yyreduce:
g_lingo->codeLabel(0); ;}
break;
- case 51:
-#line 378 "engines/director/lingo/lingo-gr.y"
+ case 52:
+#line 388 "engines/director/lingo/lingo-gr.y"
{
inst skipEnd;
WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions
@@ -2486,23 +2495,23 @@ yyreduce:
g_lingo->code1(skipEnd); ;}
break;
- case 52:
-#line 386 "engines/director/lingo/lingo-gr.y"
+ case 53:
+#line 396 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
- case 53:
-#line 389 "engines/director/lingo/lingo-gr.y"
+ case 54:
+#line 399 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
- case 54:
-#line 392 "engines/director/lingo/lingo-gr.y"
+ case 55:
+#line 402 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
- case 57:
-#line 397 "engines/director/lingo/lingo-gr.y"
+ case 58:
+#line 407 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_whencode);
g_lingo->code1(STOP);
@@ -2510,80 +2519,80 @@ yyreduce:
delete (yyvsp[(2) - (3)].s); ;}
break;
- case 58:
-#line 403 "engines/director/lingo/lingo-gr.y"
+ case 59:
+#line 413 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_tellcode);
g_lingo->code1(STOP); ;}
break;
- case 59:
-#line 407 "engines/director/lingo/lingo-gr.y"
+ case 60:
+#line 417 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->codeConst((yyvsp[(1) - (1)].i)); ;}
break;
- case 60:
-#line 408 "engines/director/lingo/lingo-gr.y"
+ case 61:
+#line 418 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_fconstpush);
g_lingo->codeFloat((yyvsp[(1) - (1)].f)); ;}
break;
- case 61:
-#line 411 "engines/director/lingo/lingo-gr.y"
+ case 62:
+#line 421 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.code) = g_lingo->code1(g_lingo->c_symbolpush);
g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}
break;
- case 62:
-#line 414 "engines/director/lingo/lingo-gr.y"
+ case 63:
+#line 424 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_stringpush);
g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}
break;
- case 63:
-#line 417 "engines/director/lingo/lingo-gr.y"
+ case 64:
+#line 427 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
delete (yyvsp[(1) - (1)].s); ;}
break;
- case 64:
-#line 420 "engines/director/lingo/lingo-gr.y"
+ case 65:
+#line 430 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 65:
-#line 423 "engines/director/lingo/lingo-gr.y"
+ case 66:
+#line 433 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
break;
- case 66:
-#line 424 "engines/director/lingo/lingo-gr.y"
+ case 67:
+#line 434 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;}
break;
- case 67:
-#line 425 "engines/director/lingo/lingo-gr.y"
+ case 68:
+#line 435 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg));
delete (yyvsp[(1) - (4)].s); ;}
break;
- case 68:
-#line 428 "engines/director/lingo/lingo-gr.y"
+ case 69:
+#line 438 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_eval);
g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str());
delete (yyvsp[(1) - (1)].s); ;}
break;
- case 69:
-#line 432 "engines/director/lingo/lingo-gr.y"
+ case 70:
+#line 442 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeConst(0); // Put dummy id
g_lingo->code1(g_lingo->c_theentitypush);
@@ -2593,8 +2602,8 @@ yyreduce:
g_lingo->code2(e, f); ;}
break;
- case 70:
-#line 439 "engines/director/lingo/lingo-gr.y"
+ case 71:
+#line 449 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_theentitypush);
inst e = 0, f = 0;
@@ -2603,386 +2612,386 @@ yyreduce:
g_lingo->code2(e, f); ;}
break;
- case 72:
-#line 446 "engines/director/lingo/lingo-gr.y"
+ case 73:
+#line 456 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_add); ;}
break;
- case 73:
-#line 447 "engines/director/lingo/lingo-gr.y"
+ case 74:
+#line 457 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_sub); ;}
break;
- case 74:
-#line 448 "engines/director/lingo/lingo-gr.y"
+ case 75:
+#line 458 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_mul); ;}
break;
- case 75:
-#line 449 "engines/director/lingo/lingo-gr.y"
+ case 76:
+#line 459 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_div); ;}
break;
- case 76:
-#line 450 "engines/director/lingo/lingo-gr.y"
+ case 77:
+#line 460 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_mod); ;}
break;
- case 77:
-#line 451 "engines/director/lingo/lingo-gr.y"
+ case 78:
+#line 461 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_gt); ;}
break;
- case 78:
-#line 452 "engines/director/lingo/lingo-gr.y"
+ case 79:
+#line 462 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_lt); ;}
break;
- case 79:
-#line 453 "engines/director/lingo/lingo-gr.y"
+ case 80:
+#line 463 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_neq); ;}
break;
- case 80:
-#line 454 "engines/director/lingo/lingo-gr.y"
+ case 81:
+#line 464 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_ge); ;}
break;
- case 81:
-#line 455 "engines/director/lingo/lingo-gr.y"
+ case 82:
+#line 465 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_le); ;}
break;
- case 82:
-#line 456 "engines/director/lingo/lingo-gr.y"
+ case 83:
+#line 466 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_and); ;}
break;
- case 83:
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 84:
+#line 467 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_or); ;}
break;
- case 84:
-#line 458 "engines/director/lingo/lingo-gr.y"
+ case 85:
+#line 468 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_not); ;}
break;
- case 85:
-#line 459 "engines/director/lingo/lingo-gr.y"
+ case 86:
+#line 469 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_ampersand); ;}
break;
- case 86:
-#line 460 "engines/director/lingo/lingo-gr.y"
+ case 87:
+#line 470 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_concat); ;}
break;
- case 87:
-#line 461 "engines/director/lingo/lingo-gr.y"
+ case 88:
+#line 471 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_contains); ;}
break;
- case 88:
-#line 462 "engines/director/lingo/lingo-gr.y"
+ case 89:
+#line 472 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_starts); ;}
break;
- case 89:
-#line 463 "engines/director/lingo/lingo-gr.y"
+ case 90:
+#line 473 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(2) - (2)].code); ;}
break;
- case 90:
-#line 464 "engines/director/lingo/lingo-gr.y"
+ case 91:
+#line 474 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;}
break;
- case 91:
-#line 465 "engines/director/lingo/lingo-gr.y"
+ case 92:
+#line 475 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(2) - (3)].code); ;}
break;
- case 92:
-#line 466 "engines/director/lingo/lingo-gr.y"
+ case 93:
+#line 476 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;}
break;
- case 93:
-#line 467 "engines/director/lingo/lingo-gr.y"
+ case 94:
+#line 477 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_intersects); ;}
break;
- case 94:
-#line 468 "engines/director/lingo/lingo-gr.y"
+ case 95:
+#line 478 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_within); ;}
break;
- case 95:
-#line 469 "engines/director/lingo/lingo-gr.y"
+ case 96:
+#line 479 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_charOf); ;}
break;
- case 96:
-#line 470 "engines/director/lingo/lingo-gr.y"
+ case 97:
+#line 480 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_charToOf); ;}
break;
- case 97:
-#line 471 "engines/director/lingo/lingo-gr.y"
+ case 98:
+#line 481 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_itemOf); ;}
break;
- case 98:
-#line 472 "engines/director/lingo/lingo-gr.y"
+ case 99:
+#line 482 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_itemToOf); ;}
break;
- case 99:
-#line 473 "engines/director/lingo/lingo-gr.y"
+ case 100:
+#line 483 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_lineOf); ;}
break;
- case 100:
-#line 474 "engines/director/lingo/lingo-gr.y"
+ case 101:
+#line 484 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_lineToOf); ;}
break;
- case 101:
-#line 475 "engines/director/lingo/lingo-gr.y"
+ case 102:
+#line 485 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_wordOf); ;}
break;
- case 102:
-#line 476 "engines/director/lingo/lingo-gr.y"
+ case 103:
+#line 486 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_wordToOf); ;}
break;
- case 103:
-#line 479 "engines/director/lingo/lingo-gr.y"
+ case 104:
+#line 489 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 104:
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 105:
+#line 494 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_printtop); ;}
break;
- case 107:
-#line 487 "engines/director/lingo/lingo-gr.y"
+ case 108:
+#line 497 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_exitRepeat); ;}
break;
- case 108:
-#line 488 "engines/director/lingo/lingo-gr.y"
+ case 109:
+#line 498 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_procret); ;}
break;
- case 112:
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 113:
+#line 502 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
delete (yyvsp[(1) - (1)].s); ;}
break;
- case 113:
-#line 495 "engines/director/lingo/lingo-gr.y"
+ case 114:
+#line 505 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 114:
-#line 498 "engines/director/lingo/lingo-gr.y"
+ case 115:
+#line 508 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 115:
-#line 501 "engines/director/lingo/lingo-gr.y"
+ case 116:
+#line 511 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_voidpush);
g_lingo->codeFunc((yyvsp[(1) - (1)].s), 1);
delete (yyvsp[(1) - (1)].s); ;}
break;
- case 116:
-#line 505 "engines/director/lingo/lingo-gr.y"
+ case 117:
+#line 515 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
break;
- case 117:
-#line 506 "engines/director/lingo/lingo-gr.y"
+ case 118:
+#line 516 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;}
break;
- case 118:
-#line 507 "engines/director/lingo/lingo-gr.y"
+ case 119:
+#line 517 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;}
break;
- case 119:
-#line 508 "engines/director/lingo/lingo-gr.y"
+ case 120:
+#line 518 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;}
break;
- case 120:
-#line 509 "engines/director/lingo/lingo-gr.y"
+ case 121:
+#line 519 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_open); ;}
break;
- case 121:
-#line 510 "engines/director/lingo/lingo-gr.y"
+ case 122:
+#line 520 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;}
break;
- case 122:
-#line 511 "engines/director/lingo/lingo-gr.y"
+ case 123:
+#line 521 "engines/director/lingo/lingo-gr.y"
{ Common::String s(*(yyvsp[(1) - (3)].s)); s += '-'; s += *(yyvsp[(2) - (3)].s); g_lingo->codeFunc(&s, (yyvsp[(3) - (3)].narg)); ;}
break;
- case 123:
-#line 514 "engines/director/lingo/lingo-gr.y"
+ case 124:
+#line 524 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
break;
- case 124:
-#line 515 "engines/director/lingo/lingo-gr.y"
+ case 125:
+#line 525 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
break;
- case 125:
-#line 518 "engines/director/lingo/lingo-gr.y"
+ case 126:
+#line 528 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
break;
- case 126:
-#line 519 "engines/director/lingo/lingo-gr.y"
+ case 127:
+#line 529 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
break;
- case 127:
-#line 522 "engines/director/lingo/lingo-gr.y"
+ case 128:
+#line 532 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
break;
- case 128:
-#line 523 "engines/director/lingo/lingo-gr.y"
+ case 129:
+#line 533 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
break;
- case 129:
-#line 534 "engines/director/lingo/lingo-gr.y"
+ case 130:
+#line 544 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_gotoloop); ;}
break;
- case 130:
-#line 535 "engines/director/lingo/lingo-gr.y"
+ case 131:
+#line 545 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_gotonext); ;}
break;
- case 131:
-#line 536 "engines/director/lingo/lingo-gr.y"
+ case 132:
+#line 546 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_gotoprevious); ;}
break;
- case 132:
-#line 537 "engines/director/lingo/lingo-gr.y"
+ case 133:
+#line 547 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeConst(1);
g_lingo->code1(g_lingo->c_goto); ;}
break;
- case 133:
-#line 540 "engines/director/lingo/lingo-gr.y"
+ case 134:
+#line 550 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeConst(3);
g_lingo->code1(g_lingo->c_goto); ;}
break;
- case 134:
-#line 543 "engines/director/lingo/lingo-gr.y"
+ case 135:
+#line 553 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeConst(2);
g_lingo->code1(g_lingo->c_goto); ;}
break;
- case 139:
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 140:
+#line 566 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_playdone); ;}
break;
- case 140:
-#line 557 "engines/director/lingo/lingo-gr.y"
+ case 141:
+#line 567 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeConst(1);
g_lingo->code1(g_lingo->c_play); ;}
break;
- case 141:
-#line 560 "engines/director/lingo/lingo-gr.y"
+ case 142:
+#line 570 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeConst(3);
g_lingo->code1(g_lingo->c_play); ;}
break;
- case 142:
-#line 563 "engines/director/lingo/lingo-gr.y"
+ case 143:
+#line 573 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeConst(2);
g_lingo->code1(g_lingo->c_play); ;}
break;
- case 143:
-#line 566 "engines/director/lingo/lingo-gr.y"
+ case 144:
+#line 576 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeSetImmediate(true); ;}
break;
- case 144:
-#line 566 "engines/director/lingo/lingo-gr.y"
+ case 145:
+#line 576 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeSetImmediate(false);
g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;}
break;
- case 145:
-#line 596 "engines/director/lingo/lingo-gr.y"
+ case 146:
+#line 606 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;}
break;
- case 146:
-#line 597 "engines/director/lingo/lingo-gr.y"
+ case 147:
+#line 607 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_procret);
g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg));
g_lingo->_indef = false; ;}
break;
- case 147:
-#line 601 "engines/director/lingo/lingo-gr.y"
+ case 148:
+#line 611 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFactory(*(yyvsp[(2) - (2)].s));
;}
break;
- case 148:
-#line 604 "engines/director/lingo/lingo-gr.y"
+ case 149:
+#line 614 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_indef = true; ;}
break;
- case 149:
-#line 605 "engines/director/lingo/lingo-gr.y"
+ case 150:
+#line 615 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_procret);
g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg) + 1, &g_lingo->_currentFactory);
g_lingo->_indef = false; ;}
break;
- case 150:
-#line 609 "engines/director/lingo/lingo-gr.y"
+ case 151:
+#line 619 "engines/director/lingo/lingo-gr.y"
{ // D3
g_lingo->code1(g_lingo->c_procret);
g_lingo->define(*(yyvsp[(1) - (7)].s), (yyvsp[(2) - (7)].code), (yyvsp[(3) - (7)].narg));
@@ -2993,8 +3002,8 @@ yyreduce:
;}
break;
- case 151:
-#line 617 "engines/director/lingo/lingo-gr.y"
+ case 152:
+#line 627 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
g_lingo->code1(g_lingo->c_procret);
g_lingo->define(*(yyvsp[(1) - (6)].s), (yyvsp[(2) - (6)].code), (yyvsp[(3) - (6)].narg));
@@ -3003,38 +3012,38 @@ yyreduce:
;}
break;
- case 152:
-#line 624 "engines/director/lingo/lingo-gr.y"
+ case 153:
+#line 634 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = (yyvsp[(2) - (2)].s); g_lingo->_indef = true; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; ;}
break;
- case 153:
-#line 626 "engines/director/lingo/lingo-gr.y"
+ case 154:
+#line 636 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; ;}
break;
- case 154:
-#line 627 "engines/director/lingo/lingo-gr.y"
+ case 155:
+#line 637 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}
break;
- case 155:
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 156:
+#line 638 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
- case 156:
-#line 629 "engines/director/lingo/lingo-gr.y"
+ case 157:
+#line 639 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}
break;
- case 157:
-#line 632 "engines/director/lingo/lingo-gr.y"
+ case 158:
+#line 642 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArgStore(); ;}
break;
- case 158:
-#line 636 "engines/director/lingo/lingo-gr.y"
+ case 159:
+#line 646 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_call);
g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str());
@@ -3043,34 +3052,34 @@ yyreduce:
g_lingo->code1(numpar); ;}
break;
- case 159:
-#line 644 "engines/director/lingo/lingo-gr.y"
+ case 160:
+#line 654 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; ;}
break;
- case 160:
-#line 645 "engines/director/lingo/lingo-gr.y"
+ case 161:
+#line 655 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; ;}
break;
- case 161:
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 162:
+#line 656 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
- case 162:
-#line 649 "engines/director/lingo/lingo-gr.y"
+ case 163:
+#line 659 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; ;}
break;
- case 163:
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 164:
+#line 660 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
/* Line 1267 of yacc.c. */
-#line 3074 "engines/director/lingo/lingo-gr.cpp"
+#line 3083 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3284,6 +3293,6 @@ yyreturn:
}
-#line 653 "engines/director/lingo/lingo-gr.y"
+#line 663 "engines/director/lingo/lingo-gr.y"
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 407b1ea914..08af780465 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -292,6 +292,16 @@ ifstmt: if cond tTHENNL stmtlist end ENDCLAUSE {
checkEnd($9, "if", true);
g_lingo->processIf(0, $8 - $1); }
+ | if cond tTHENNL stmtlist end tNLELSE begin stmtoneliner end {
+ inst then = 0, else1 = 0, end = 0;
+ WRITE_UINT32(&then, $4 - $1);
+ WRITE_UINT32(&else1, $7 - $1);
+ WRITE_UINT32(&end, $9 - $1);
+ (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */
+ (*g_lingo->_currentScript)[$1 + 2] = else1; /* elsepart */
+ (*g_lingo->_currentScript)[$1 + 3] = end; /* end, if cond fails */
+
+ g_lingo->processIf(0, $9 - $1); }
| if cond tTHEN begin stmtoneliner end {
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, $4 - $1);