aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/director/lingo/lingo-gr.cpp1314
-rw-r--r--engines/director/lingo/lingo-gr.y29
2 files changed, 691 insertions, 652 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 00130a440d..d20c5a22c0 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 127
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1826
+#define YYLAST 1813
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 106
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 43
+#define YYNNTS 46
/* YYNRULES -- Number of rules. */
-#define YYNRULES 165
+#define YYNRULES 168
/* YYNRULES -- Number of states. */
-#define YYNSTATES 361
+#define YYNSTATES 364
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -603,114 +603,115 @@ static const yytype_uint8 yytranslate[] =
YYRHS. */
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, 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, 273, 276, 279, 284,
- 289, 291, 293, 296, 298, 302, 306, 310, 314, 318,
- 322, 326, 330, 334, 338, 342, 346, 349, 353, 357,
- 361, 365, 368, 371, 375, 379, 384, 389, 394, 401,
- 406, 413, 418, 425, 430, 437, 440, 443, 445, 447,
- 450, 452, 455, 458, 461, 463, 466, 469, 471, 474,
- 479, 484, 491, 496, 499, 503, 505, 509, 511, 515,
- 517, 521, 524, 527, 530, 533, 537, 540, 543, 545,
- 549, 552, 555, 558, 562, 565, 566, 570, 571, 580,
- 583, 584, 593, 601, 608, 611, 612, 614, 618, 623,
- 624, 627, 628, 630, 634, 636
+ 0, 0, 3, 7, 9, 12, 14, 16, 18, 20,
+ 21, 23, 25, 27, 32, 37, 42, 47, 52, 57,
+ 63, 68, 73, 79, 81, 83, 85, 87, 95, 106,
+ 118, 122, 129, 134, 141, 151, 161, 171, 178, 189,
+ 200, 201, 205, 208, 210, 213, 215, 222, 224, 231,
+ 233, 237, 241, 244, 248, 250, 252, 253, 254, 255,
+ 258, 261, 265, 267, 269, 271, 273, 275, 277, 279,
+ 282, 285, 290, 295, 297, 299, 302, 304, 308, 312,
+ 316, 320, 324, 328, 332, 336, 340, 344, 348, 352,
+ 355, 359, 363, 367, 371, 374, 377, 381, 385, 390,
+ 395, 400, 407, 412, 419, 424, 431, 436, 443, 446,
+ 449, 451, 453, 456, 458, 461, 464, 467, 469, 472,
+ 475, 477, 480, 485, 490, 497, 502, 505, 509, 511,
+ 515, 517, 521, 523, 527, 530, 533, 536, 539, 543,
+ 546, 549, 551, 555, 558, 561, 564, 568, 571, 572,
+ 576, 577, 586, 589, 590, 599, 607, 614, 617, 618,
+ 620, 624, 629, 630, 633, 634, 636, 640, 642
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 107, 0, -1, 107, 108, 109, -1, 109, -1, 1,
- 108, -1, 98, -1, -1, 140, -1, 146, -1, 112,
- -1, 49, 129, 42, 28, -1, 49, 129, 42, 130,
- -1, 49, 129, 75, 129, -1, 49, 129, 76, 129,
- -1, 51, 28, 91, 129, -1, 51, 13, 91, 129,
- -1, 51, 14, 129, 91, 129, -1, 51, 28, 54,
- 129, -1, 51, 13, 54, 129, -1, 51, 14, 129,
- 54, 129, -1, 129, -1, 131, -1, 111, -1, 113,
- -1, 120, 99, 119, 100, 126, 125, 32, -1, 121,
- 91, 129, 125, 54, 129, 125, 126, 125, 32, -1,
- 121, 91, 129, 125, 34, 54, 129, 125, 126, 125,
- 32, -1, 127, 111, 125, -1, 128, 129, 108, 126,
- 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, 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,
- 118, -1, 118, -1, 116, 117, -1, 117, -1, 123,
- 119, 52, 124, 112, 125, -1, 116, -1, 123, 119,
- 52, 124, 126, 125, -1, 129, -1, 129, 91, 129,
- -1, 99, 119, 100, -1, 50, 57, -1, 50, 56,
- 28, -1, 41, -1, 36, -1, -1, -1, -1, 126,
- 108, -1, 126, 112, -1, 55, 28, 52, -1, 87,
- -1, 12, -1, 15, -1, 31, -1, 29, -1, 130,
- -1, 23, -1, 24, 129, -1, 25, 148, -1, 25,
- 99, 148, 100, -1, 28, 99, 147, 100, -1, 28,
- -1, 13, -1, 14, 129, -1, 110, -1, 129, 93,
- 129, -1, 129, 94, 129, -1, 129, 95, 129, -1,
- 129, 96, 129, -1, 129, 74, 129, -1, 129, 101,
- 129, -1, 129, 102, 129, -1, 129, 70, 129, -1,
- 129, 65, 129, -1, 129, 66, 129, -1, 129, 71,
- 129, -1, 129, 72, 129, -1, 73, 129, -1, 129,
- 92, 129, -1, 129, 77, 129, -1, 129, 78, 129,
- -1, 129, 79, 129, -1, 93, 129, -1, 94, 129,
- -1, 99, 129, 100, -1, 103, 147, 104, -1, 84,
- 129, 85, 129, -1, 84, 129, 86, 129, -1, 80,
- 129, 47, 129, -1, 80, 129, 54, 129, 47, 129,
- -1, 81, 129, 47, 129, -1, 81, 129, 54, 129,
- 47, 129, -1, 82, 129, 47, 129, -1, 82, 129,
- 54, 129, 47, 129, -1, 83, 129, 47, 129, -1,
- 83, 129, 54, 129, 47, 129, -1, 27, 129, -1,
- 49, 129, -1, 135, -1, 138, -1, 37, 50, -1,
- 37, -1, 39, 132, -1, 88, 133, -1, 64, 134,
- -1, 17, -1, 19, 129, -1, 18, 129, -1, 18,
- -1, 20, 148, -1, 20, 99, 148, 100, -1, 90,
- 99, 28, 100, -1, 90, 99, 28, 105, 147, 100,
- -1, 61, 129, 56, 129, -1, 61, 129, -1, 21,
- 28, 147, -1, 28, -1, 132, 105, 28, -1, 28,
- -1, 133, 105, 28, -1, 28, -1, 134, 105, 28,
- -1, 40, 43, -1, 40, 46, -1, 40, 48, -1,
- 40, 136, -1, 40, 136, 137, -1, 40, 137, -1,
- 38, 129, -1, 129, -1, 47, 45, 129, -1, 45,
- 129, -1, 62, 63, -1, 62, 136, -1, 62, 136,
- 137, -1, 62, 137, -1, -1, 33, 139, 147, -1,
- -1, 44, 28, 141, 124, 144, 108, 145, 126, -1,
- 59, 28, -1, -1, 60, 28, 142, 124, 144, 108,
- 145, 126, -1, 143, 124, 144, 108, 145, 126, 32,
- -1, 143, 124, 144, 108, 145, 126, -1, 89, 28,
- -1, -1, 28, -1, 144, 105, 28, -1, 144, 108,
- 105, 28, -1, -1, 28, 148, -1, -1, 129, -1,
- 147, 105, 129, -1, 129, -1, 148, 105, 129, -1
+ 107, 0, -1, 107, 108, 112, -1, 112, -1, 1,
+ 108, -1, 98, -1, 53, -1, 58, -1, 36, -1,
+ -1, 143, -1, 149, -1, 115, -1, 49, 132, 42,
+ 28, -1, 49, 132, 42, 133, -1, 49, 132, 75,
+ 132, -1, 49, 132, 76, 132, -1, 51, 28, 91,
+ 132, -1, 51, 13, 91, 132, -1, 51, 14, 132,
+ 91, 132, -1, 51, 28, 54, 132, -1, 51, 13,
+ 54, 132, -1, 51, 14, 132, 54, 132, -1, 132,
+ -1, 134, -1, 114, -1, 116, -1, 123, 99, 122,
+ 100, 129, 128, 32, -1, 124, 91, 132, 128, 54,
+ 132, 128, 129, 128, 32, -1, 124, 91, 132, 128,
+ 34, 54, 132, 128, 129, 128, 32, -1, 130, 114,
+ 128, -1, 131, 132, 108, 129, 128, 32, -1, 131,
+ 132, 54, 132, -1, 125, 122, 109, 129, 128, 32,
+ -1, 125, 122, 109, 129, 128, 110, 129, 128, 32,
+ -1, 125, 122, 109, 129, 128, 127, 118, 128, 32,
+ -1, 125, 122, 109, 129, 128, 110, 127, 114, 128,
+ -1, 125, 122, 52, 127, 114, 128, -1, 125, 122,
+ 52, 127, 114, 128, 110, 127, 114, 128, -1, 125,
+ 122, 52, 127, 114, 128, 119, 128, 117, 128, -1,
+ -1, 110, 127, 114, -1, 118, 121, -1, 121, -1,
+ 119, 120, -1, 120, -1, 126, 122, 52, 127, 115,
+ 128, -1, 119, -1, 126, 122, 52, 127, 129, 128,
+ -1, 132, -1, 132, 91, 132, -1, 99, 122, 100,
+ -1, 50, 57, -1, 50, 56, 28, -1, 41, -1,
+ 111, -1, -1, -1, -1, 129, 108, -1, 129, 115,
+ -1, 55, 28, 52, -1, 87, -1, 12, -1, 15,
+ -1, 31, -1, 29, -1, 133, -1, 23, -1, 24,
+ 132, -1, 25, 151, -1, 25, 99, 151, 100, -1,
+ 28, 99, 150, 100, -1, 28, -1, 13, -1, 14,
+ 132, -1, 113, -1, 132, 93, 132, -1, 132, 94,
+ 132, -1, 132, 95, 132, -1, 132, 96, 132, -1,
+ 132, 74, 132, -1, 132, 101, 132, -1, 132, 102,
+ 132, -1, 132, 70, 132, -1, 132, 65, 132, -1,
+ 132, 66, 132, -1, 132, 71, 132, -1, 132, 72,
+ 132, -1, 73, 132, -1, 132, 92, 132, -1, 132,
+ 77, 132, -1, 132, 78, 132, -1, 132, 79, 132,
+ -1, 93, 132, -1, 94, 132, -1, 99, 132, 100,
+ -1, 103, 150, 104, -1, 84, 132, 85, 132, -1,
+ 84, 132, 86, 132, -1, 80, 132, 47, 132, -1,
+ 80, 132, 54, 132, 47, 132, -1, 81, 132, 47,
+ 132, -1, 81, 132, 54, 132, 47, 132, -1, 82,
+ 132, 47, 132, -1, 82, 132, 54, 132, 47, 132,
+ -1, 83, 132, 47, 132, -1, 83, 132, 54, 132,
+ 47, 132, -1, 27, 132, -1, 49, 132, -1, 138,
+ -1, 141, -1, 37, 50, -1, 37, -1, 39, 135,
+ -1, 88, 136, -1, 64, 137, -1, 17, -1, 19,
+ 132, -1, 18, 132, -1, 18, -1, 20, 151, -1,
+ 20, 99, 151, 100, -1, 90, 99, 28, 100, -1,
+ 90, 99, 28, 105, 150, 100, -1, 61, 132, 56,
+ 132, -1, 61, 132, -1, 21, 28, 150, -1, 28,
+ -1, 135, 105, 28, -1, 28, -1, 136, 105, 28,
+ -1, 28, -1, 137, 105, 28, -1, 40, 43, -1,
+ 40, 46, -1, 40, 48, -1, 40, 139, -1, 40,
+ 139, 140, -1, 40, 140, -1, 38, 132, -1, 132,
+ -1, 47, 45, 132, -1, 45, 132, -1, 62, 63,
+ -1, 62, 139, -1, 62, 139, 140, -1, 62, 140,
+ -1, -1, 33, 142, 150, -1, -1, 44, 28, 144,
+ 127, 147, 108, 148, 129, -1, 59, 28, -1, -1,
+ 60, 28, 145, 127, 147, 108, 148, 129, -1, 146,
+ 127, 147, 108, 148, 129, 32, -1, 146, 127, 147,
+ 108, 148, 129, -1, 89, 28, -1, -1, 28, -1,
+ 147, 105, 28, -1, 147, 108, 105, 28, -1, -1,
+ 28, 151, -1, -1, 132, -1, 150, 105, 132, -1,
+ 132, -1, 151, 105, 132, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 119, 119, 120, 121, 124, 129, 130, 131, 132,
- 135, 141, 144, 145, 146, 152, 159, 165, 171, 178,
- 186, 187, 190, 191, 196, 209, 227, 241, 247, 250,
- 255, 265, 277, 289, 299, 309, 319, 331, 332, 335,
- 336, 339, 340, 343, 351, 352, 360, 361, 362, 365,
- 368, 375, 382, 390, 393, 396, 397, 398, 401, 407,
- 411, 414, 417, 420, 423, 424, 427, 430, 431, 432,
- 435, 439, 447, 453, 454, 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, 487, 492, 493, 494, 495,
- 496, 497, 498, 499, 500, 503, 506, 509, 513, 514,
- 515, 516, 517, 518, 519, 522, 523, 526, 527, 530,
- 531, 542, 543, 544, 545, 549, 553, 559, 560, 563,
- 564, 567, 568, 572, 576, 580, 580, 610, 610, 615,
- 618, 618, 623, 631, 638, 640, 641, 642, 643, 646,
- 650, 658, 659, 660, 663, 664
+ 0, 119, 119, 120, 121, 124, 129, 134, 139, 144,
+ 145, 146, 147, 150, 156, 159, 160, 161, 167, 174,
+ 180, 186, 193, 201, 202, 205, 206, 211, 224, 242,
+ 256, 262, 265, 270, 280, 292, 304, 314, 324, 334,
+ 346, 347, 350, 351, 354, 355, 358, 366, 367, 375,
+ 376, 377, 380, 383, 390, 397, 405, 408, 411, 412,
+ 413, 416, 422, 426, 429, 432, 435, 438, 439, 442,
+ 445, 446, 447, 450, 454, 462, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
+ 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, 497, 498, 499, 502, 507,
+ 508, 509, 510, 511, 512, 513, 514, 515, 518, 521,
+ 524, 528, 529, 530, 531, 532, 533, 534, 537, 538,
+ 541, 542, 545, 546, 557, 558, 559, 560, 564, 568,
+ 574, 575, 578, 579, 582, 583, 587, 591, 595, 595,
+ 625, 625, 630, 633, 633, 638, 646, 653, 655, 656,
+ 657, 658, 661, 665, 673, 674, 675, 678, 679
};
#endif
@@ -734,14 +735,15 @@ static const char *const yytname[] =
"tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE",
"tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tME", "'='",
"'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'\\n'", "'('", "')'", "'>'",
- "'<'", "'['", "']'", "','", "$accept", "program", "nl", "programline",
- "asgn", "stmtoneliner", "stmt", "ifstmt", "elsestmtoneliner",
- "elseifstmt", "elseifstmtoneliner", "elseifstmtoneliner1", "elseifstmt1",
- "cond", "repeatwhile", "repeatwith", "if", "elseif", "begin", "end",
- "stmtlist", "when", "tell", "expr", "reference", "proc", "globallist",
- "propertylist", "instancelist", "gotofunc", "gotoframe", "gotomovie",
- "playfunc", "@1", "defn", "@2", "@3", "on", "argdef", "argstore",
- "macro", "arglist", "nonemptyarglist", 0
+ "'<'", "'['", "']'", "','", "$accept", "program", "nl", "thennl",
+ "nlelse", "nlelsif", "programline", "asgn", "stmtoneliner", "stmt",
+ "ifstmt", "elsestmtoneliner", "elseifstmt", "elseifstmtoneliner",
+ "elseifstmtoneliner1", "elseifstmt1", "cond", "repeatwhile",
+ "repeatwith", "if", "elseif", "begin", "end", "stmtlist", "when", "tell",
+ "expr", "reference", "proc", "globallist", "propertylist",
+ "instancelist", "gotofunc", "gotoframe", "gotomovie", "playfunc", "@1",
+ "defn", "@2", "@3", "on", "argdef", "argstore", "macro", "arglist",
+ "nonemptyarglist", 0
};
#endif
@@ -767,45 +769,45 @@ static const yytype_uint16 yytoknum[] =
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
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, 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, 129, 129, 130, 131, 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
+ 0, 106, 107, 107, 107, 108, 109, 110, 111, 112,
+ 112, 112, 112, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 114, 114, 115, 115, 115, 115, 115,
+ 115, 115, 115, 116, 116, 116, 116, 116, 116, 116,
+ 117, 117, 118, 118, 119, 119, 120, 121, 121, 122,
+ 122, 122, 123, 124, 125, 126, 127, 128, 129, 129,
+ 129, 130, 131, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 133, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 135, 135,
+ 136, 136, 137, 137, 138, 138, 138, 138, 138, 138,
+ 139, 139, 140, 140, 141, 141, 141, 141, 142, 141,
+ 144, 143, 143, 145, 143, 143, 143, 146, 147, 147,
+ 147, 147, 148, 149, 150, 150, 150, 151, 151
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
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, 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, 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
+ 0, 2, 3, 1, 2, 1, 1, 1, 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, 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, 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
@@ -813,153 +815,155 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 0, 60, 71, 0, 61, 114, 117, 0, 0,
- 0, 65, 0, 0, 0, 70, 63, 62, 145, 110,
- 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, 161, 0, 3, 73,
- 22, 9, 23, 0, 0, 0, 0, 0, 20, 64,
- 21, 107, 108, 7, 53, 8, 5, 4, 70, 0,
- 72, 116, 115, 0, 164, 118, 161, 66, 0, 67,
- 105, 161, 160, 161, 109, 125, 111, 0, 131, 0,
- 132, 0, 133, 138, 134, 136, 147, 106, 0, 49,
- 0, 0, 0, 0, 149, 150, 123, 141, 142, 144,
- 129, 113, 86, 0, 0, 0, 0, 0, 127, 112,
- 154, 0, 91, 92, 0, 162, 0, 1, 6, 0,
- 0, 0, 0, 46, 54, 0, 0, 0, 0, 0,
+ 0, 0, 63, 74, 0, 64, 117, 120, 0, 0,
+ 0, 68, 0, 0, 0, 73, 66, 65, 148, 113,
+ 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,
+ 0, 0, 0, 0, 0, 0, 164, 0, 3, 76,
+ 25, 12, 26, 0, 0, 0, 0, 0, 23, 67,
+ 24, 110, 111, 10, 56, 11, 5, 4, 73, 0,
+ 75, 119, 118, 0, 167, 121, 164, 69, 0, 70,
+ 108, 164, 163, 164, 112, 128, 114, 0, 134, 0,
+ 135, 0, 136, 141, 137, 139, 150, 109, 0, 52,
+ 0, 0, 0, 0, 152, 153, 126, 144, 145, 147,
+ 132, 116, 89, 0, 0, 0, 0, 0, 130, 115,
+ 157, 0, 94, 95, 0, 165, 0, 1, 9, 0,
+ 0, 0, 0, 49, 57, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 155, 161, 0, 164, 0, 0, 124, 0,
- 162, 0, 146, 0, 137, 140, 0, 135, 53, 0,
- 0, 0, 50, 0, 0, 0, 0, 0, 58, 53,
- 0, 143, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 93, 94, 0, 2, 0,
- 54, 0, 0, 53, 55, 0, 27, 0, 55, 82,
- 83, 81, 84, 85, 78, 88, 89, 90, 87, 74,
- 75, 76, 77, 79, 80, 156, 0, 119, 165, 68,
- 69, 126, 139, 155, 10, 11, 12, 13, 18, 15,
- 0, 0, 17, 14, 155, 122, 130, 97, 0, 99,
- 0, 101, 0, 103, 0, 95, 96, 128, 120, 161,
- 163, 55, 0, 48, 0, 54, 47, 29, 54, 0,
- 159, 0, 19, 16, 0, 0, 0, 0, 0, 0,
- 54, 0, 0, 54, 56, 57, 53, 0, 157, 0,
- 55, 159, 159, 98, 100, 102, 104, 121, 0, 0,
- 54, 34, 30, 53, 0, 28, 158, 153, 55, 55,
- 24, 54, 55, 52, 53, 54, 42, 0, 0, 54,
- 54, 44, 40, 0, 152, 148, 151, 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
+ 0, 0, 158, 164, 0, 167, 0, 0, 127, 0,
+ 165, 0, 149, 0, 140, 143, 0, 138, 56, 0,
+ 0, 0, 53, 0, 0, 0, 0, 0, 61, 56,
+ 0, 146, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 96, 97, 0, 2, 0,
+ 57, 0, 0, 56, 6, 58, 0, 30, 0, 58,
+ 85, 86, 84, 87, 88, 81, 91, 92, 93, 90,
+ 77, 78, 79, 80, 82, 83, 159, 0, 122, 168,
+ 71, 72, 129, 142, 158, 13, 14, 15, 16, 21,
+ 18, 0, 0, 20, 17, 158, 125, 133, 100, 0,
+ 102, 0, 104, 0, 106, 0, 98, 99, 131, 123,
+ 164, 166, 58, 0, 51, 0, 57, 50, 32, 57,
+ 0, 162, 0, 22, 19, 0, 0, 0, 0, 0,
+ 0, 57, 0, 0, 57, 59, 60, 56, 0, 160,
+ 0, 58, 162, 162, 101, 103, 105, 107, 124, 0,
+ 0, 57, 37, 33, 7, 56, 0, 31, 161, 156,
+ 58, 58, 27, 57, 58, 8, 56, 55, 57, 45,
+ 0, 0, 57, 57, 47, 43, 0, 155, 151, 154,
+ 58, 57, 0, 44, 40, 0, 57, 0, 42, 0,
+ 0, 57, 0, 57, 56, 57, 56, 36, 34, 35,
+ 56, 0, 28, 38, 0, 39, 0, 58, 29, 41,
+ 57, 57, 46, 48
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 47, 284, 48, 49, 50, 285, 52, 342, 320,
- 321, 316, 322, 132, 53, 54, 55, 317, 152, 206,
- 265, 56, 57, 58, 59, 60, 86, 119, 111, 61,
- 94, 95, 62, 83, 63, 168, 179, 64, 226, 290,
- 65, 161, 75
+ -1, 47, 285, 205, 305, 317, 48, 49, 50, 286,
+ 52, 345, 323, 324, 319, 325, 132, 53, 54, 55,
+ 320, 152, 207, 266, 56, 57, 58, 59, 60, 86,
+ 119, 111, 61, 94, 95, 62, 83, 63, 168, 179,
+ 64, 227, 291, 65, 161, 75
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -298
+#define YYPACT_NINF -285
static const yytype_int16 yypact[] =
{
- 349, -68, -298, -298, 1006, -298, -298, 1006, 1006, 1046,
- 25, -298, 1006, 1119, 1006, 1159, -298, -298, -298, 19,
- 43, 892, -298, 57, 1006, 16, 50, 61, 63, 69,
- 1006, 933, 73, 1006, 1006, 1006, 1006, 1006, 1006, -298,
- 78, 83, 28, 1006, 1006, 1006, 1006, 6, -298, -298,
- -298, -298, -298, 36, 45, 1232, 809, 1006, 1724, -298,
- -298, -298, -298, -298, -298, -298, -298, -298, 56, 1006,
- 1724, 1724, 1724, 1006, 1724, 8, 1006, 1724, 1006, 8,
- 1724, 1006, 8, 1006, -298, -298, 51, 1006, -298, 1006,
- -298, 112, -298, 1724, 15, -298, -298, 1262, 131, -298,
- -42, 1006, -37, 108, -298, -298, 1559, -298, 15, -298,
- -298, 58, -26, 1295, 1328, 1361, 1394, 1592, -298, 59,
- -298, 133, -26, -26, 1658, 1724, 17, -298, 441, 1232,
- 1006, 1232, 67, 1691, -298, 785, 1006, 1006, 1006, 1006,
- 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
- 1006, 1006, 134, 1006, 1262, 1658, -50, 1006, 60, -5,
- 1658, 3, 60, 140, 1724, 1724, 1006, -298, -298, 98,
- 1006, 1006, -298, 1006, 1006, 1526, 1006, 1006, -298, -298,
- 1006, -298, 141, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
- 1006, 1006, 1006, 142, 5, -298, -298, 1006, -298, 76,
- 1724, 79, 1625, -298, -298, 1006, -298, 1006, -298, 22,
- 22, 22, -26, -26, -26, 1724, 22, 22, 160, 232,
- 232, -26, -26, 1724, 1724, -298, -87, -298, 1724, -298,
- -298, -298, 1724, 134, -298, -298, 1724, 1724, 1724, 1724,
- 1006, 1006, 1724, 1724, 134, 1724, -298, 1724, 1201, 1724,
- 1427, 1724, 1460, 1724, 1493, 1724, 1724, -298, -298, 1006,
- 1724, -298, -13, -298, 809, 625, 1724, 1724, 625, 145,
- 75, -87, 1724, 1724, -87, 1006, 1006, 1006, 1006, 7,
- 625, 143, 1006, -298, -298, -298, -30, 163, -298, 168,
- -298, 75, 75, 1724, 1724, 1724, 1724, -298, 167, 1006,
- 1724, -16, -298, 11, 164, -298, -298, 533, -298, -298,
- -298, 1724, -298, -298, -298, 164, -298, 1232, 809, 625,
- 164, 164, -298, 1232, -298, 625, 625, -298, 625, 809,
- -298, 146, 149, -298, 171, -298, 173, 155, 625, 178,
- -298, -298, -298, -298, -298, -298, -298, -298, 181, -298,
- -298, 809, -298, 717, 717, -298, -298, -298, 625, -298,
- -298
+ 369, -87, -285, -285, 1026, -285, -285, 1026, 1026, 1066,
+ 27, -285, 1026, 1139, 1026, 1179, -285, -285, -285, -21,
+ 39, 912, -285, 43, 1026, 77, 67, 59, 61, 69,
+ 1026, 953, 73, 1026, 1026, 1026, 1026, 1026, 1026, -285,
+ 76, 85, -40, 1026, 1026, 1026, 1026, 2, -285, -285,
+ -285, -285, -285, 20, 34, 1252, 829, 1026, 1711, -285,
+ -285, -285, -285, -285, -285, -285, -285, -285, 28, 1026,
+ 1711, 1711, 1711, 1026, 1711, 17, 1026, 1711, 1026, 17,
+ 1711, 1026, 17, 1026, -285, -285, 24, 1026, -285, 1026,
+ -285, 112, -285, 1711, 38, -285, -285, 1282, 133, -285,
+ -42, 1026, -37, 110, -285, -285, 1546, -285, 38, -285,
+ -285, 58, -29, 252, 1315, 1348, 1381, 1579, -285, 60,
+ -285, 136, -29, -29, 1645, 1711, 31, -285, 461, 1252,
+ 1026, 1252, 23, 1678, -285, 805, 1026, 1026, 1026, 1026,
+ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
+ 1026, 1026, 138, 1026, 1282, 1645, 3, 1026, 63, 5,
+ 1645, 6, 63, 141, 1711, 1711, 1026, -285, -285, 128,
+ 1026, 1026, -285, 1026, 1026, 1513, 1026, 1026, -285, -285,
+ 1026, -285, 142, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
+ 1026, 1026, 1026, 151, 7, -285, -285, 1026, -285, 80,
+ 1711, 82, 1612, -285, -285, -285, 1026, -285, 1026, -285,
+ 22, 22, 22, -29, -29, -29, 1711, 22, 22, 155,
+ 238, 238, -29, -29, 1711, 1711, -285, -45, -285, 1711,
+ -285, -285, -285, 1711, 138, -285, -285, 1711, 1711, 1711,
+ 1711, 1026, 1026, 1711, 1711, 138, 1711, -285, 1711, 1221,
+ 1711, 1414, 1711, 1447, 1711, 1480, 1711, 1711, -285, -285,
+ 1026, 1711, -285, -27, -285, 829, 645, 1711, 1711, 645,
+ 167, 78, -45, 1711, 1711, -45, 1026, 1026, 1026, 1026,
+ 21, 645, 143, 1026, -285, -285, -285, -28, 164, -285,
+ 171, -285, 78, 78, 1711, 1711, 1711, 1711, -285, 168,
+ 1026, 1711, -16, -285, -285, 11, 165, -285, -285, 553,
+ -285, -285, -285, 1711, -285, -285, -285, -285, 165, -285,
+ 1252, 829, 645, 165, 165, -285, 1252, -285, 645, 645,
+ -285, 645, 829, -285, 145, 152, -285, 174, -285, 176,
+ 158, 645, 179, -285, -285, -285, -285, -285, -285, -285,
+ -285, 181, -285, -285, 829, -285, 737, 737, -285, -285,
+ -285, 645, -285, -285
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -298, -298, 18, 86, -298, -55, 0, -298, -298, -298,
- -86, -235, -103, -105, -298, -298, -298, -297, -120, 2,
- -79, -298, -298, 1, 53, -298, -298, -298, -298, -298,
- 188, -27, -298, -298, -298, -298, -298, -298, -176, -158,
- -298, -43, 14
+ -285, -285, 18, -285, -284, -285, 86, -285, -50, 0,
+ -285, -285, -285, -82, -255, -100, -108, -285, -285, -285,
+ -282, -111, 19, -89, -285, -285, 1, 55, -285, -285,
+ -285, -285, -285, 197, -30, -285, -285, -285, -285, -285,
+ -285, -183, -133, -285, -43, 13
};
/* 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 -56
+#define YYTABLE_NINF -59
static const yytype_int16 yytable[] =
{
- 51, 134, 302, 126, 109, 70, 127, 323, 71, 72,
- 74, 66, 173, 77, 74, 80, 74, 176, 269, 67,
- 313, 281, 93, 323, 199, 97, 201, 79, 303, 82,
- 66, 106, 93, 158, 112, 113, 114, 115, 116, 117,
- 162, 282, 314, -55, 122, 123, 124, 125, 233, 174,
- 227, 142, -55, 76, 177, 157, 133, 271, 135, 244,
- 89, -55, 91, 100, 101, 128, -55, 167, 274, 84,
- 154, 85, 98, 99, 155, 150, 151, 125, 102, 155,
- 330, 181, 160, 264, 125, 96, 330, 156, 164, 103,
- 165, 104, 159, 139, 140, 229, 141, 105, -55, 142,
- 157, 110, 175, 230, 66, 258, 118, 297, 197, -55,
- 259, 120, 197, 157, 145, 146, 147, 148, 149, 203,
- 204, 196, 197, 150, 151, 14, 234, 121, 51, 268,
- 133, 200, 202, 308, 309, 129, 130, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
- 222, 223, 224, 208, 125, 153, 163, 166, 228, 172,
- 178, 194, 225, 182, 193, 197, 304, 232, 231, 246,
- 257, 236, 237, 288, 238, 239, 261, 242, 243, 263,
- 289, 245, 280, 318, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 329, 305, 306, 299, 260, 310,
- 313, 343, 262, 345, 341, 346, 266, 347, 267, 283,
- 349, 307, 332, 355, 198, 315, 279, 335, 337, 108,
- 0, 351, 235, 353, 319, 0, 0, 354, 0, 325,
- 326, 139, 140, 328, 141, 0, 0, 142, 0, 0,
- 0, 272, 273, 0, 270, 0, 0, 0, 338, 0,
- 0, 0, 0, 146, 147, 148, 149, 0, 0, 0,
- 125, 150, 151, 333, 0, 0, 0, 286, 0, 0,
- 287, 0, 0, 0, 340, 358, 293, 294, 295, 296,
- 0, 0, 298, 300, 0, 301, 0, 0, 0, 291,
- 0, 0, 292, 0, 0, 0, 356, 0, 0, 0,
- 311, 0, 312, 139, 140, 0, 141, 0, 0, 142,
- 0, 0, 0, 327, 0, 0, 0, 331, 133, 0,
- 0, 334, 336, 0, 133, 0, 0, 148, 149, 0,
- 339, 0, 0, 150, 151, 344, 0, 0, 0, 0,
- 348, 0, 350, 0, 352, 0, 0, 0, 0, -6,
- 1, 0, 0, 357, 357, 0, 0, 0, 0, 359,
- 360, 2, 3, 4, 5, 0, 6, 7, 8, 9,
+ 51, 109, 127, 126, 303, 70, 134, 282, 71, 72,
+ 74, 66, 173, 77, 74, 80, 74, 176, 316, 67,
+ 315, 199, 93, 201, 326, 97, 79, 283, 82, 84,
+ 304, 106, 93, 158, 112, 113, 114, 115, 116, 117,
+ 162, 326, 304, -58, 122, 123, 124, 125, 142, 174,
+ 344, 272, -58, 66, 177, 76, 133, 234, 135, 121,
+ 270, -58, 275, 333, 167, 128, -58, 85, 245, 333,
+ 154, 96, 150, 151, 155, 203, 204, 125, 181, 155,
+ 100, 101, 160, 89, 125, 91, 156, 103, 164, 104,
+ 165, 159, 265, 139, 140, 102, 141, 105, -58, 142,
+ 66, 110, 175, 228, 118, 230, 231, 259, 157, -58,
+ 157, 197, 260, 120, 145, 146, 147, 148, 149, 129,
+ 269, 298, 157, 150, 151, 130, 197, 153, 51, 163,
+ 133, 200, 202, 98, 99, 196, 197, 210, 211, 212,
+ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 209, 125, 14, 235, 166, 229, 310,
+ 311, 172, 178, 182, 194, 193, 226, 233, 197, 232,
+ 247, 237, 238, 281, 239, 240, 306, 243, 244, 258,
+ 262, 246, 264, 290, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 321, 289, 307, 300, 261, 308,
+ 312, 315, 309, 304, 346, 332, 348, 267, 349, 268,
+ 350, 352, 335, 358, 198, 284, 322, 280, 340, 263,
+ 318, 328, 329, 338, 236, 331, 139, 140, 108, 141,
+ 0, 0, 142, 354, 0, 356, 0, 0, 0, 357,
+ 0, 341, 273, 274, 0, 271, 0, 0, 146, 147,
+ 148, 149, 0, 0, 0, 0, 150, 151, 0, 0,
+ 0, 125, 0, 0, 0, 0, 0, 0, 361, 0,
+ 0, 336, 0, 0, 0, 0, 0, 294, 295, 296,
+ 297, 0, 343, 0, 301, 287, 0, 0, 288, 0,
+ 292, 0, 0, 293, 0, 0, 0, 0, 0, 183,
+ 299, 313, 0, 302, 359, 0, 184, 0, 0, 139,
+ 140, 0, 141, 0, 0, 142, 0, 136, 137, 0,
+ 314, 133, 138, 139, 140, 0, 141, 133, 0, 142,
+ 143, 144, 330, 148, 149, 0, 0, 334, 0, 150,
+ 151, 337, 339, 0, 145, 146, 147, 148, 149, 0,
+ 342, 0, 0, 150, 151, 347, 360, 360, 0, 0,
+ 351, 0, 353, 0, 355, 0, 0, 0, 0, -9,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 362,
+ 363, 2, 3, 4, 5, 0, 6, 7, 8, 9,
10, 0, 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,
@@ -967,7 +971,7 @@ static const yytype_int16 yytable[] =
30, 31, 0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
35, 36, 37, 38, 0, 0, 39, 40, 41, 42,
- 0, 0, 43, 44, 0, 0, 0, -6, 45, 0,
+ 0, 0, 43, 44, 0, 0, 0, -9, 45, 0,
0, 0, 46, 2, 3, 4, 5, 0, 6, 7,
8, 9, 10, 0, 11, 12, 13, 0, 14, 15,
16, 0, 17, 0, 18, 0, 0, 0, 19, 0,
@@ -979,7 +983,7 @@ static const yytype_int16 yytable[] =
41, 42, 0, 0, 43, 44, 0, 0, 0, 0,
45, 0, 0, 0, 46, 2, 3, 4, 5, 0,
6, 7, 8, 9, 10, 0, 11, 12, 13, 0,
- 14, 68, 16, 0, 17, 324, 18, 0, 0, 0,
+ 14, 68, 16, 0, 17, 327, 18, 0, 0, 0,
19, 0, 20, 21, 22, 0, 0, 0, 0, 0,
0, 0, 24, 25, 26, 0, 0, 0, 27, 0,
0, 0, 0, 0, 30, 31, 0, 32, 0, 0,
@@ -1006,7 +1010,7 @@ static const yytype_int16 yytable[] =
37, 38, 0, 0, 39, 40, 0, 42, 0, 0,
43, 44, 0, 0, 0, 0, 45, 0, 0, 0,
46, 2, 3, 4, 5, 0, 6, 7, 8, 9,
- 10, 0, 11, 12, 13, 0, 14, 68, 16, 207,
+ 10, 0, 11, 12, 13, 0, 14, 68, 16, 208,
17, 0, 18, 0, 0, 0, 19, 0, 20, 21,
136, 137, 0, 0, 0, 138, 139, 140, 24, 141,
26, 0, 142, 143, 144, 0, 0, 0, 0, 0,
@@ -1047,7 +1051,7 @@ static const yytype_int16 yytable[] =
26, 0, 43, 44, 0, 0, 0, 0, 78, 0,
0, 0, 46, 0, 0, 0, 0, 0, 0, 0,
0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
- 35, 36, 37, 38, 2, 3, 4, 5, 275, 0,
+ 35, 36, 37, 38, 2, 3, 4, 5, 276, 0,
0, 0, 43, 44, 0, 11, 12, 13, 81, 14,
68, 16, 46, 17, 0, 0, 136, 137, 0, 0,
0, 138, 139, 140, 0, 141, 0, 0, 142, 143,
@@ -1057,96 +1061,95 @@ static const yytype_int16 yytable[] =
0, 0, 34, 35, 36, 37, 38, 0, 0, 0,
0, 0, 0, 0, 0, 43, 44, 136, 137, 0,
0, 131, 138, 139, 140, 46, 141, 170, 171, 142,
- 143, 144, 183, 0, 0, 0, 0, 0, 0, 184,
+ 143, 144, 185, 0, 0, 0, 0, 0, 0, 186,
0, 0, 0, 0, 145, 146, 147, 148, 149, 0,
136, 137, 0, 150, 151, 138, 139, 140, 0, 141,
- 0, 0, 142, 143, 144, 185, 0, 0, 0, 0,
- 0, 0, 186, 0, 0, 0, 0, 145, 146, 147,
+ 0, 0, 142, 143, 144, 187, 0, 0, 0, 0,
+ 0, 0, 188, 0, 0, 0, 0, 145, 146, 147,
148, 149, 0, 136, 137, 0, 150, 151, 138, 139,
- 140, 0, 141, 0, 0, 142, 143, 144, 187, 0,
- 0, 0, 0, 0, 0, 188, 0, 0, 0, 0,
+ 140, 0, 141, 0, 0, 142, 143, 144, 189, 0,
+ 0, 0, 0, 0, 0, 190, 0, 0, 0, 0,
145, 146, 147, 148, 149, 0, 136, 137, 0, 150,
151, 138, 139, 140, 0, 141, 0, 0, 142, 143,
- 144, 189, 0, 0, 0, 0, 0, 0, 190, 0,
+ 144, 277, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 145, 146, 147, 148, 149, 0, 136,
137, 0, 150, 151, 138, 139, 140, 0, 141, 0,
- 0, 142, 143, 144, 276, 0, 0, 0, 0, 0,
+ 0, 142, 143, 144, 278, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 145, 146, 147, 148,
149, 0, 136, 137, 0, 150, 151, 138, 139, 140,
- 0, 141, 0, 0, 142, 143, 144, 277, 0, 0,
+ 0, 141, 0, 0, 142, 143, 144, 279, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
146, 147, 148, 149, 0, 136, 137, 0, 150, 151,
138, 139, 140, 0, 141, 0, 0, 142, 143, 144,
- 278, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 241, 0, 0,
0, 0, 145, 146, 147, 148, 149, 0, 136, 137,
0, 150, 151, 138, 139, 140, 0, 141, 0, 0,
142, 143, 144, 0, 0, 0, 0, 0, 0, 0,
- 240, 0, 0, 0, 0, 145, 146, 147, 148, 149,
+ 0, 0, 180, 0, 242, 145, 146, 147, 148, 149,
0, 136, 137, 0, 150, 151, 138, 139, 140, 0,
141, 0, 0, 142, 143, 144, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 180, 0, 241, 145, 146,
+ 0, 0, 0, 0, 0, 0, 0, 0, 145, 146,
147, 148, 149, 0, 136, 137, 0, 150, 151, 138,
139, 140, 0, 141, 0, 0, 142, 143, 144, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 191, 192, 0, 0, 0, 0,
0, 145, 146, 147, 148, 149, 0, 136, 137, 0,
150, 151, 138, 139, 140, 0, 141, 0, 0, 142,
- 143, 144, 0, 0, 0, 0, 0, 191, 192, 0,
- 0, 0, 0, 0, 145, 146, 147, 148, 149, 0,
- 136, 137, 0, 150, 151, 138, 139, 140, 0, 141,
+ 143, 144, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 206, 145, 146, 147, 148, 149, 0,
+ 136, 137, 195, 150, 151, 138, 139, 140, 0, 141,
0, 0, 142, 143, 144, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 205, 145, 146, 147,
+ 0, 0, 0, 0, 0, 0, 0, 145, 146, 147,
148, 149, 0, 136, 137, 195, 150, 151, 138, 139,
140, 0, 141, 0, 0, 142, 143, 144, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 145, 146, 147, 148, 149, 0, 136, 137, 195, 150,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 206,
+ 145, 146, 147, 148, 149, 0, 136, 137, 0, 150,
151, 138, 139, 140, 0, 141, 0, 0, 142, 143,
144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 205, 145, 146, 147, 148, 149, 0, 136,
- 137, 0, 150, 151, 138, 139, 140, 0, 141, 0,
- 0, 142, 143, 144, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 145, 146, 147, 148,
- 149, 0, 0, 0, 0, 150, 151
+ 0, 0, 0, 145, 146, 147, 148, 149, 0, 0,
+ 0, 0, 150, 151
};
static const yytype_int16 yycheck[] =
{
- 0, 56, 32, 46, 31, 4, 0, 304, 7, 8,
- 9, 98, 54, 12, 13, 14, 15, 54, 105, 1,
- 36, 34, 21, 320, 129, 24, 131, 13, 58, 15,
- 98, 30, 31, 76, 33, 34, 35, 36, 37, 38,
- 83, 54, 58, 32, 43, 44, 45, 46, 168, 91,
- 100, 77, 41, 28, 91, 105, 55, 233, 57, 179,
- 45, 50, 47, 13, 14, 47, 55, 94, 244, 50,
- 69, 28, 56, 57, 73, 101, 102, 76, 28, 78,
- 315, 108, 81, 203, 83, 28, 321, 73, 87, 28,
- 89, 28, 78, 71, 72, 100, 74, 28, 87, 77,
- 105, 28, 101, 100, 98, 100, 28, 100, 105, 98,
- 105, 28, 105, 105, 92, 93, 94, 95, 96, 52,
- 53, 104, 105, 101, 102, 27, 28, 99, 128, 208,
- 129, 130, 131, 291, 292, 99, 91, 136, 137, 138,
+ 0, 31, 0, 46, 32, 4, 56, 34, 7, 8,
+ 9, 98, 54, 12, 13, 14, 15, 54, 302, 1,
+ 36, 129, 21, 131, 306, 24, 13, 54, 15, 50,
+ 58, 30, 31, 76, 33, 34, 35, 36, 37, 38,
+ 83, 323, 58, 32, 43, 44, 45, 46, 77, 91,
+ 334, 234, 41, 98, 91, 28, 55, 168, 57, 99,
+ 105, 50, 245, 318, 94, 47, 55, 28, 179, 324,
+ 69, 28, 101, 102, 73, 52, 53, 76, 108, 78,
+ 13, 14, 81, 45, 83, 47, 73, 28, 87, 28,
+ 89, 78, 203, 71, 72, 28, 74, 28, 87, 77,
+ 98, 28, 101, 100, 28, 100, 100, 100, 105, 98,
+ 105, 105, 105, 28, 92, 93, 94, 95, 96, 99,
+ 209, 100, 105, 101, 102, 91, 105, 99, 128, 105,
+ 129, 130, 131, 56, 57, 104, 105, 136, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 135, 153, 99, 105, 45, 157, 28,
- 52, 28, 28, 105, 105, 105, 286, 166, 28, 28,
- 28, 170, 171, 28, 173, 174, 100, 176, 177, 100,
- 105, 180, 261, 303, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 314, 32, 28, 54, 197, 32,
- 36, 52, 200, 32, 58, 32, 205, 52, 207, 264,
- 32, 290, 317, 32, 128, 301, 259, 320, 323, 31,
- -1, 341, 169, 343, 303, -1, -1, 347, -1, 308,
- 309, 71, 72, 312, 74, -1, -1, 77, -1, -1,
- -1, 240, 241, -1, 226, -1, -1, -1, 327, -1,
- -1, -1, -1, 93, 94, 95, 96, -1, -1, -1,
- 259, 101, 102, 318, -1, -1, -1, 265, -1, -1,
- 268, -1, -1, -1, 329, 354, 275, 276, 277, 278,
- -1, -1, 280, 282, -1, 283, -1, -1, -1, 271,
- -1, -1, 274, -1, -1, -1, 351, -1, -1, -1,
- 299, -1, 300, 71, 72, -1, 74, -1, -1, 77,
- -1, -1, -1, 311, -1, -1, -1, 315, 317, -1,
- -1, 319, 320, -1, 323, -1, -1, 95, 96, -1,
- 328, -1, -1, 101, 102, 333, -1, -1, -1, -1,
- 338, -1, 340, -1, 342, -1, -1, -1, -1, 0,
- 1, -1, -1, 353, 354, -1, -1, -1, -1, 357,
- 358, 12, 13, 14, 15, -1, 17, 18, 19, 20,
+ 149, 150, 151, 135, 153, 27, 28, 45, 157, 292,
+ 293, 28, 52, 105, 28, 105, 28, 166, 105, 28,
+ 28, 170, 171, 262, 173, 174, 287, 176, 177, 28,
+ 100, 180, 100, 105, 183, 184, 185, 186, 187, 188,
+ 189, 190, 191, 192, 305, 28, 32, 54, 197, 28,
+ 32, 36, 291, 58, 52, 316, 32, 206, 32, 208,
+ 52, 32, 320, 32, 128, 265, 305, 260, 326, 200,
+ 302, 310, 311, 323, 169, 314, 71, 72, 31, 74,
+ -1, -1, 77, 344, -1, 346, -1, -1, -1, 350,
+ -1, 330, 241, 242, -1, 227, -1, -1, 93, 94,
+ 95, 96, -1, -1, -1, -1, 101, 102, -1, -1,
+ -1, 260, -1, -1, -1, -1, -1, -1, 357, -1,
+ -1, 321, -1, -1, -1, -1, -1, 276, 277, 278,
+ 279, -1, 332, -1, 283, 266, -1, -1, 269, -1,
+ 272, -1, -1, 275, -1, -1, -1, -1, -1, 47,
+ 281, 300, -1, 284, 354, -1, 54, -1, -1, 71,
+ 72, -1, 74, -1, -1, 77, -1, 65, 66, -1,
+ 301, 320, 70, 71, 72, -1, 74, 326, -1, 77,
+ 78, 79, 313, 95, 96, -1, -1, 318, -1, 101,
+ 102, 322, 323, -1, 92, 93, 94, 95, 96, -1,
+ 331, -1, -1, 101, 102, 336, 356, 357, -1, -1,
+ 341, -1, 343, -1, 345, -1, -1, -1, -1, 0,
+ 1, -1, -1, -1, -1, -1, -1, -1, -1, 360,
+ 361, 12, 13, 14, 15, -1, 17, 18, 19, 20,
21, -1, 23, 24, 25, -1, 27, 28, 29, -1,
31, -1, 33, -1, -1, -1, 37, -1, 39, 40,
41, -1, -1, 44, -1, -1, -1, -1, 49, 50,
@@ -1254,7 +1257,7 @@ static const yytype_int16 yycheck[] =
-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, 54, -1,
+ 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, 47, -1, -1, -1, -1, -1,
@@ -1264,35 +1267,32 @@ static const yytype_int16 yycheck[] =
-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,
- 47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -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,
- 54, -1, -1, -1, -1, 92, 93, 94, 95, 96,
+ -1, -1, 56, -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, -1, -1, -1, -1, 56, -1, 91, 92, 93,
+ -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, -1, -1,
+ -1, -1, -1, -1, 85, 86, -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, 85, 86, -1,
- -1, -1, -1, -1, 92, 93, 94, 95, 96, -1,
- 65, 66, -1, 101, 102, 70, 71, 72, -1, 74,
+ 78, 79, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 91, 92, 93, 94, 95, 96, -1,
+ 65, 66, 100, 101, 102, 70, 71, 72, -1, 74,
-1, -1, 77, 78, 79, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 91, 92, 93, 94,
+ -1, -1, -1, -1, -1, -1, -1, 92, 93, 94,
95, 96, -1, 65, 66, 100, 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, 95, 96, -1, 65, 66, 100, 101,
+ -1, -1, -1, -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, -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, -1,
- -1, -1, -1, -1, -1, -1, 92, 93, 94, 95,
- 96, -1, -1, -1, -1, 101, 102
+ -1, -1, -1, 92, 93, 94, 95, 96, -1, -1,
+ -1, -1, 101, 102
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1303,39 +1303,39 @@ static const yytype_uint8 yystos[] =
21, 23, 24, 25, 27, 28, 29, 31, 33, 37,
39, 40, 41, 44, 49, 50, 51, 55, 59, 60,
61, 62, 64, 73, 80, 81, 82, 83, 84, 87,
- 88, 89, 90, 93, 94, 99, 103, 107, 109, 110,
- 111, 112, 113, 120, 121, 122, 127, 128, 129, 130,
- 131, 135, 138, 140, 143, 146, 98, 108, 28, 49,
- 129, 129, 129, 99, 129, 148, 28, 129, 99, 148,
- 129, 99, 148, 139, 50, 28, 132, 38, 43, 45,
- 46, 47, 48, 129, 136, 137, 28, 129, 56, 57,
- 13, 14, 28, 28, 28, 28, 129, 63, 136, 137,
- 28, 134, 129, 129, 129, 129, 129, 129, 28, 133,
- 28, 99, 129, 129, 129, 129, 147, 0, 108, 99,
- 91, 99, 119, 129, 111, 129, 65, 66, 70, 71,
+ 88, 89, 90, 93, 94, 99, 103, 107, 112, 113,
+ 114, 115, 116, 123, 124, 125, 130, 131, 132, 133,
+ 134, 138, 141, 143, 146, 149, 98, 108, 28, 49,
+ 132, 132, 132, 99, 132, 151, 28, 132, 99, 151,
+ 132, 99, 151, 142, 50, 28, 135, 38, 43, 45,
+ 46, 47, 48, 132, 139, 140, 28, 132, 56, 57,
+ 13, 14, 28, 28, 28, 28, 132, 63, 139, 140,
+ 28, 137, 132, 132, 132, 132, 132, 132, 28, 136,
+ 28, 99, 132, 132, 132, 132, 150, 0, 108, 99,
+ 91, 99, 122, 132, 114, 132, 65, 66, 70, 71,
72, 74, 77, 78, 79, 92, 93, 94, 95, 96,
- 101, 102, 124, 99, 129, 129, 148, 105, 147, 148,
- 129, 147, 147, 105, 129, 129, 45, 137, 141, 42,
- 75, 76, 28, 54, 91, 129, 54, 91, 52, 142,
- 56, 137, 105, 47, 54, 47, 54, 47, 54, 47,
- 54, 85, 86, 105, 28, 100, 104, 105, 109, 119,
- 129, 119, 129, 52, 53, 91, 125, 54, 108, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 28, 144, 100, 129, 100,
- 100, 28, 129, 124, 28, 130, 129, 129, 129, 129,
- 54, 91, 129, 129, 124, 129, 28, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 28, 100, 105,
- 129, 100, 125, 100, 124, 126, 129, 129, 126, 105,
- 108, 144, 129, 129, 144, 47, 47, 47, 47, 147,
- 126, 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, 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
+ 101, 102, 127, 99, 132, 132, 151, 105, 150, 151,
+ 132, 150, 150, 105, 132, 132, 45, 140, 144, 42,
+ 75, 76, 28, 54, 91, 132, 54, 91, 52, 145,
+ 56, 140, 105, 47, 54, 47, 54, 47, 54, 47,
+ 54, 85, 86, 105, 28, 100, 104, 105, 112, 122,
+ 132, 122, 132, 52, 53, 109, 91, 128, 54, 108,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 28, 147, 100, 132,
+ 100, 100, 28, 132, 127, 28, 133, 132, 132, 132,
+ 132, 54, 91, 132, 132, 127, 132, 28, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 28, 100,
+ 105, 132, 100, 128, 100, 127, 129, 132, 132, 129,
+ 105, 108, 147, 132, 132, 147, 47, 47, 47, 47,
+ 150, 129, 34, 54, 114, 108, 115, 128, 128, 28,
+ 105, 148, 108, 108, 132, 132, 132, 132, 100, 128,
+ 54, 132, 128, 32, 58, 110, 127, 32, 28, 129,
+ 148, 148, 32, 132, 128, 36, 110, 111, 119, 120,
+ 126, 127, 129, 118, 119, 121, 126, 32, 129, 129,
+ 128, 129, 127, 120, 128, 122, 114, 128, 121, 128,
+ 122, 129, 128, 114, 110, 117, 52, 128, 32, 32,
+ 52, 128, 32, 128, 127, 128, 127, 127, 32, 114,
+ 115, 129, 128, 128
};
#define yyerrok (yyerrstatus = 0)
@@ -2162,8 +2162,32 @@ yyreduce:
;}
break;
- case 10:
-#line 135 "engines/director/lingo/lingo-gr.y"
+ case 6:
+#line 129 "engines/director/lingo/lingo-gr.y"
+ {
+ g_lingo->_linenumber++;
+ g_lingo->_colnumber = 1;
+ ;}
+ break;
+
+ case 7:
+#line 134 "engines/director/lingo/lingo-gr.y"
+ {
+ g_lingo->_linenumber++;
+ g_lingo->_colnumber = 5;
+ ;}
+ break;
+
+ case 8:
+#line 139 "engines/director/lingo/lingo-gr.y"
+ {
+ g_lingo->_linenumber++;
+ g_lingo->_colnumber = 8;
+ ;}
+ break;
+
+ case 13:
+#line 150 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_varpush);
g_lingo->codeString((yyvsp[(4) - (4)].s)->c_str());
@@ -2172,25 +2196,25 @@ yyreduce:
delete (yyvsp[(4) - (4)].s); ;}
break;
- case 11:
-#line 141 "engines/director/lingo/lingo-gr.y"
+ case 14:
+#line 156 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_assign);
(yyval.code) = (yyvsp[(2) - (4)].code); ;}
break;
- case 12:
-#line 144 "engines/director/lingo/lingo-gr.y"
+ case 15:
+#line 159 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(g_lingo->c_after); ;}
break;
- case 13:
-#line 145 "engines/director/lingo/lingo-gr.y"
+ case 16:
+#line 160 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(g_lingo->c_before); ;}
break;
- case 14:
-#line 146 "engines/director/lingo/lingo-gr.y"
+ case 17:
+#line 161 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_varpush);
g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str());
@@ -2199,8 +2223,8 @@ yyreduce:
delete (yyvsp[(2) - (4)].s); ;}
break;
- case 15:
-#line 152 "engines/director/lingo/lingo-gr.y"
+ case 18:
+#line 167 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2210,8 +2234,8 @@ yyreduce:
(yyval.code) = (yyvsp[(4) - (4)].code); ;}
break;
- case 16:
-#line 159 "engines/director/lingo/lingo-gr.y"
+ case 19:
+#line 174 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_swap);
g_lingo->code1(g_lingo->c_theentityassign);
@@ -2220,8 +2244,8 @@ yyreduce:
(yyval.code) = (yyvsp[(5) - (5)].code); ;}
break;
- case 17:
-#line 165 "engines/director/lingo/lingo-gr.y"
+ case 20:
+#line 180 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_varpush);
g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str());
@@ -2230,8 +2254,8 @@ yyreduce:
delete (yyvsp[(2) - (4)].s); ;}
break;
- case 18:
-#line 171 "engines/director/lingo/lingo-gr.y"
+ case 21:
+#line 186 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2241,8 +2265,8 @@ yyreduce:
(yyval.code) = (yyvsp[(4) - (4)].code); ;}
break;
- case 19:
-#line 178 "engines/director/lingo/lingo-gr.y"
+ case 22:
+#line 193 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_swap);
g_lingo->code1(g_lingo->c_theentityassign);
@@ -2251,8 +2275,8 @@ yyreduce:
(yyval.code) = (yyvsp[(5) - (5)].code); ;}
break;
- case 24:
-#line 196 "engines/director/lingo/lingo-gr.y"
+ case 27:
+#line 211 "engines/director/lingo/lingo-gr.y"
{
inst body = 0, end = 0;
WRITE_UINT32(&body, (yyvsp[(5) - (7)].code) - (yyvsp[(1) - (7)].code));
@@ -2263,8 +2287,8 @@ yyreduce:
checkEnd((yyvsp[(7) - (7)].s), "repeat", true); ;}
break;
- case 25:
-#line 209 "engines/director/lingo/lingo-gr.y"
+ case 28:
+#line 224 "engines/director/lingo/lingo-gr.y"
{
inst init = 0, finish = 0, body = 0, end = 0, inc = 0;
WRITE_UINT32(&init, (yyvsp[(3) - (10)].code) - (yyvsp[(1) - (10)].code));
@@ -2281,8 +2305,8 @@ yyreduce:
checkEnd((yyvsp[(10) - (10)].s), "repeat", true); ;}
break;
- case 26:
-#line 227 "engines/director/lingo/lingo-gr.y"
+ case 29:
+#line 242 "engines/director/lingo/lingo-gr.y"
{
inst init = 0, finish = 0, body = 0, end = 0, inc = 0;
WRITE_UINT32(&init, (yyvsp[(3) - (11)].code) - (yyvsp[(1) - (11)].code));
@@ -2299,8 +2323,8 @@ yyreduce:
checkEnd((yyvsp[(11) - (11)].s), "repeat", true); ;}
break;
- case 27:
-#line 241 "engines/director/lingo/lingo-gr.y"
+ case 30:
+#line 256 "engines/director/lingo/lingo-gr.y"
{
inst end = 0;
WRITE_UINT32(&end, (yyvsp[(3) - (3)].code) - (yyvsp[(1) - (3)].code));
@@ -2309,22 +2333,22 @@ yyreduce:
;}
break;
- case 28:
-#line 247 "engines/director/lingo/lingo-gr.y"
+ case 31:
+#line 262 "engines/director/lingo/lingo-gr.y"
{
warning("STUB: TELL is not implemented");
checkEnd((yyvsp[(6) - (6)].s), "tell", true); ;}
break;
- case 29:
-#line 250 "engines/director/lingo/lingo-gr.y"
+ case 32:
+#line 265 "engines/director/lingo/lingo-gr.y"
{
warning("STUB: TELL is not implemented");
;}
break;
- case 30:
-#line 255 "engines/director/lingo/lingo-gr.y"
+ case 33:
+#line 270 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2337,8 +2361,8 @@ yyreduce:
g_lingo->processIf(0, 0); ;}
break;
- case 31:
-#line 265 "engines/director/lingo/lingo-gr.y"
+ case 34:
+#line 280 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
@@ -2353,8 +2377,8 @@ yyreduce:
g_lingo->processIf(0, 0); ;}
break;
- case 32:
-#line 277 "engines/director/lingo/lingo-gr.y"
+ case 35:
+#line 292 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
@@ -2369,8 +2393,8 @@ yyreduce:
g_lingo->processIf(0, (yyvsp[(8) - (9)].code) - (yyvsp[(1) - (9)].code)); ;}
break;
- case 33:
-#line 289 "engines/director/lingo/lingo-gr.y"
+ case 36:
+#line 304 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
@@ -2383,8 +2407,8 @@ yyreduce:
g_lingo->processIf(0, (yyvsp[(9) - (9)].code) - (yyvsp[(1) - (9)].code)); ;}
break;
- case 34:
-#line 299 "engines/director/lingo/lingo-gr.y"
+ case 37:
+#line 314 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2397,8 +2421,8 @@ yyreduce:
g_lingo->processIf(0, 0); ;}
break;
- case 35:
-#line 309 "engines/director/lingo/lingo-gr.y"
+ case 38:
+#line 324 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (10)].code) - (yyvsp[(1) - (10)].code));
@@ -2411,8 +2435,8 @@ yyreduce:
g_lingo->processIf(0, 0); ;}
break;
- case 36:
-#line 319 "engines/director/lingo/lingo-gr.y"
+ case 39:
+#line 334 "engines/director/lingo/lingo-gr.y"
{
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (10)].code) - (yyvsp[(1) - (10)].code));
@@ -2425,18 +2449,18 @@ yyreduce:
g_lingo->processIf(0, (yyvsp[(10) - (10)].code) - (yyvsp[(1) - (10)].code)); ;}
break;
- case 37:
-#line 331 "engines/director/lingo/lingo-gr.y"
+ case 40:
+#line 346 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = 0; ;}
break;
- case 38:
-#line 332 "engines/director/lingo/lingo-gr.y"
+ case 41:
+#line 347 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(2) - (3)].code); ;}
break;
- case 43:
-#line 343 "engines/director/lingo/lingo-gr.y"
+ case 46:
+#line 358 "engines/director/lingo/lingo-gr.y"
{
inst then = 0;
WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2445,8 +2469,8 @@ yyreduce:
g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
break;
- case 45:
-#line 352 "engines/director/lingo/lingo-gr.y"
+ case 48:
+#line 367 "engines/director/lingo/lingo-gr.y"
{
inst then = 0;
WRITE_UINT32(&then, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2455,23 +2479,23 @@ yyreduce:
g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
break;
- case 46:
-#line 360 "engines/director/lingo/lingo-gr.y"
+ case 49:
+#line 375 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(STOP); ;}
break;
- case 47:
-#line 361 "engines/director/lingo/lingo-gr.y"
+ case 50:
+#line 376 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code2(g_lingo->c_eq, STOP); ;}
break;
- case 49:
-#line 365 "engines/director/lingo/lingo-gr.y"
+ case 52:
+#line 380 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); ;}
break;
- case 50:
-#line 368 "engines/director/lingo/lingo-gr.y"
+ case 53:
+#line 383 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP);
g_lingo->code3(STOP, STOP, STOP);
@@ -2479,8 +2503,8 @@ yyreduce:
delete (yyvsp[(3) - (3)].s); ;}
break;
- case 51:
-#line 375 "engines/director/lingo/lingo-gr.y"
+ case 54:
+#line 390 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_ifcode);
g_lingo->code3(STOP, STOP, STOP);
@@ -2488,8 +2512,8 @@ yyreduce:
g_lingo->codeLabel(0); ;}
break;
- case 52:
-#line 382 "engines/director/lingo/lingo-gr.y"
+ case 55:
+#line 397 "engines/director/lingo/lingo-gr.y"
{
inst skipEnd;
WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions
@@ -2498,23 +2522,23 @@ yyreduce:
g_lingo->code1(skipEnd); ;}
break;
- case 53:
-#line 390 "engines/director/lingo/lingo-gr.y"
+ case 56:
+#line 405 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
- case 54:
-#line 393 "engines/director/lingo/lingo-gr.y"
+ case 57:
+#line 408 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
- case 55:
-#line 396 "engines/director/lingo/lingo-gr.y"
+ case 58:
+#line 411 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->_currentScript->size(); ;}
break;
- case 58:
-#line 401 "engines/director/lingo/lingo-gr.y"
+ case 61:
+#line 416 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_whencode);
g_lingo->code1(STOP);
@@ -2522,82 +2546,82 @@ yyreduce:
delete (yyvsp[(2) - (3)].s); ;}
break;
- case 59:
-#line 407 "engines/director/lingo/lingo-gr.y"
+ case 62:
+#line 422 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_tellcode);
g_lingo->code1(STOP); ;}
break;
- case 60:
-#line 411 "engines/director/lingo/lingo-gr.y"
+ case 63:
+#line 426 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt((yyvsp[(1) - (1)].i)); ;}
break;
- case 61:
-#line 414 "engines/director/lingo/lingo-gr.y"
+ case 64:
+#line 429 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_floatpush);
g_lingo->codeFloat((yyvsp[(1) - (1)].f)); ;}
break;
- case 62:
-#line 417 "engines/director/lingo/lingo-gr.y"
+ case 65:
+#line 432 "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 63:
-#line 420 "engines/director/lingo/lingo-gr.y"
+ case 66:
+#line 435 "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 65:
-#line 424 "engines/director/lingo/lingo-gr.y"
+ case 68:
+#line 439 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
delete (yyvsp[(1) - (1)].s); ;}
break;
- case 66:
-#line 427 "engines/director/lingo/lingo-gr.y"
+ case 69:
+#line 442 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 67:
-#line 430 "engines/director/lingo/lingo-gr.y"
+ case 70:
+#line 445 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
break;
- case 68:
-#line 431 "engines/director/lingo/lingo-gr.y"
+ case 71:
+#line 446 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;}
break;
- case 69:
-#line 432 "engines/director/lingo/lingo-gr.y"
+ case 72:
+#line 447 "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 70:
-#line 435 "engines/director/lingo/lingo-gr.y"
+ case 73:
+#line 450 "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 71:
-#line 439 "engines/director/lingo/lingo-gr.y"
+ case 74:
+#line 454 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2608,8 +2632,8 @@ yyreduce:
g_lingo->code2(e, f); ;}
break;
- case 72:
-#line 447 "engines/director/lingo/lingo-gr.y"
+ case 75:
+#line 462 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(g_lingo->c_theentitypush);
inst e = 0, f = 0;
@@ -2618,392 +2642,392 @@ yyreduce:
g_lingo->code2(e, f); ;}
break;
- case 74:
-#line 454 "engines/director/lingo/lingo-gr.y"
+ case 77:
+#line 469 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_add); ;}
break;
- case 75:
-#line 455 "engines/director/lingo/lingo-gr.y"
+ case 78:
+#line 470 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_sub); ;}
break;
- case 76:
-#line 456 "engines/director/lingo/lingo-gr.y"
+ case 79:
+#line 471 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_mul); ;}
break;
- case 77:
-#line 457 "engines/director/lingo/lingo-gr.y"
+ case 80:
+#line 472 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_div); ;}
break;
- case 78:
-#line 458 "engines/director/lingo/lingo-gr.y"
+ case 81:
+#line 473 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_mod); ;}
break;
- case 79:
-#line 459 "engines/director/lingo/lingo-gr.y"
+ case 82:
+#line 474 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_gt); ;}
break;
- case 80:
-#line 460 "engines/director/lingo/lingo-gr.y"
+ case 83:
+#line 475 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_lt); ;}
break;
- case 81:
-#line 461 "engines/director/lingo/lingo-gr.y"
+ case 84:
+#line 476 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_neq); ;}
break;
- case 82:
-#line 462 "engines/director/lingo/lingo-gr.y"
+ case 85:
+#line 477 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_ge); ;}
break;
- case 83:
-#line 463 "engines/director/lingo/lingo-gr.y"
+ case 86:
+#line 478 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_le); ;}
break;
- case 84:
-#line 464 "engines/director/lingo/lingo-gr.y"
+ case 87:
+#line 479 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_and); ;}
break;
- case 85:
-#line 465 "engines/director/lingo/lingo-gr.y"
+ case 88:
+#line 480 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_or); ;}
break;
- case 86:
-#line 466 "engines/director/lingo/lingo-gr.y"
+ case 89:
+#line 481 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_not); ;}
break;
- case 87:
-#line 467 "engines/director/lingo/lingo-gr.y"
+ case 90:
+#line 482 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_ampersand); ;}
break;
- case 88:
-#line 468 "engines/director/lingo/lingo-gr.y"
+ case 91:
+#line 483 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_concat); ;}
break;
- case 89:
-#line 469 "engines/director/lingo/lingo-gr.y"
+ case 92:
+#line 484 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_contains); ;}
break;
- case 90:
-#line 470 "engines/director/lingo/lingo-gr.y"
+ case 93:
+#line 485 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_starts); ;}
break;
- case 91:
-#line 471 "engines/director/lingo/lingo-gr.y"
+ case 94:
+#line 486 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(2) - (2)].code); ;}
break;
- case 92:
-#line 472 "engines/director/lingo/lingo-gr.y"
+ case 95:
+#line 487 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;}
break;
- case 93:
-#line 473 "engines/director/lingo/lingo-gr.y"
+ case 96:
+#line 488 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(2) - (3)].code); ;}
break;
- case 94:
-#line 474 "engines/director/lingo/lingo-gr.y"
+ case 97:
+#line 489 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;}
break;
- case 95:
-#line 475 "engines/director/lingo/lingo-gr.y"
+ case 98:
+#line 490 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_intersects); ;}
break;
- case 96:
-#line 476 "engines/director/lingo/lingo-gr.y"
+ case 99:
+#line 491 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_within); ;}
break;
- case 97:
-#line 477 "engines/director/lingo/lingo-gr.y"
+ case 100:
+#line 492 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_charOf); ;}
break;
- case 98:
-#line 478 "engines/director/lingo/lingo-gr.y"
+ case 101:
+#line 493 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_charToOf); ;}
break;
- case 99:
-#line 479 "engines/director/lingo/lingo-gr.y"
+ case 102:
+#line 494 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_itemOf); ;}
break;
- case 100:
-#line 480 "engines/director/lingo/lingo-gr.y"
+ case 103:
+#line 495 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_itemToOf); ;}
break;
- case 101:
-#line 481 "engines/director/lingo/lingo-gr.y"
+ case 104:
+#line 496 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_lineOf); ;}
break;
- case 102:
-#line 482 "engines/director/lingo/lingo-gr.y"
+ case 105:
+#line 497 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_lineToOf); ;}
break;
- case 103:
-#line 483 "engines/director/lingo/lingo-gr.y"
+ case 106:
+#line 498 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_wordOf); ;}
break;
- case 104:
-#line 484 "engines/director/lingo/lingo-gr.y"
+ case 107:
+#line 499 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_wordToOf); ;}
break;
- case 105:
-#line 487 "engines/director/lingo/lingo-gr.y"
+ case 108:
+#line 502 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 106:
-#line 492 "engines/director/lingo/lingo-gr.y"
+ case 109:
+#line 507 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_printtop); ;}
break;
- case 109:
-#line 495 "engines/director/lingo/lingo-gr.y"
+ case 112:
+#line 510 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_exitRepeat); ;}
break;
- case 110:
-#line 496 "engines/director/lingo/lingo-gr.y"
+ case 113:
+#line 511 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_procret); ;}
break;
- case 114:
-#line 500 "engines/director/lingo/lingo-gr.y"
+ case 117:
+#line 515 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
delete (yyvsp[(1) - (1)].s); ;}
break;
- case 115:
-#line 503 "engines/director/lingo/lingo-gr.y"
+ case 118:
+#line 518 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 116:
-#line 506 "engines/director/lingo/lingo-gr.y"
+ case 119:
+#line 521 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 117:
-#line 509 "engines/director/lingo/lingo-gr.y"
+ case 120:
+#line 524 "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 118:
-#line 513 "engines/director/lingo/lingo-gr.y"
+ case 121:
+#line 528 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
break;
- case 119:
-#line 514 "engines/director/lingo/lingo-gr.y"
+ case 122:
+#line 529 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;}
break;
- case 120:
-#line 515 "engines/director/lingo/lingo-gr.y"
+ case 123:
+#line 530 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;}
break;
- case 121:
-#line 516 "engines/director/lingo/lingo-gr.y"
+ case 124:
+#line 531 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;}
break;
- case 122:
-#line 517 "engines/director/lingo/lingo-gr.y"
+ case 125:
+#line 532 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_open); ;}
break;
- case 123:
-#line 518 "engines/director/lingo/lingo-gr.y"
+ case 126:
+#line 533 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;}
break;
- case 124:
-#line 519 "engines/director/lingo/lingo-gr.y"
+ case 127:
+#line 534 "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 125:
-#line 522 "engines/director/lingo/lingo-gr.y"
+ case 128:
+#line 537 "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 126:
-#line 523 "engines/director/lingo/lingo-gr.y"
+ case 129:
+#line 538 "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 127:
-#line 526 "engines/director/lingo/lingo-gr.y"
+ case 130:
+#line 541 "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 128:
-#line 527 "engines/director/lingo/lingo-gr.y"
+ case 131:
+#line 542 "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 129:
-#line 530 "engines/director/lingo/lingo-gr.y"
+ case 132:
+#line 545 "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 130:
-#line 531 "engines/director/lingo/lingo-gr.y"
+ case 133:
+#line 546 "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 131:
-#line 542 "engines/director/lingo/lingo-gr.y"
+ case 134:
+#line 557 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_gotoloop); ;}
break;
- case 132:
-#line 543 "engines/director/lingo/lingo-gr.y"
+ case 135:
+#line 558 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_gotonext); ;}
break;
- case 133:
-#line 544 "engines/director/lingo/lingo-gr.y"
+ case 136:
+#line 559 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_gotoprevious); ;}
break;
- case 134:
-#line 545 "engines/director/lingo/lingo-gr.y"
+ case 137:
+#line 560 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(1);
g_lingo->code1(g_lingo->c_goto); ;}
break;
- case 135:
-#line 549 "engines/director/lingo/lingo-gr.y"
+ case 138:
+#line 564 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(3);
g_lingo->code1(g_lingo->c_goto); ;}
break;
- case 136:
-#line 553 "engines/director/lingo/lingo-gr.y"
+ case 139:
+#line 568 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(2);
g_lingo->code1(g_lingo->c_goto); ;}
break;
- case 141:
-#line 567 "engines/director/lingo/lingo-gr.y"
+ case 144:
+#line 582 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(g_lingo->c_playdone); ;}
break;
- case 142:
-#line 568 "engines/director/lingo/lingo-gr.y"
+ case 145:
+#line 583 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(1);
g_lingo->code1(g_lingo->c_play); ;}
break;
- case 143:
-#line 572 "engines/director/lingo/lingo-gr.y"
+ case 146:
+#line 587 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(3);
g_lingo->code1(g_lingo->c_play); ;}
break;
- case 144:
-#line 576 "engines/director/lingo/lingo-gr.y"
+ case 147:
+#line 591 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_intpush);
g_lingo->codeInt(2);
g_lingo->code1(g_lingo->c_play); ;}
break;
- case 145:
-#line 580 "engines/director/lingo/lingo-gr.y"
+ case 148:
+#line 595 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeSetImmediate(true); ;}
break;
- case 146:
-#line 580 "engines/director/lingo/lingo-gr.y"
+ case 149:
+#line 595 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeSetImmediate(false);
g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;}
break;
- case 147:
-#line 610 "engines/director/lingo/lingo-gr.y"
+ case 150:
+#line 625 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;}
break;
- case 148:
-#line 611 "engines/director/lingo/lingo-gr.y"
+ case 151:
+#line 626 "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 149:
-#line 615 "engines/director/lingo/lingo-gr.y"
+ case 152:
+#line 630 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFactory(*(yyvsp[(2) - (2)].s));
;}
break;
- case 150:
-#line 618 "engines/director/lingo/lingo-gr.y"
+ case 153:
+#line 633 "engines/director/lingo/lingo-gr.y"
{ g_lingo->_indef = true; ;}
break;
- case 151:
-#line 619 "engines/director/lingo/lingo-gr.y"
+ case 154:
+#line 634 "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 152:
-#line 623 "engines/director/lingo/lingo-gr.y"
+ case 155:
+#line 638 "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));
@@ -3014,8 +3038,8 @@ yyreduce:
;}
break;
- case 153:
-#line 631 "engines/director/lingo/lingo-gr.y"
+ case 156:
+#line 646 "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));
@@ -3024,38 +3048,38 @@ yyreduce:
;}
break;
- case 154:
-#line 638 "engines/director/lingo/lingo-gr.y"
+ case 157:
+#line 653 "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 155:
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 158:
+#line 655 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; ;}
break;
- case 156:
-#line 641 "engines/director/lingo/lingo-gr.y"
+ case 159:
+#line 656 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}
break;
- case 157:
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 160:
+#line 657 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
- case 158:
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 161:
+#line 658 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}
break;
- case 159:
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 162:
+#line 661 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArgStore(); ;}
break;
- case 160:
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 163:
+#line 665 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(g_lingo->c_call);
g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str());
@@ -3064,34 +3088,34 @@ yyreduce:
g_lingo->code1(numpar); ;}
break;
- case 161:
-#line 658 "engines/director/lingo/lingo-gr.y"
+ case 164:
+#line 673 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; ;}
break;
- case 162:
-#line 659 "engines/director/lingo/lingo-gr.y"
+ case 165:
+#line 674 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; ;}
break;
- case 163:
-#line 660 "engines/director/lingo/lingo-gr.y"
+ case 166:
+#line 675 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
- case 164:
-#line 663 "engines/director/lingo/lingo-gr.y"
+ case 167:
+#line 678 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; ;}
break;
- case 165:
-#line 664 "engines/director/lingo/lingo-gr.y"
+ case 168:
+#line 679 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
/* Line 1267 of yacc.c. */
-#line 3095 "engines/director/lingo/lingo-gr.cpp"
+#line 3119 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3305,6 +3329,6 @@ yyreturn:
}
-#line 667 "engines/director/lingo/lingo-gr.y"
+#line 682 "engines/director/lingo/lingo-gr.y"
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 2e4d65e045..84c1550503 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -126,6 +126,21 @@ nl: '\n' {
g_lingo->_colnumber = 1;
}
+thennl: tTHENNL {
+ g_lingo->_linenumber++;
+ g_lingo->_colnumber = 1;
+ }
+
+nlelse: tNLELSE {
+ g_lingo->_linenumber++;
+ g_lingo->_colnumber = 5;
+ }
+
+nlelsif: tNLELSIF {
+ g_lingo->_linenumber++;
+ g_lingo->_colnumber = 8;
+ }
+
programline: /* empty */
| defn
| macro
@@ -252,7 +267,7 @@ stmt: stmtoneliner
}
;
-ifstmt: if cond tTHENNL stmtlist end ENDCLAUSE {
+ifstmt: if cond thennl stmtlist end ENDCLAUSE {
inst then = 0, end = 0;
WRITE_UINT32(&then, $4 - $1);
WRITE_UINT32(&end, $5 - $1);
@@ -262,7 +277,7 @@ ifstmt: if cond tTHENNL stmtlist end ENDCLAUSE {
checkEnd($6, "if", true);
g_lingo->processIf(0, 0); }
- | if cond tTHENNL stmtlist end tNLELSE stmtlist end ENDCLAUSE {
+ | if cond thennl stmtlist end nlelse stmtlist end ENDCLAUSE {
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, $4 - $1);
WRITE_UINT32(&else1, $7 - $1);
@@ -274,7 +289,7 @@ ifstmt: if cond tTHENNL stmtlist end ENDCLAUSE {
checkEnd($9, "if", true);
g_lingo->processIf(0, 0); }
- | if cond tTHENNL stmtlist end begin elseifstmt end ENDCLAUSE {
+ | if cond thennl stmtlist end begin elseifstmt end ENDCLAUSE {
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, $4 - $1);
WRITE_UINT32(&else1, $6 - $1);
@@ -286,7 +301,7 @@ 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 {
+ | if cond thennl stmtlist end nlelse begin stmtoneliner end {
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, $4 - $1);
WRITE_UINT32(&else1, $7 - $1);
@@ -306,7 +321,7 @@ ifstmt: if cond tTHENNL stmtlist end ENDCLAUSE {
(*g_lingo->_currentScript)[$1 + 3] = end; /* end, if cond fails */
g_lingo->processIf(0, 0); }
- | if cond tTHEN begin stmtoneliner end tNLELSE begin stmtoneliner end {
+ | if cond tTHEN begin stmtoneliner end nlelse begin stmtoneliner end {
inst then = 0, else1 = 0, end = 0;
WRITE_UINT32(&then, $4 - $1);
WRITE_UINT32(&else1, $8 - $1);
@@ -329,7 +344,7 @@ ifstmt: if cond tTHENNL stmtlist end ENDCLAUSE {
;
elsestmtoneliner: /* nothing */ { $$ = 0; }
- | tNLELSE begin stmtoneliner { $$ = $2; }
+ | nlelse begin stmtoneliner { $$ = $2; }
;
elseifstmt: elseifstmt elseifstmt1
@@ -379,7 +394,7 @@ if: tIF {
g_lingo->codeLabel(0); } // Mark beginning of the if() statement
;
-elseif: tNLELSIF {
+elseif: nlelsif {
inst skipEnd;
WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions
$$ = g_lingo->code1(g_lingo->c_ifcode);