diff options
Diffstat (limited to 'engines/director')
-rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 1314 | ||||
-rw-r--r-- | engines/director/lingo/lingo-gr.y | 29 |
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); |