aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo
diff options
context:
space:
mode:
authorEugene Sandulenko2019-12-08 15:35:23 +0100
committerEugene Sandulenko2019-12-08 15:35:23 +0100
commit21e9c5569a45ac03a47aa1072b55aef25e88382e (patch)
tree90502843c87683965ac69ec2492d615b7ef9dae8 /engines/director/lingo
parent31c26010e3d397824547f5db6a4def9ca929ceb2 (diff)
downloadscummvm-rg350-21e9c5569a45ac03a47aa1072b55aef25e88382e.tar.gz
scummvm-rg350-21e9c5569a45ac03a47aa1072b55aef25e88382e.tar.bz2
scummvm-rg350-21e9c5569a45ac03a47aa1072b55aef25e88382e.zip
DIRECTOR: LINGO: Fix multi-leg 'if' grammar
Diffstat (limited to 'engines/director/lingo')
-rw-r--r--engines/director/lingo/lingo-gr.cpp497
-rw-r--r--engines/director/lingo/lingo-gr.y4
2 files changed, 253 insertions, 248 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 386e50b40a..b6eec20650 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -544,7 +544,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 126
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1412
+#define YYLAST 1445
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 107
@@ -610,19 +610,19 @@ static const yytype_uint16 yyprhs[] =
0, 0, 3, 7, 9, 12, 13, 15, 17, 22,
27, 32, 37, 42, 47, 52, 57, 63, 69, 71,
73, 75, 77, 79, 86, 97, 109, 113, 120, 125,
- 135, 149, 150, 153, 160, 163, 167, 169, 171, 172,
- 173, 174, 177, 180, 184, 186, 188, 190, 192, 194,
- 196, 198, 200, 202, 205, 208, 213, 215, 218, 220,
- 224, 228, 232, 236, 240, 244, 248, 252, 256, 260,
- 264, 268, 272, 275, 279, 283, 287, 291, 294, 297,
- 301, 305, 310, 315, 320, 327, 332, 339, 344, 351,
- 356, 363, 365, 368, 371, 373, 375, 378, 380, 383,
- 386, 389, 391, 394, 397, 399, 402, 407, 414, 419,
- 422, 426, 428, 432, 434, 438, 440, 444, 447, 450,
- 453, 456, 460, 463, 466, 468, 472, 475, 478, 481,
- 485, 488, 489, 493, 494, 503, 506, 507, 516, 525,
- 532, 535, 536, 538, 542, 547, 548, 550, 554, 555,
- 558, 559, 561, 565, 567
+ 135, 148, 149, 152, 159, 162, 166, 168, 170, 171,
+ 172, 173, 176, 179, 183, 185, 187, 189, 191, 193,
+ 195, 197, 199, 201, 204, 207, 212, 214, 217, 219,
+ 223, 227, 231, 235, 239, 243, 247, 251, 255, 259,
+ 263, 267, 271, 274, 278, 282, 286, 290, 293, 296,
+ 300, 304, 309, 314, 319, 326, 331, 338, 343, 350,
+ 355, 362, 364, 367, 370, 372, 374, 377, 379, 382,
+ 385, 388, 390, 393, 396, 398, 401, 406, 413, 418,
+ 421, 425, 427, 431, 433, 437, 439, 443, 446, 449,
+ 452, 455, 459, 462, 465, 467, 471, 474, 477, 480,
+ 484, 487, 488, 492, 493, 502, 505, 506, 515, 524,
+ 531, 534, 535, 537, 541, 546, 547, 549, 553, 554,
+ 557, 558, 560, 564, 566
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -642,50 +642,49 @@ static const yytype_int16 yyrhs[] =
111, 121, -1, 124, 126, 101, 122, 121, 92, -1,
124, 126, 55, 126, -1, 118, 126, 121, 54, 122,
121, 114, 121, 90, -1, 118, 126, 121, 54, 122,
- 121, 114, 121, 37, 120, 122, 121, 90, -1, -1,
- 115, 114, -1, 119, 126, 121, 54, 122, 121, -1,
- 52, 58, -1, 52, 57, 30, -1, 43, -1, 38,
- -1, -1, -1, -1, 122, 101, -1, 122, 112, -1,
- 56, 30, 54, -1, 86, -1, 12, -1, 17, -1,
- 33, -1, 31, -1, 30, -1, 125, -1, 127, -1,
- 25, -1, 26, 126, -1, 27, 146, -1, 30, 102,
- 145, 103, -1, 15, -1, 16, 126, -1, 110, -1,
- 126, 96, 126, -1, 126, 97, 126, -1, 126, 98,
- 126, -1, 126, 99, 126, -1, 126, 73, 126, -1,
- 126, 94, 126, -1, 126, 93, 126, -1, 126, 68,
- 126, -1, 126, 69, 126, -1, 126, 66, 126, -1,
- 126, 67, 126, -1, 126, 70, 126, -1, 126, 71,
- 126, -1, 72, 126, -1, 126, 95, 126, -1, 126,
- 76, 126, -1, 126, 77, 126, -1, 126, 78, 126,
- -1, 96, 126, -1, 97, 126, -1, 102, 126, 103,
- -1, 104, 145, 105, -1, 83, 126, 84, 126, -1,
- 83, 126, 85, 126, -1, 79, 126, 49, 126, -1,
- 79, 126, 55, 126, 49, 126, -1, 80, 126, 49,
- 126, -1, 80, 126, 55, 126, 49, 126, -1, 81,
- 126, 49, 126, -1, 81, 126, 55, 126, 49, 126,
- -1, 82, 126, 49, 126, -1, 82, 126, 55, 126,
- 49, 126, -1, 89, -1, 29, 126, -1, 51, 126,
- -1, 132, -1, 135, -1, 39, 52, -1, 39, -1,
- 41, 129, -1, 87, 130, -1, 65, 131, -1, 19,
- -1, 21, 126, -1, 20, 126, -1, 20, -1, 22,
- 146, -1, 89, 102, 30, 103, -1, 89, 102, 30,
- 106, 145, 103, -1, 62, 126, 57, 126, -1, 62,
- 126, -1, 23, 30, 145, -1, 30, -1, 129, 106,
- 30, -1, 30, -1, 130, 106, 30, -1, 30, -1,
- 131, 106, 30, -1, 42, 45, -1, 42, 48, -1,
- 42, 50, -1, 42, 133, -1, 42, 133, 134, -1,
- 42, 134, -1, 40, 126, -1, 126, -1, 49, 47,
- 126, -1, 47, 126, -1, 63, 64, -1, 63, 133,
- -1, 63, 133, 134, -1, 63, 134, -1, -1, 35,
- 136, 145, -1, -1, 46, 30, 138, 120, 141, 101,
- 143, 122, -1, 60, 30, -1, -1, 61, 30, 139,
- 120, 141, 101, 143, 122, -1, 140, 120, 141, 101,
- 143, 122, 34, 142, -1, 140, 120, 141, 101, 143,
- 122, -1, 88, 30, -1, -1, 30, -1, 141, 106,
- 30, -1, 141, 101, 106, 30, -1, -1, 30, -1,
- 142, 106, 30, -1, -1, 30, 146, -1, -1, 126,
- -1, 145, 106, 126, -1, 126, -1, 146, 106, 126,
- -1
+ 121, 114, 37, 120, 122, 121, 90, -1, -1, 115,
+ 114, -1, 119, 126, 121, 54, 122, 121, -1, 52,
+ 58, -1, 52, 57, 30, -1, 43, -1, 38, -1,
+ -1, -1, -1, 122, 101, -1, 122, 112, -1, 56,
+ 30, 54, -1, 86, -1, 12, -1, 17, -1, 33,
+ -1, 31, -1, 30, -1, 125, -1, 127, -1, 25,
+ -1, 26, 126, -1, 27, 146, -1, 30, 102, 145,
+ 103, -1, 15, -1, 16, 126, -1, 110, -1, 126,
+ 96, 126, -1, 126, 97, 126, -1, 126, 98, 126,
+ -1, 126, 99, 126, -1, 126, 73, 126, -1, 126,
+ 94, 126, -1, 126, 93, 126, -1, 126, 68, 126,
+ -1, 126, 69, 126, -1, 126, 66, 126, -1, 126,
+ 67, 126, -1, 126, 70, 126, -1, 126, 71, 126,
+ -1, 72, 126, -1, 126, 95, 126, -1, 126, 76,
+ 126, -1, 126, 77, 126, -1, 126, 78, 126, -1,
+ 96, 126, -1, 97, 126, -1, 102, 126, 103, -1,
+ 104, 145, 105, -1, 83, 126, 84, 126, -1, 83,
+ 126, 85, 126, -1, 79, 126, 49, 126, -1, 79,
+ 126, 55, 126, 49, 126, -1, 80, 126, 49, 126,
+ -1, 80, 126, 55, 126, 49, 126, -1, 81, 126,
+ 49, 126, -1, 81, 126, 55, 126, 49, 126, -1,
+ 82, 126, 49, 126, -1, 82, 126, 55, 126, 49,
+ 126, -1, 89, -1, 29, 126, -1, 51, 126, -1,
+ 132, -1, 135, -1, 39, 52, -1, 39, -1, 41,
+ 129, -1, 87, 130, -1, 65, 131, -1, 19, -1,
+ 21, 126, -1, 20, 126, -1, 20, -1, 22, 146,
+ -1, 89, 102, 30, 103, -1, 89, 102, 30, 106,
+ 145, 103, -1, 62, 126, 57, 126, -1, 62, 126,
+ -1, 23, 30, 145, -1, 30, -1, 129, 106, 30,
+ -1, 30, -1, 130, 106, 30, -1, 30, -1, 131,
+ 106, 30, -1, 42, 45, -1, 42, 48, -1, 42,
+ 50, -1, 42, 133, -1, 42, 133, 134, -1, 42,
+ 134, -1, 40, 126, -1, 126, -1, 49, 47, 126,
+ -1, 47, 126, -1, 63, 64, -1, 63, 133, -1,
+ 63, 133, 134, -1, 63, 134, -1, -1, 35, 136,
+ 145, -1, -1, 46, 30, 138, 120, 141, 101, 143,
+ 122, -1, 60, 30, -1, -1, 61, 30, 139, 120,
+ 141, 101, 143, 122, -1, 140, 120, 141, 101, 143,
+ 122, 34, 142, -1, 140, 120, 141, 101, 143, 122,
+ -1, 88, 30, -1, -1, 30, -1, 141, 106, 30,
+ -1, 141, 101, 106, 30, -1, -1, 30, -1, 142,
+ 106, 30, -1, -1, 30, 146, -1, -1, 126, -1,
+ 145, 106, 126, -1, 126, -1, 146, 106, 126, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -787,7 +786,7 @@ static const yytype_uint8 yyr2[] =
0, 2, 3, 1, 2, 0, 1, 1, 4, 4,
4, 4, 4, 4, 4, 4, 5, 5, 1, 1,
1, 1, 1, 6, 10, 11, 3, 6, 4, 9,
- 13, 0, 2, 6, 2, 3, 1, 1, 0, 0,
+ 12, 0, 2, 6, 2, 3, 1, 1, 0, 0,
0, 2, 2, 3, 1, 1, 1, 1, 1, 1,
1, 1, 1, 2, 2, 4, 1, 2, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
@@ -837,9 +836,9 @@ static const yytype_uint8 yydefact[] =
0, 0, 0, 39, 0, 0, 40, 143, 148, 148,
84, 86, 88, 90, 107, 23, 0, 39, 31, 27,
144, 139, 40, 40, 39, 40, 37, 39, 31, 0,
- 145, 134, 137, 40, 39, 0, 32, 39, 146, 138,
- 39, 0, 38, 29, 0, 0, 0, 24, 40, 40,
- 147, 25, 39, 39, 0, 33, 30
+ 145, 134, 137, 40, 39, 38, 0, 32, 39, 146,
+ 138, 39, 0, 40, 29, 0, 0, 0, 24, 39,
+ 40, 147, 25, 0, 39, 30, 33
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -848,56 +847,56 @@ static const yytype_int16 yydefgoto[] =
-1, 47, 48, 49, 50, 269, 52, 297, 298, 53,
54, 55, 299, 150, 195, 252, 56, 57, 58, 59,
60, 61, 85, 118, 110, 62, 93, 94, 63, 82,
- 64, 163, 175, 65, 219, 309, 276, 66, 156, 75
+ 64, 163, 175, 65, 219, 310, 276, 66, 156, 75
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -211
+#define YYPACT_NINF -163
static const yytype_int16 yypact[] =
{
- 271, -79, -211, -211, 819, -211, -211, 819, 819, 819,
- -14, -211, 819, 819, 819, 880, -211, -211, -211, 6,
- 18, 718, -211, 47, 819, 69, 41, 51, 55, 57,
- 819, 779, 59, 819, 819, 819, 819, 819, 819, -211,
- 75, 84, 14, 819, 819, 819, 819, 2, -211, -211,
- -211, -211, -211, 819, 56, 819, 635, 819, -211, 1313,
- -211, -211, -211, -211, -211, -211, -211, -211, 26, 819,
- -211, 1313, 1313, 1313, 1313, 42, 819, 1313, 42, 1313,
- 819, 42, 819, -211, -211, 45, 819, -211, 819, -211,
- 113, -211, 1313, 5, -211, -211, 920, 133, -211, -40,
- 819, -5, 112, -211, -211, 1228, -211, 5, -211, -211,
- 64, 97, 24, 137, 954, 988, 1279, -211, 79, -211,
- 157, 97, 97, 1241, 1313, 48, -211, 362, 1313, 819,
- 1313, -211, 1158, 819, 819, 819, 819, 819, 819, 819,
+ 271, -57, -163, -163, 819, -163, -163, 819, 819, 819,
+ 22, -163, 819, 819, 819, 880, -163, -163, -163, 4,
+ 40, 718, -163, 45, 819, -42, -2, 55, 57, 59,
+ 819, 779, 84, 819, 819, 819, 819, 819, 819, -163,
+ 86, 94, 44, 819, 819, 819, 819, 2, -163, -163,
+ -163, -163, -163, 819, 85, 819, 635, 819, -163, 1346,
+ -163, -163, -163, -163, -163, -163, -163, -163, 50, 819,
+ -163, 1346, 1346, 1346, 1346, 48, 819, 1346, 48, 1346,
+ 819, 48, 819, -163, -163, 49, 819, -163, 819, -163,
+ 109, -163, 1346, 32, -163, -163, 24, 128, -163, -5,
+ 819, -1, 105, -163, -163, 1261, -163, 32, -163, -163,
+ 60, 87, 919, 953, 987, 1021, 1312, -163, 64, -163,
+ 143, 87, 87, 1274, 1346, 21, -163, 362, 1346, 819,
+ 1346, -163, 1191, 819, 819, 819, 819, 819, 819, 819,
819, 819, 819, 819, 819, 819, 819, 819, 819, 819,
- 164, 819, 920, 819, 90, 1241, -82, 90, 167, 1313,
- 1313, 819, -211, -211, 126, 819, 819, -211, 819, 819,
- 130, 1194, 819, 819, -211, -211, 819, -211, 169, 819,
- 819, 819, 819, 819, 819, 819, 819, 819, 819, 170,
- 7, -211, -211, 819, -211, -211, 1313, 166, -211, 819,
- -211, -29, -29, -29, -29, 851, 851, 97, 1313, -29,
- -29, -29, -29, 10, -38, -38, 97, 97, -211, -83,
- 1313, -211, -211, 1313, 164, -211, -211, 1313, 1313, 1313,
- -29, 819, 819, 1313, -29, 164, 1313, -211, 1313, 1022,
- 1313, 1056, 1313, 1090, 1313, 1124, 1313, 1313, -211, -211,
- 819, 1313, 544, 0, -211, 1313, 544, 115, 188, -26,
- -29, 1313, -2, 819, 819, 819, 819, 9, -211, -211,
- 132, 171, 819, 544, 147, 194, -211, -211, 115, 115,
- 1313, 1313, 1313, 1313, -211, -211, 819, 1313, 191, -211,
- -211, 453, -211, -211, 1313, -211, -211, -211, 191, 819,
- 210, 544, 544, -211, 544, -31, -211, 1313, -211, 135,
- 544, 151, -211, -211, 189, 214, 154, -211, -211, -211,
- -211, -211, 544, 544, 158, -211, -211
+ 144, 819, 24, 819, 79, 1274, -26, 79, 156, 1346,
+ 1346, 819, -163, -163, 75, 819, 819, -163, 819, 819,
+ 119, 1227, 819, 819, -163, -163, 819, -163, 160, 819,
+ 819, 819, 819, 819, 819, 819, 819, 819, 819, 161,
+ 7, -163, -163, 819, -163, -163, 1346, 138, -163, 819,
+ -163, -38, -38, -38, -38, 851, 851, 87, 1346, -38,
+ -38, -38, -38, 10, -51, -51, 87, 87, -163, -82,
+ 1346, -163, -163, 1346, 144, -163, -163, 1346, 1346, 1346,
+ -38, 819, 819, 1346, -38, 144, 1346, -163, 1346, 1055,
+ 1346, 1089, 1346, 1123, 1346, 1157, 1346, 1346, -163, -163,
+ 819, 1346, 544, 0, -163, 1346, 544, 88, 163, -37,
+ -38, 1346, -35, 819, 819, 819, 819, 9, -163, -163,
+ 106, 141, 819, 544, 107, 168, -163, -163, 88, 88,
+ 1346, 1346, 1346, 1346, -163, -163, 819, 1346, 162, -163,
+ -163, 453, -163, -163, 1346, -163, -163, 164, 162, 819,
+ 173, 544, 544, -163, 544, -163, 114, -163, 1346, -163,
+ 99, 544, 115, -163, -163, 153, 178, 122, -163, 544,
+ -163, -163, -163, 120, 544, -163, -163
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -211, -211, 120, -211, 193, 19, -211, -48, -211, -211,
- -211, -211, -211, -162, -85, -102, -211, -211, 152, -4,
- 87, -211, -211, -211, -211, -211, 222, -19, -211, -211,
- -211, -211, -211, -211, -210, -211, -120, -211, -39, 49
+ -163, -163, 89, -163, 159, 1, -163, -81, -163, -163,
+ -163, -163, -163, -157, -85, -40, -163, -163, 118, -4,
+ 56, -163, -163, -163, -163, -163, 190, -19, -163, -163,
+ -163, -163, -163, -163, -162, -163, -128, -163, -39, 8
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -907,36 +906,36 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -6
static const yytype_int16 yytable[] =
{
- 71, 224, 126, 72, 73, 74, 312, 125, 77, 74,
- 79, 74, 108, 235, 259, 168, 76, 92, 257, 51,
- 96, 221, 67, 258, 193, 262, 105, 92, 169, 111,
+ 71, 51, 126, 72, 73, 74, 224, 125, 77, 74,
+ 79, 74, 108, 99, 100, 97, 98, 92, 235, 257,
+ 96, 78, 139, 81, 258, 140, 105, 92, 101, 111,
112, 113, 114, 115, 116, 139, 271, 154, 140, 121,
- 122, 123, 124, 157, 139, 197, 198, 140, 84, 128,
- 172, 130, 88, 132, 90, 272, 99, 100, 83, 313,
- 148, 149, 78, 173, 81, 152, 145, 146, 147, 148,
- 149, 101, 124, 179, 162, 278, 155, 95, 124, 180,
- 258, 102, 159, 139, 160, 103, 140, 104, 177, 109,
- 133, 134, 135, 136, 137, 138, 171, 139, 256, 279,
- 140, 141, 142, 127, 258, 117, 146, 147, 148, 149,
- 249, 253, 284, 250, 119, 193, 120, 143, 144, 145,
- 146, 147, 148, 149, 129, 196, 97, 98, 151, 201,
+ 122, 123, 124, 157, 67, 197, 198, 148, 149, 128,
+ 168, 130, 76, 132, 172, 272, 83, 145, 146, 147,
+ 148, 149, 259, 169, 278, 152, 279, 173, 164, 258,
+ 84, 258, 124, 262, 162, 95, 155, 221, 124, 88,
+ 193, 90, 159, 139, 160, 102, 140, 103, 177, 104,
+ 133, 134, 135, 136, 137, 138, 171, 139, 165, 166,
+ 140, 141, 142, 127, 14, 225, 146, 147, 148, 149,
+ 249, 253, 284, 250, 109, 193, 117, 143, 144, 145,
+ 146, 147, 148, 149, 119, 196, 192, 193, 51, 201,
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 51, 124, 153, 220,
- 318, 158, 273, 192, 193, 14, 225, 223, 292, 293,
- 161, 227, 228, 167, 229, 230, 174, 270, 233, 234,
- 178, 274, 236, 140, 291, 238, 239, 240, 241, 242,
- 243, 244, 245, 246, 247, 189, 181, 190, 288, 251,
- 301, 302, 182, 304, 218, 255, 193, 222, 231, 237,
- 248, 310, 295, 133, 134, 135, 136, 137, 138, 303,
- 139, 267, 305, 140, 141, 142, 322, 323, 277, 311,
- 254, 275, 314, 285, 290, 316, 286, 260, 261, 296,
- 143, 144, 145, 146, 147, 148, 149, 324, 325, 289,
- 308, 315, 317, 319, 320, 321, 124, 194, 326, 131,
- 306, 226, 170, 107, 0, 0, 0, 0, 0, 280,
- 281, 282, 283, 0, 0, 0, 0, 0, 287, 0,
- 0, -5, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 294, 2, 0, 0, 3, 4, 5, 0,
- 6, 7, 8, 9, 10, 307, 11, 12, 13, 0,
+ 212, 213, 214, 215, 216, 217, 120, 124, 313, 220,
+ 292, 293, 151, 129, 153, 158, 161, 223, 167, 174,
+ 256, 227, 228, 140, 229, 230, 178, 270, 233, 234,
+ 189, 274, 236, 190, 218, 238, 239, 240, 241, 242,
+ 243, 244, 245, 246, 247, 193, 222, 231, 288, 251,
+ 237, 248, 254, 277, 275, 255, 286, 285, 290, 289,
+ 296, 305, 295, 309, 314, 316, 318, 320, 321, 303,
+ 325, 267, 306, 322, 273, 131, 194, 307, 170, 312,
+ 226, 107, 0, 315, 0, 0, 317, 260, 261, 0,
+ 0, 0, 0, 0, 323, 0, 291, 0, 0, 326,
+ 0, 0, 0, 0, 0, 0, 124, 0, 0, 0,
+ 0, 0, 301, 302, 0, 304, 0, 0, 0, 280,
+ 281, 282, 283, 311, 0, 0, 0, 0, 287, 0,
+ 0, -5, 1, 319, 0, 0, 0, 0, 0, 0,
+ 324, 0, 294, 2, 0, 0, 3, 4, 5, 0,
+ 6, 7, 8, 9, 10, 308, 11, 12, 13, 0,
14, 15, 16, 0, 17, 0, 18, 0, 0, 0,
19, 0, 20, 21, 22, 0, 0, 23, 0, 0,
0, 0, 24, 25, 26, 0, 0, 27, 0, 0,
@@ -1003,85 +1002,88 @@ static const yytype_int16 yytable[] =
0, 69, 0, 26, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 143, 144, 145, 146, 147, 148,
149, 0, 33, 0, 0, 0, 0, 0, 0, 34,
- 35, 36, 37, 38, 164, 0, 0, 0, 0, 70,
- 0, 0, 0, 0, 0, 0, 43, 44, 0, 0,
- 0, 0, 80, 0, 46, 0, 133, 134, 135, 136,
- 137, 138, 0, 139, 165, 166, 140, 141, 142, 0,
- 0, 0, 0, 183, 0, 0, 0, 0, 0, 184,
- 0, 0, 0, 143, 144, 145, 146, 147, 148, 149,
- 133, 134, 135, 136, 137, 138, 0, 139, 0, 0,
- 140, 141, 142, 0, 0, 0, 0, 185, 0, 0,
- 0, 0, 0, 186, 0, 0, 0, 143, 144, 145,
- 146, 147, 148, 149, 133, 134, 135, 136, 137, 138,
- 0, 139, 0, 0, 140, 141, 142, 0, 0, 0,
- 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 143, 144, 145, 146, 147, 148, 149, 133, 134,
- 135, 136, 137, 138, 0, 139, 0, 0, 140, 141,
- 142, 0, 0, 0, 0, 264, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 143, 144, 145, 146, 147,
- 148, 149, 133, 134, 135, 136, 137, 138, 0, 139,
- 0, 0, 140, 141, 142, 0, 0, 0, 0, 265,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
- 144, 145, 146, 147, 148, 149, 133, 134, 135, 136,
- 137, 138, 0, 139, 0, 0, 140, 141, 142, 0,
- 0, 0, 0, 266, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 143, 144, 145, 146, 147, 148, 149,
- 133, 134, 135, 136, 137, 138, 0, 139, 0, 0,
- 140, 141, 142, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 199, 0, 0, 0, 143, 144, 145,
- 146, 147, 148, 149, 133, 134, 135, 136, 137, 138,
- 0, 139, 0, 0, 140, 141, 142, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 232,
- 0, 143, 144, 145, 146, 147, 148, 149, 0, 200,
- 133, 134, 135, 136, 137, 138, 0, 139, 0, 0,
- 140, 141, 142, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 176, 0, 143, 144, 145,
- 146, 147, 148, 149, 133, 134, 135, 136, 137, 138,
- 0, 139, 0, 0, 140, 141, 142, 133, 134, 135,
+ 35, 36, 37, 38, 0, 0, 0, 0, 179, 70,
+ 0, 0, 0, 0, 180, 0, 43, 44, 0, 0,
+ 0, 0, 80, 0, 46, 133, 134, 135, 136, 137,
+ 138, 0, 139, 0, 0, 140, 141, 142, 0, 0,
+ 0, 0, 181, 0, 0, 0, 0, 0, 182, 0,
+ 0, 0, 143, 144, 145, 146, 147, 148, 149, 133,
+ 134, 135, 136, 137, 138, 0, 139, 0, 0, 140,
+ 141, 142, 0, 0, 0, 0, 183, 0, 0, 0,
+ 0, 0, 184, 0, 0, 0, 143, 144, 145, 146,
+ 147, 148, 149, 133, 134, 135, 136, 137, 138, 0,
+ 139, 0, 0, 140, 141, 142, 0, 0, 0, 0,
+ 185, 0, 0, 0, 0, 0, 186, 0, 0, 0,
+ 143, 144, 145, 146, 147, 148, 149, 133, 134, 135,
136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
- 0, 143, 144, 145, 146, 147, 148, 149, 0, 0,
+ 0, 0, 0, 0, 263, 0, 0, 0, 0, 0,
0, 0, 0, 0, 143, 144, 145, 146, 147, 148,
- 149, 0, 0, 0, 191, 133, 134, 135, 136, 137,
+ 149, 133, 134, 135, 136, 137, 138, 0, 139, 0,
+ 0, 140, 141, 142, 0, 0, 0, 0, 264, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 143, 144,
+ 145, 146, 147, 148, 149, 133, 134, 135, 136, 137,
138, 0, 139, 0, 0, 140, 141, 142, 0, 0,
- 0, 0, 0, 187, 188, 0, 0, 0, 0, 0,
+ 0, 0, 265, 0, 0, 0, 0, 0, 0, 0,
0, 0, 143, 144, 145, 146, 147, 148, 149, 133,
134, 135, 136, 137, 138, 0, 139, 0, 0, 140,
- 141, 142, 0, 0, 0, 0, 0, 0, 0, 0,
+ 141, 142, 0, 0, 0, 0, 266, 0, 0, 0,
0, 0, 0, 0, 0, 0, 143, 144, 145, 146,
- 147, 148, 149
+ 147, 148, 149, 133, 134, 135, 136, 137, 138, 0,
+ 139, 0, 0, 140, 141, 142, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 199, 0, 0, 0,
+ 143, 144, 145, 146, 147, 148, 149, 133, 134, 135,
+ 136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 232, 0, 143, 144, 145, 146, 147, 148,
+ 149, 0, 200, 133, 134, 135, 136, 137, 138, 0,
+ 139, 0, 0, 140, 141, 142, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 176, 0,
+ 143, 144, 145, 146, 147, 148, 149, 133, 134, 135,
+ 136, 137, 138, 0, 139, 0, 0, 140, 141, 142,
+ 133, 134, 135, 136, 137, 138, 0, 139, 0, 0,
+ 140, 141, 142, 0, 143, 144, 145, 146, 147, 148,
+ 149, 0, 0, 0, 0, 0, 0, 143, 144, 145,
+ 146, 147, 148, 149, 0, 0, 0, 191, 133, 134,
+ 135, 136, 137, 138, 0, 139, 0, 0, 140, 141,
+ 142, 0, 0, 0, 0, 0, 187, 188, 0, 0,
+ 0, 0, 0, 0, 0, 143, 144, 145, 146, 147,
+ 148, 149, 133, 134, 135, 136, 137, 138, 0, 139,
+ 0, 0, 140, 141, 142, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
+ 144, 145, 146, 147, 148, 149
};
static const yytype_int16 yycheck[] =
{
- 4, 163, 0, 7, 8, 9, 37, 46, 12, 13,
- 14, 15, 31, 175, 224, 55, 30, 21, 101, 0,
- 24, 103, 101, 106, 106, 235, 30, 31, 68, 33,
+ 4, 0, 0, 7, 8, 9, 163, 46, 12, 13,
+ 14, 15, 31, 15, 16, 57, 58, 21, 175, 101,
+ 24, 13, 73, 15, 106, 76, 30, 31, 30, 33,
34, 35, 36, 37, 38, 73, 36, 76, 76, 43,
- 44, 45, 46, 82, 73, 130, 131, 76, 30, 53,
- 55, 55, 47, 57, 49, 55, 15, 16, 52, 90,
- 98, 99, 13, 68, 15, 69, 95, 96, 97, 98,
- 99, 30, 76, 49, 93, 101, 80, 30, 82, 55,
- 106, 30, 86, 73, 88, 30, 76, 30, 107, 30,
- 66, 67, 68, 69, 70, 71, 100, 73, 200, 101,
- 76, 77, 78, 101, 106, 30, 96, 97, 98, 99,
- 103, 196, 103, 106, 30, 106, 102, 93, 94, 95,
- 96, 97, 98, 99, 68, 129, 57, 58, 102, 133,
+ 44, 45, 46, 82, 101, 130, 131, 98, 99, 53,
+ 55, 55, 30, 57, 55, 55, 52, 95, 96, 97,
+ 98, 99, 224, 68, 101, 69, 101, 68, 44, 106,
+ 30, 106, 76, 235, 93, 30, 80, 103, 82, 47,
+ 106, 49, 86, 73, 88, 30, 76, 30, 107, 30,
+ 66, 67, 68, 69, 70, 71, 100, 73, 74, 75,
+ 76, 77, 78, 101, 29, 30, 96, 97, 98, 99,
+ 103, 196, 103, 106, 30, 106, 30, 93, 94, 95,
+ 96, 97, 98, 99, 30, 129, 105, 106, 127, 133,
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 127, 151, 106, 153,
- 312, 106, 254, 105, 106, 29, 30, 161, 278, 279,
- 47, 165, 166, 30, 168, 169, 54, 252, 172, 173,
- 106, 256, 176, 76, 276, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 106, 49, 30, 273, 193,
- 292, 293, 55, 295, 30, 199, 106, 30, 68, 30,
- 30, 303, 287, 66, 67, 68, 69, 70, 71, 294,
- 73, 250, 297, 76, 77, 78, 318, 319, 30, 304,
- 54, 106, 307, 91, 30, 310, 55, 231, 232, 38,
- 93, 94, 95, 96, 97, 98, 99, 322, 323, 92,
- 30, 106, 91, 54, 30, 91, 250, 127, 90, 56,
- 298, 164, 100, 31, -1, -1, -1, -1, -1, 263,
- 264, 265, 266, -1, -1, -1, -1, -1, 272, -1,
- -1, 0, 1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 286, 12, -1, -1, 15, 16, 17, -1,
+ 144, 145, 146, 147, 148, 149, 102, 151, 305, 153,
+ 278, 279, 102, 68, 106, 106, 47, 161, 30, 54,
+ 200, 165, 166, 76, 168, 169, 106, 252, 172, 173,
+ 106, 256, 176, 30, 30, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 106, 30, 68, 273, 193,
+ 30, 30, 54, 30, 106, 199, 55, 91, 30, 92,
+ 38, 37, 287, 30, 90, 106, 91, 54, 30, 294,
+ 90, 250, 297, 91, 254, 56, 127, 298, 100, 304,
+ 164, 31, -1, 308, -1, -1, 311, 231, 232, -1,
+ -1, -1, -1, -1, 319, -1, 276, -1, -1, 324,
+ -1, -1, -1, -1, -1, -1, 250, -1, -1, -1,
+ -1, -1, 292, 293, -1, 295, -1, -1, -1, 263,
+ 264, 265, 266, 303, -1, -1, -1, -1, 272, -1,
+ -1, 0, 1, 313, -1, -1, -1, -1, -1, -1,
+ 320, -1, 286, 12, -1, -1, 15, 16, 17, -1,
19, 20, 21, 22, 23, 299, 25, 26, 27, -1,
29, 30, 31, -1, 33, -1, 35, -1, -1, -1,
39, -1, 41, 42, 43, -1, -1, 46, -1, -1,
@@ -1149,52 +1151,55 @@ static const yytype_int16 yycheck[] =
-1, 51, -1, 53, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
99, -1, 72, -1, -1, -1, -1, -1, -1, 79,
- 80, 81, 82, 83, 44, -1, -1, -1, -1, 89,
- -1, -1, -1, -1, -1, -1, 96, 97, -1, -1,
- -1, -1, 102, -1, 104, -1, 66, 67, 68, 69,
- 70, 71, -1, 73, 74, 75, 76, 77, 78, -1,
- -1, -1, -1, 49, -1, -1, -1, -1, -1, 55,
- -1, -1, -1, 93, 94, 95, 96, 97, 98, 99,
- 66, 67, 68, 69, 70, 71, -1, 73, -1, -1,
- 76, 77, 78, -1, -1, -1, -1, 49, -1, -1,
- -1, -1, -1, 55, -1, -1, -1, 93, 94, 95,
- 96, 97, 98, 99, 66, 67, 68, 69, 70, 71,
- -1, 73, -1, -1, 76, 77, 78, -1, -1, -1,
- -1, 49, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 93, 94, 95, 96, 97, 98, 99, 66, 67,
- 68, 69, 70, 71, -1, 73, -1, -1, 76, 77,
- 78, -1, -1, -1, -1, 49, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
- 98, 99, 66, 67, 68, 69, 70, 71, -1, 73,
- -1, -1, 76, 77, 78, -1, -1, -1, -1, 49,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- 94, 95, 96, 97, 98, 99, 66, 67, 68, 69,
- 70, 71, -1, 73, -1, -1, 76, 77, 78, -1,
- -1, -1, -1, 49, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, 94, 95, 96, 97, 98, 99,
- 66, 67, 68, 69, 70, 71, -1, 73, -1, -1,
- 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 55, -1, -1, -1, 93, 94, 95,
- 96, 97, 98, 99, 66, 67, 68, 69, 70, 71,
- -1, 73, -1, -1, 76, 77, 78, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 55,
- -1, 93, 94, 95, 96, 97, 98, 99, -1, 101,
- 66, 67, 68, 69, 70, 71, -1, 73, -1, -1,
- 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 57, -1, 93, 94, 95,
- 96, 97, 98, 99, 66, 67, 68, 69, 70, 71,
- -1, 73, -1, -1, 76, 77, 78, 66, 67, 68,
+ 80, 81, 82, 83, -1, -1, -1, -1, 49, 89,
+ -1, -1, -1, -1, 55, -1, 96, 97, -1, -1,
+ -1, -1, 102, -1, 104, 66, 67, 68, 69, 70,
+ 71, -1, 73, -1, -1, 76, 77, 78, -1, -1,
+ -1, -1, 49, -1, -1, -1, -1, -1, 55, -1,
+ -1, -1, 93, 94, 95, 96, 97, 98, 99, 66,
+ 67, 68, 69, 70, 71, -1, 73, -1, -1, 76,
+ 77, 78, -1, -1, -1, -1, 49, -1, -1, -1,
+ -1, -1, 55, -1, -1, -1, 93, 94, 95, 96,
+ 97, 98, 99, 66, 67, 68, 69, 70, 71, -1,
+ 73, -1, -1, 76, 77, 78, -1, -1, -1, -1,
+ 49, -1, -1, -1, -1, -1, 55, -1, -1, -1,
+ 93, 94, 95, 96, 97, 98, 99, 66, 67, 68,
69, 70, 71, -1, 73, -1, -1, 76, 77, 78,
- -1, 93, 94, 95, 96, 97, 98, 99, -1, -1,
+ -1, -1, -1, -1, 49, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 93, 94, 95, 96, 97, 98,
- 99, -1, -1, -1, 103, 66, 67, 68, 69, 70,
+ 99, 66, 67, 68, 69, 70, 71, -1, 73, -1,
+ -1, 76, 77, 78, -1, -1, -1, -1, 49, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
+ 95, 96, 97, 98, 99, 66, 67, 68, 69, 70,
71, -1, 73, -1, -1, 76, 77, 78, -1, -1,
- -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
+ -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 93, 94, 95, 96, 97, 98, 99, 66,
67, 68, 69, 70, 71, -1, 73, -1, -1, 76,
- 77, 78, -1, -1, -1, -1, -1, -1, -1, -1,
+ 77, 78, -1, -1, -1, -1, 49, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 93, 94, 95, 96,
- 97, 98, 99
+ 97, 98, 99, 66, 67, 68, 69, 70, 71, -1,
+ 73, -1, -1, 76, 77, 78, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
+ 93, 94, 95, 96, 97, 98, 99, 66, 67, 68,
+ 69, 70, 71, -1, 73, -1, -1, 76, 77, 78,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 55, -1, 93, 94, 95, 96, 97, 98,
+ 99, -1, 101, 66, 67, 68, 69, 70, 71, -1,
+ 73, -1, -1, 76, 77, 78, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 57, -1,
+ 93, 94, 95, 96, 97, 98, 99, 66, 67, 68,
+ 69, 70, 71, -1, 73, -1, -1, 76, 77, 78,
+ 66, 67, 68, 69, 70, 71, -1, 73, -1, -1,
+ 76, 77, 78, -1, 93, 94, 95, 96, 97, 98,
+ 99, -1, -1, -1, -1, -1, -1, 93, 94, 95,
+ 96, 97, 98, 99, -1, -1, -1, 103, 66, 67,
+ 68, 69, 70, 71, -1, 73, -1, -1, 76, 77,
+ 78, -1, -1, -1, -1, -1, 84, 85, -1, -1,
+ -1, -1, -1, -1, -1, 93, 94, 95, 96, 97,
+ 98, 99, 66, 67, 68, 69, 70, 71, -1, 73,
+ -1, -1, 76, 77, 78, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
+ 94, 95, 96, 97, 98, 99
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1231,9 +1236,9 @@ static const yytype_uint8 yystos[] =
121, 36, 55, 122, 121, 106, 143, 30, 101, 101,
126, 126, 126, 126, 103, 91, 55, 126, 121, 92,
30, 122, 143, 143, 126, 121, 38, 114, 115, 119,
- 34, 122, 122, 121, 122, 121, 114, 126, 30, 142,
- 122, 121, 37, 90, 121, 106, 121, 91, 120, 54,
- 30, 91, 122, 122, 121, 121, 90
+ 34, 122, 122, 121, 122, 37, 121, 114, 126, 30,
+ 142, 122, 121, 120, 90, 121, 106, 121, 91, 122,
+ 54, 30, 91, 121, 122, 90, 121
};
#define yyerrok (yyerrstatus = 0)
@@ -2223,14 +2228,14 @@ yyreduce:
#line 254 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
- WRITE_UINT32(&then, (yyvsp[(3) - (13)].code) - (yyvsp[(1) - (13)].code));
- WRITE_UINT32(&else1, (yyvsp[(6) - (13)].code) - (yyvsp[(1) - (13)].code));
- WRITE_UINT32(&end, (yyvsp[(11) - (13)].code) - (yyvsp[(1) - (13)].code));
- (*g_lingo->_currentScript)[(yyvsp[(1) - (13)].code) + 1] = then; /* thenpart */
- (*g_lingo->_currentScript)[(yyvsp[(1) - (13)].code) + 2] = else1; /* elsepart */
- (*g_lingo->_currentScript)[(yyvsp[(1) - (13)].code) + 3] = end; /* end, if cond fails */
+ WRITE_UINT32(&then, (yyvsp[(3) - (12)].code) - (yyvsp[(1) - (12)].code));
+ WRITE_UINT32(&else1, (yyvsp[(6) - (12)].code) - (yyvsp[(1) - (12)].code));
+ WRITE_UINT32(&end, (yyvsp[(11) - (12)].code) - (yyvsp[(1) - (12)].code));
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (12)].code) + 1] = then; /* thenpart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (12)].code) + 2] = else1; /* elsepart */
+ (*g_lingo->_currentScript)[(yyvsp[(1) - (12)].code) + 3] = end; /* end, if cond fails */
- g_lingo->processIf((yyvsp[(1) - (13)].code), (yyvsp[(11) - (13)].code) - (yyvsp[(1) - (13)].code), (yyvsp[(10) - (13)].code) - (yyvsp[(1) - (13)].code)); ;}
+ g_lingo->processIf((yyvsp[(1) - (12)].code), (yyvsp[(11) - (12)].code) - (yyvsp[(1) - (12)].code), (yyvsp[(9) - (12)].code) - (yyvsp[(1) - (12)].code)); ;}
break;
case 33:
@@ -2870,7 +2875,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 2874 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 672a970f79..5f1e9a8e29 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -251,7 +251,7 @@ ifstmt: if expr end tTHEN stmtlist end elseifstmtlist end tENDIF {
(*g_lingo->_currentScript)[$1 + 3] = end; /* end, if cond fails */
g_lingo->processIf($1, $8 - $1, 0); }
- | if expr end tTHEN stmtlist end elseifstmtlist end tELSE begin stmtlist end tENDIF {
+ | if expr end tTHEN stmtlist end elseifstmtlist tELSE begin stmtlist end tENDIF {
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, $3 - $1);
WRITE_UINT32(&else1, $6 - $1);
@@ -260,7 +260,7 @@ ifstmt: if expr end tTHEN stmtlist end elseifstmtlist end tENDIF {
(*g_lingo->_currentScript)[$1 + 2] = else1; /* elsepart */
(*g_lingo->_currentScript)[$1 + 3] = end; /* end, if cond fails */
- g_lingo->processIf($1, $11 - $1, $10 - $1); }
+ g_lingo->processIf($1, $11 - $1, $9 - $1); }
;
elseifstmtlist: /* nothing */