diff options
author | Eugene Sandulenko | 2019-12-04 01:20:39 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2019-12-05 01:35:52 +0100 |
commit | 38cd13cdb492d15f40f6e991f9fda96195e90937 (patch) | |
tree | 15fa6154aa76a1f29cac3bba6c85a85ac26bb4ac /engines/director | |
parent | 6c706037e4aae7471341973b27fb7a85b3668932 (diff) | |
download | scummvm-rg350-38cd13cdb492d15f40f6e991f9fda96195e90937.tar.gz scummvm-rg350-38cd13cdb492d15f40f6e991f9fda96195e90937.tar.bz2 scummvm-rg350-38cd13cdb492d15f40f6e991f9fda96195e90937.zip |
DIRECTOR: LINGO: Simplify 'if' statement parser
Diffstat (limited to 'engines/director')
-rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 1583 | ||||
-rw-r--r-- | engines/director/lingo/lingo-gr.y | 50 |
2 files changed, 776 insertions, 857 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index 582d6ff834..3b7f90e84c 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -544,16 +544,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 128 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1946 +#define YYLAST 1789 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 107 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 43 +#define YYNNTS 41 /* YYNRULES -- Number of rules. */ -#define YYNRULES 171 +#define YYNRULES 166 /* YYNRULES -- Number of states. */ -#define YYNSTATES 388 +#define YYNSTATES 380 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -610,94 +610,91 @@ static const yytype_uint16 yyprhs[] = 0, 0, 3, 7, 9, 12, 13, 15, 17, 22, 27, 32, 37, 42, 47, 52, 57, 63, 69, 71, 73, 75, 77, 79, 85, 96, 108, 112, 119, 124, - 127, 129, 132, 134, 141, 143, 150, 157, 164, 174, - 181, 192, 202, 211, 219, 229, 236, 244, 250, 255, - 258, 262, 264, 266, 267, 268, 270, 273, 276, 280, - 282, 284, 286, 288, 290, 292, 294, 296, 298, 301, - 304, 309, 314, 316, 319, 321, 325, 329, 333, 337, - 341, 345, 349, 353, 357, 361, 365, 369, 373, 376, - 380, 384, 388, 392, 395, 398, 402, 406, 411, 416, - 421, 428, 433, 440, 445, 452, 457, 464, 466, 469, - 472, 474, 476, 479, 481, 484, 487, 490, 492, 495, - 498, 500, 503, 508, 513, 520, 525, 528, 532, 534, - 538, 540, 544, 546, 550, 553, 556, 559, 562, 566, - 569, 572, 574, 578, 581, 584, 587, 591, 594, 595, - 599, 600, 609, 612, 613, 622, 631, 638, 641, 642, - 644, 648, 653, 654, 656, 660, 661, 664, 665, 667, - 671, 673 + 131, 141, 148, 159, 169, 178, 186, 189, 191, 198, + 205, 215, 223, 229, 234, 237, 241, 243, 245, 246, + 247, 249, 252, 255, 259, 261, 263, 265, 267, 269, + 271, 273, 275, 277, 280, 283, 288, 293, 295, 298, + 300, 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, 445, 448, 451, 453, 455, 458, 460, + 463, 466, 469, 471, 474, 477, 479, 482, 487, 492, + 499, 504, 507, 511, 513, 517, 519, 523, 525, 529, + 532, 535, 538, 541, 545, 548, 551, 553, 557, 560, + 563, 566, 570, 573, 574, 578, 579, 588, 591, 592, + 601, 610, 617, 620, 621, 623, 627, 632, 633, 635, + 639, 640, 643, 644, 646, 650, 652 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 108, 0, -1, 108, 99, 109, -1, 109, -1, 1, - 99, -1, -1, 140, -1, 112, -1, 51, 129, 44, - 30, -1, 51, 129, 44, 130, -1, 51, 129, 77, - 129, -1, 51, 129, 78, 129, -1, 53, 30, 71, - 129, -1, 53, 15, 71, 129, -1, 53, 30, 56, - 129, -1, 53, 15, 56, 129, -1, 53, 16, 129, - 56, 129, -1, 53, 16, 128, 71, 129, -1, 147, - -1, 129, -1, 131, -1, 111, -1, 117, -1, 119, - 129, 125, 124, 34, -1, 120, 71, 129, 124, 56, - 129, 124, 125, 124, 34, -1, 120, 71, 129, 124, - 36, 56, 129, 124, 125, 124, 34, -1, 126, 111, - 124, -1, 127, 129, 99, 125, 124, 34, -1, 127, - 129, 56, 129, -1, 113, 116, -1, 116, -1, 114, - 115, -1, 115, -1, 122, 129, 54, 123, 112, 124, - -1, 114, -1, 122, 129, 54, 123, 125, 124, -1, - 122, 129, 55, 123, 125, 124, -1, 121, 129, 55, - 125, 124, 34, -1, 121, 129, 54, 123, 111, 124, - 37, 111, 124, -1, 121, 129, 54, 123, 111, 124, - -1, 121, 129, 54, 123, 111, 124, 113, 124, 118, - 124, -1, 121, 129, 55, 125, 124, 113, 124, 118, - 124, -1, 121, 129, 54, 123, 111, 124, 118, 124, - -1, 121, 129, 55, 125, 124, 118, 124, -1, 122, - 129, 54, 123, 111, 124, 37, 111, 124, -1, 122, - 129, 54, 123, 111, 124, -1, 122, 129, 55, 123, - 125, 124, 34, -1, 60, 123, 125, 124, 34, -1, - 60, 123, 111, 124, -1, 52, 59, -1, 52, 58, - 30, -1, 43, -1, 38, -1, -1, -1, 123, -1, - 125, 99, -1, 125, 112, -1, 57, 30, 54, -1, - 89, -1, 12, -1, 17, -1, 33, -1, 31, -1, - 30, -1, 128, -1, 130, -1, 25, -1, 26, 129, - -1, 27, 149, -1, 27, 100, 149, 101, -1, 30, - 100, 148, 101, -1, 15, -1, 16, 129, -1, 110, - -1, 129, 94, 129, -1, 129, 95, 129, -1, 129, - 96, 129, -1, 129, 97, 129, -1, 129, 76, 129, - -1, 129, 102, 129, -1, 129, 103, 129, -1, 129, - 71, 129, -1, 129, 72, 129, -1, 129, 67, 129, - -1, 129, 68, 129, -1, 129, 73, 129, -1, 129, - 74, 129, -1, 75, 129, -1, 129, 93, 129, -1, - 129, 79, 129, -1, 129, 80, 129, -1, 129, 81, - 129, -1, 94, 129, -1, 95, 129, -1, 100, 129, - 101, -1, 104, 148, 105, -1, 86, 129, 87, 129, - -1, 86, 129, 88, 129, -1, 82, 129, 49, 129, - -1, 82, 129, 56, 129, 49, 129, -1, 83, 129, - 49, 129, -1, 83, 129, 56, 129, 49, 129, -1, - 84, 129, 49, 129, -1, 84, 129, 56, 129, 49, - 129, -1, 85, 129, 49, 129, -1, 85, 129, 56, - 129, 49, 129, -1, 92, -1, 29, 129, -1, 51, - 129, -1, 135, -1, 138, -1, 39, 52, -1, 39, - -1, 41, 132, -1, 90, 133, -1, 66, 134, -1, - 19, -1, 21, 129, -1, 20, 129, -1, 20, -1, - 22, 149, -1, 22, 100, 149, 101, -1, 92, 100, - 30, 101, -1, 92, 100, 30, 106, 148, 101, -1, - 63, 129, 58, 129, -1, 63, 129, -1, 23, 30, - 148, -1, 30, -1, 132, 106, 30, -1, 30, -1, - 133, 106, 30, -1, 30, -1, 134, 106, 30, -1, - 42, 45, -1, 42, 48, -1, 42, 50, -1, 42, - 136, -1, 42, 136, 137, -1, 42, 137, -1, 40, - 129, -1, 129, -1, 49, 47, 129, -1, 47, 129, - -1, 64, 65, -1, 64, 136, -1, 64, 136, 137, - -1, 64, 137, -1, -1, 35, 139, 148, -1, -1, - 46, 30, 141, 123, 144, 99, 146, 125, -1, 61, - 30, -1, -1, 62, 30, 142, 123, 144, 99, 146, - 125, -1, 143, 123, 144, 99, 146, 125, 34, 145, - -1, 143, 123, 144, 99, 146, 125, -1, 91, 30, - -1, -1, 30, -1, 144, 106, 30, -1, 144, 99, - 106, 30, -1, -1, 30, -1, 145, 106, 30, -1, - -1, 30, 149, -1, -1, 129, -1, 148, 106, 129, - -1, 129, -1, 149, 106, 129, -1 + 99, -1, -1, 138, -1, 112, -1, 51, 127, 44, + 30, -1, 51, 127, 44, 128, -1, 51, 127, 77, + 127, -1, 51, 127, 78, 127, -1, 53, 30, 71, + 127, -1, 53, 15, 71, 127, -1, 53, 30, 56, + 127, -1, 53, 15, 56, 127, -1, 53, 16, 127, + 56, 127, -1, 53, 16, 126, 71, 127, -1, 145, + -1, 127, -1, 129, -1, 111, -1, 113, -1, 117, + 127, 123, 122, 34, -1, 118, 71, 127, 122, 56, + 127, 122, 123, 122, 34, -1, 118, 71, 127, 122, + 36, 56, 127, 122, 123, 122, 34, -1, 124, 111, + 122, -1, 125, 127, 99, 123, 122, 34, -1, 125, + 127, 56, 127, -1, 119, 127, 55, 123, 122, 34, + -1, 119, 127, 54, 121, 111, 122, 37, 111, 122, + -1, 119, 127, 54, 121, 111, 122, -1, 119, 127, + 54, 121, 111, 122, 114, 122, 116, 122, -1, 119, + 127, 55, 123, 122, 114, 122, 116, 122, -1, 119, + 127, 54, 121, 111, 122, 116, 122, -1, 119, 127, + 55, 123, 122, 116, 122, -1, 114, 115, -1, 115, + -1, 120, 127, 54, 121, 111, 122, -1, 120, 127, + 55, 121, 123, 122, -1, 120, 127, 54, 121, 111, + 122, 37, 111, 122, -1, 120, 127, 55, 121, 123, + 122, 34, -1, 60, 121, 123, 122, 34, -1, 60, + 121, 111, 122, -1, 52, 59, -1, 52, 58, 30, + -1, 43, -1, 38, -1, -1, -1, 121, -1, 123, + 99, -1, 123, 112, -1, 57, 30, 54, -1, 89, + -1, 12, -1, 17, -1, 33, -1, 31, -1, 30, + -1, 126, -1, 128, -1, 25, -1, 26, 127, -1, + 27, 147, -1, 27, 100, 147, 101, -1, 30, 100, + 146, 101, -1, 15, -1, 16, 127, -1, 110, -1, + 127, 94, 127, -1, 127, 95, 127, -1, 127, 96, + 127, -1, 127, 97, 127, -1, 127, 76, 127, -1, + 127, 102, 127, -1, 127, 103, 127, -1, 127, 71, + 127, -1, 127, 72, 127, -1, 127, 67, 127, -1, + 127, 68, 127, -1, 127, 73, 127, -1, 127, 74, + 127, -1, 75, 127, -1, 127, 93, 127, -1, 127, + 79, 127, -1, 127, 80, 127, -1, 127, 81, 127, + -1, 94, 127, -1, 95, 127, -1, 100, 127, 101, + -1, 104, 146, 105, -1, 86, 127, 87, 127, -1, + 86, 127, 88, 127, -1, 82, 127, 49, 127, -1, + 82, 127, 56, 127, 49, 127, -1, 83, 127, 49, + 127, -1, 83, 127, 56, 127, 49, 127, -1, 84, + 127, 49, 127, -1, 84, 127, 56, 127, 49, 127, + -1, 85, 127, 49, 127, -1, 85, 127, 56, 127, + 49, 127, -1, 92, -1, 29, 127, -1, 51, 127, + -1, 133, -1, 136, -1, 39, 52, -1, 39, -1, + 41, 130, -1, 90, 131, -1, 66, 132, -1, 19, + -1, 21, 127, -1, 20, 127, -1, 20, -1, 22, + 147, -1, 22, 100, 147, 101, -1, 92, 100, 30, + 101, -1, 92, 100, 30, 106, 146, 101, -1, 63, + 127, 58, 127, -1, 63, 127, -1, 23, 30, 146, + -1, 30, -1, 130, 106, 30, -1, 30, -1, 131, + 106, 30, -1, 30, -1, 132, 106, 30, -1, 42, + 45, -1, 42, 48, -1, 42, 50, -1, 42, 134, + -1, 42, 134, 135, -1, 42, 135, -1, 40, 127, + -1, 127, -1, 49, 47, 127, -1, 47, 127, -1, + 64, 65, -1, 64, 134, -1, 64, 134, 135, -1, + 64, 135, -1, -1, 35, 137, 146, -1, -1, 46, + 30, 139, 121, 142, 99, 144, 123, -1, 61, 30, + -1, -1, 62, 30, 140, 121, 142, 99, 144, 123, + -1, 141, 121, 142, 99, 144, 123, 34, 143, -1, + 141, 121, 142, 99, 144, 123, -1, 91, 30, -1, + -1, 30, -1, 142, 106, 30, -1, 142, 99, 106, + 30, -1, -1, 30, -1, 143, 106, 30, -1, -1, + 30, 147, -1, -1, 127, -1, 146, 106, 127, -1, + 127, -1, 147, 106, 127, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -706,21 +703,20 @@ static const yytype_uint16 yyrline[] = 0, 120, 120, 121, 122, 125, 126, 127, 130, 136, 139, 140, 141, 147, 154, 160, 167, 173, 181, 182, 183, 186, 187, 192, 205, 223, 237, 242, 245, 250, - 251, 254, 255, 258, 266, 267, 273, 281, 291, 302, - 312, 322, 332, 342, 356, 362, 368, 376, 380, 384, - 387, 394, 401, 409, 412, 415, 416, 417, 420, 426, - 430, 433, 436, 439, 442, 448, 449, 450, 453, 456, - 457, 458, 461, 469, 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, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 511, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 527, 530, - 533, 537, 538, 539, 540, 541, 542, 543, 546, 547, - 550, 551, 554, 555, 566, 567, 568, 569, 573, 577, - 583, 584, 587, 588, 591, 592, 596, 600, 604, 604, - 634, 634, 639, 640, 640, 645, 652, 658, 660, 661, - 662, 663, 666, 667, 668, 671, 675, 683, 684, 685, - 688, 689 + 260, 271, 281, 291, 301, 311, 324, 325, 328, 334, + 342, 348, 356, 360, 364, 367, 374, 381, 389, 392, + 395, 396, 397, 400, 406, 410, 413, 416, 419, 422, + 428, 429, 430, 433, 436, 437, 438, 441, 449, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 491, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 507, 510, 513, 517, 518, 519, 520, + 521, 522, 523, 526, 527, 530, 531, 534, 535, 546, + 547, 548, 549, 553, 557, 563, 564, 567, 568, 571, + 572, 576, 580, 584, 584, 614, 614, 619, 620, 620, + 625, 632, 638, 640, 641, 642, 643, 646, 647, 648, + 651, 655, 663, 664, 665, 668, 669 }; #endif @@ -745,13 +741,13 @@ static const char *const yytname[] = "tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tME", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'\\n'", "'('", "')'", "'>'", "'<'", "'['", "']'", "','", "$accept", - "program", "programline", "asgn", "stmtoneliner", "stmt", "elseifstmt", - "elseifstmtoneliner", "elseifstmtoneliner1", "elseifstmt1", "ifstmt", - "endifstmt", "repeatwhile", "repeatwith", "if", "elseif", "begin", "end", - "stmtlist", "when", "tell", "simpleexpr", "expr", "reference", "proc", - "globallist", "propertylist", "instancelist", "gotofunc", "gotoframe", - "gotomovie", "playfunc", "@1", "defn", "@2", "@3", "on", "argdef", - "endargdef", "argstore", "macro", "arglist", "nonemptyarglist", 0 + "program", "programline", "asgn", "stmtoneliner", "stmt", "ifstmt", + "elseifstmtlist", "elseifstmt", "endifstmt", "repeatwhile", "repeatwith", + "if", "elseif", "begin", "end", "stmtlist", "when", "tell", "simpleexpr", + "expr", "reference", "proc", "globallist", "propertylist", + "instancelist", "gotofunc", "gotoframe", "gotomovie", "playfunc", "@1", + "defn", "@2", "@3", "on", "argdef", "endargdef", "argstore", "macro", + "arglist", "nonemptyarglist", 0 }; #endif @@ -780,21 +776,20 @@ static const yytype_uint8 yyr1[] = 0, 107, 108, 108, 108, 109, 109, 109, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 111, 111, 112, 112, 112, 112, 112, 112, 112, 112, 113, - 113, 114, 114, 115, 116, 116, 116, 117, 117, 117, - 117, 117, 117, 117, 118, 118, 118, 118, 118, 119, - 120, 121, 122, 123, 124, 125, 125, 125, 126, 127, - 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, + 113, 113, 113, 113, 113, 113, 114, 114, 115, 115, + 116, 116, 116, 116, 117, 118, 119, 120, 121, 122, + 123, 123, 123, 124, 125, 126, 126, 126, 126, 126, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 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, 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, 145, 145, 146, 147, 148, 148, 148, - 149, 149 + 129, 129, 129, 130, 130, 131, 131, 132, 132, 133, + 133, 133, 133, 133, 133, 134, 134, 135, 135, 136, + 136, 136, 136, 137, 136, 139, 138, 138, 140, 138, + 138, 138, 141, 142, 142, 142, 142, 143, 143, 143, + 144, 145, 146, 146, 146, 147, 147 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -802,22 +797,21 @@ static const yytype_uint8 yyr2[] = { 0, 2, 3, 1, 2, 0, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 1, 1, - 1, 1, 1, 5, 10, 11, 3, 6, 4, 2, - 1, 2, 1, 6, 1, 6, 6, 6, 9, 6, - 10, 9, 8, 7, 9, 6, 7, 5, 4, 2, - 3, 1, 1, 0, 0, 1, 2, 2, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 4, 4, 1, 2, 1, 3, 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, 1, 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, 8, 6, 2, 0, 1, - 3, 4, 0, 1, 3, 0, 2, 0, 1, 3, - 1, 3 + 1, 1, 1, 5, 10, 11, 3, 6, 4, 6, + 9, 6, 10, 9, 8, 7, 2, 1, 6, 6, + 9, 7, 5, 4, 2, 3, 1, 1, 0, 0, + 1, 2, 2, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 4, 4, 1, 2, 1, + 3, 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, 1, 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, + 8, 6, 2, 0, 1, 3, 4, 0, 1, 3, + 0, 2, 0, 1, 3, 1, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -825,458 +819,421 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 60, 72, 0, 61, 117, 120, 0, 0, - 0, 67, 0, 0, 0, 64, 63, 62, 148, 113, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, - 0, 0, 107, 0, 0, 0, 167, 0, 3, 74, - 21, 7, 22, 0, 0, 0, 0, 0, 65, 19, - 66, 20, 110, 111, 6, 53, 18, 4, 64, 0, - 107, 73, 119, 118, 0, 170, 121, 167, 68, 0, - 69, 108, 167, 166, 167, 112, 128, 114, 0, 134, - 0, 135, 0, 136, 141, 137, 139, 150, 109, 0, - 49, 0, 0, 0, 0, 152, 153, 126, 144, 145, - 147, 132, 116, 88, 0, 0, 0, 0, 0, 130, - 115, 157, 0, 93, 94, 0, 168, 0, 1, 5, - 53, 0, 0, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 67, 0, 56, 112, 115, 0, 0, + 0, 62, 0, 0, 0, 59, 58, 57, 143, 108, + 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, + 0, 0, 102, 0, 0, 0, 162, 0, 3, 69, + 21, 7, 22, 0, 0, 0, 0, 0, 60, 19, + 61, 20, 105, 106, 6, 48, 18, 4, 59, 0, + 102, 68, 114, 113, 0, 165, 116, 162, 63, 0, + 64, 103, 162, 161, 162, 107, 123, 109, 0, 129, + 0, 130, 0, 131, 136, 132, 134, 145, 104, 0, + 44, 0, 0, 0, 0, 147, 148, 121, 139, 140, + 142, 127, 111, 83, 0, 0, 0, 0, 0, 125, + 110, 152, 0, 88, 89, 0, 163, 0, 1, 5, + 48, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 158, 167, 0, 170, 0, 0, 127, 0, - 168, 0, 149, 0, 140, 143, 0, 138, 53, 0, - 0, 0, 50, 0, 0, 65, 0, 0, 0, 58, - 53, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 95, 96, 0, 2, - 55, 54, 54, 53, 53, 26, 0, 53, 84, 85, - 82, 83, 86, 87, 79, 90, 91, 92, 89, 75, - 76, 77, 78, 80, 81, 159, 0, 122, 171, 70, - 71, 129, 142, 158, 8, 9, 10, 11, 15, 13, - 0, 0, 14, 12, 158, 125, 133, 99, 0, 101, - 0, 103, 0, 105, 0, 97, 98, 131, 123, 167, - 169, 56, 57, 0, 0, 0, 54, 28, 54, 165, + 0, 0, 153, 162, 0, 165, 0, 0, 122, 0, + 163, 0, 144, 0, 135, 138, 0, 133, 48, 0, + 0, 0, 45, 0, 0, 60, 0, 0, 0, 53, + 48, 0, 141, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 90, 91, 0, 2, + 50, 49, 49, 48, 48, 26, 0, 48, 79, 80, + 77, 78, 81, 82, 74, 85, 86, 87, 84, 70, + 71, 72, 73, 75, 76, 154, 0, 117, 166, 65, + 66, 124, 137, 153, 8, 9, 10, 11, 15, 13, + 0, 0, 14, 12, 153, 120, 128, 94, 0, 96, + 0, 98, 0, 100, 0, 92, 93, 126, 118, 162, + 164, 51, 52, 0, 0, 0, 49, 28, 49, 160, 0, 0, 17, 16, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 54, 0, 0, 0, 53, 160, 165, - 165, 100, 102, 104, 106, 124, 0, 54, 39, 37, - 52, 53, 54, 34, 32, 30, 54, 0, 27, 161, - 156, 53, 53, 54, 53, 0, 54, 54, 53, 29, - 0, 0, 31, 0, 43, 0, 162, 151, 154, 53, - 54, 54, 0, 42, 54, 54, 0, 54, 0, 0, - 53, 53, 163, 155, 54, 0, 38, 54, 48, 0, - 53, 53, 41, 0, 53, 53, 53, 0, 0, 24, - 40, 47, 53, 53, 53, 53, 0, 54, 54, 54, - 54, 164, 25, 54, 0, 53, 45, 33, 35, 36, - 36, 54, 54, 0, 46, 0, 54, 44 + 23, 0, 0, 49, 0, 0, 0, 48, 155, 160, + 160, 95, 97, 99, 101, 119, 0, 49, 31, 29, + 47, 48, 49, 37, 49, 0, 27, 156, 151, 48, + 48, 49, 48, 0, 49, 49, 48, 36, 0, 0, + 35, 0, 157, 146, 149, 48, 49, 49, 0, 34, + 49, 49, 0, 49, 0, 48, 48, 158, 150, 49, + 0, 30, 49, 43, 0, 48, 48, 33, 0, 0, + 48, 0, 0, 24, 32, 42, 0, 48, 48, 48, + 49, 49, 159, 25, 49, 49, 0, 48, 38, 39, + 38, 39, 49, 49, 0, 41, 0, 0, 49, 40 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 47, 48, 49, 50, 262, 302, 303, 304, 305, - 52, 306, 53, 54, 55, 307, 200, 376, 369, 56, - 57, 58, 59, 60, 61, 87, 120, 112, 62, 95, - 96, 63, 84, 64, 168, 180, 65, 226, 343, 287, - 66, 161, 76 + -1, 47, 48, 49, 50, 262, 52, 302, 303, 304, + 53, 54, 55, 305, 200, 205, 201, 56, 57, 58, + 59, 60, 61, 87, 120, 112, 62, 95, 96, 63, + 84, 64, 168, 180, 65, 226, 338, 287, 66, 161, + 76 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -288 +#define YYPACT_NINF -284 static const yytype_int16 yypact[] = { - 418, -80, -288, -288, 1050, -288, -288, 1050, 1050, 1090, - 23, -288, 1050, 1171, 1050, 1211, -288, -288, -288, -29, - 35, 929, -288, 82, 1050, 97, 92, 101, 119, 121, - 1050, 969, 132, 1050, 1050, 1050, 1050, 1050, 1050, -288, - 136, 139, 72, 1050, 1050, 1050, 1050, 2, -288, -288, - -288, -288, -288, 1050, 106, 1050, 848, 1050, -288, 1810, - -288, -288, -288, -288, -288, -288, -288, -288, 91, 1050, - -288, 1810, 1810, 1810, 1050, 1810, 86, 1050, 1810, 1050, - 86, 1810, 1050, 86, 1050, -288, -288, 87, 1050, -288, - 1050, -288, 150, -288, 1810, 76, -288, -288, 1245, 168, - -288, -8, 1050, 59, 145, -288, -288, 1707, -288, 76, - -288, -288, 94, -9, 1278, 1311, 1344, 1377, 1740, -288, - 95, -288, 172, -9, -9, 1773, 1810, 54, -288, 504, - 1810, 1050, 1509, -288, 1674, 1050, 1050, 1050, 1050, 1050, - 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, - 1050, 1050, 174, 1050, 1245, 1773, -84, 1050, 99, -45, - 1773, -42, 99, 176, 1810, 1810, 1050, -288, -288, 135, - 1050, 1050, -288, 1050, 1050, 138, 824, 1050, 1050, -288, - -288, 1050, -288, 177, 1050, 1050, 1050, 1050, 1050, 1050, - 1050, 1050, 1050, 1050, 178, 51, -288, -288, 1050, -288, - -288, 676, 1810, -288, -288, -288, 1050, -288, 137, 137, - 137, 137, 1843, 1843, -9, 1810, 137, 137, 204, -19, - -19, -9, -9, 1810, 1810, -288, -17, -288, 1810, -288, - -288, -288, 1810, 174, -288, -288, 1810, 1810, 1810, 137, - 1050, 1050, 1810, 137, 174, 1810, -288, 1810, 24, 1810, - 1410, 1810, 1443, 1810, 1476, 1810, 1810, -288, -288, 1050, - 1810, -288, -288, 180, 13, 848, 676, 1810, 676, 104, - 181, 7, 137, 1810, 10, 1050, 1050, 1050, 1050, 52, - -288, 159, 1050, -288, -14, 183, 192, -288, -288, 104, - 104, 1810, 1810, 1810, 1810, -288, 1050, 1810, 30, -288, - -288, -288, 185, 185, -288, -288, -288, 1050, -288, -288, - 590, -288, -288, 1810, -288, 848, 185, -288, 848, -288, - 1050, 50, -288, 1050, -288, 1542, 194, 676, 676, -288, - 676, -288, 50, -288, -288, 676, 1575, -288, 1050, 1641, - -288, -288, -288, 120, 676, 193, -288, -288, -288, 195, - -288, -288, -288, 1608, -288, 762, -288, 198, 201, -288, - -288, -288, 762, -288, -288, -288, 762, 64, -288, 676, - 676, -288, -288, 676, 848, -288, 205, -288, -288, 207, - -288, -288, 676, 848, -288, 207, -288, -288 + 380, -76, -284, -284, 926, -284, -284, 926, 926, 966, + 57, -284, 926, 1047, 926, 1087, -284, -284, -284, 29, + 65, 805, -284, 67, 926, 43, 44, 69, 77, 84, + 926, 845, 93, 926, 926, 926, 926, 926, 926, -284, + 95, 118, 54, 926, 926, 926, 926, 7, -284, -284, + -284, -284, -284, 926, 85, 926, 724, 926, -284, 1653, + -284, -284, -284, -284, -284, -284, -284, -284, 60, 926, + -284, 1653, 1653, 1653, 926, 1653, 58, 926, 1653, 926, + 58, 1653, 926, 58, 926, -284, -284, 59, 926, -284, + 926, -284, 114, -284, 1653, -25, -284, -284, 1121, 133, + -284, -2, 926, 8, 117, -284, -284, 1550, -284, -25, + -284, -284, 66, -36, 149, 1154, 1187, 1220, 1583, -284, + 70, -284, 145, -36, -36, 1616, 1653, -1, -284, 466, + 1653, 926, 1385, -284, 1517, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 926, 148, 926, 1121, 1616, -87, 926, 73, -49, + 1616, 23, 73, 162, 1653, 1653, 926, -284, -284, 92, + 926, 926, -284, 926, 926, 124, 700, 926, 926, -284, + -284, 926, -284, 166, 926, 926, 926, 926, 926, 926, + 926, 926, 926, 926, 169, 49, -284, -284, 926, -284, + -284, 638, 1653, -284, -284, -284, 926, -284, 15, 15, + 15, 15, 1686, 1686, -36, 1653, 15, 15, 262, -41, + -41, -36, -36, 1653, 1653, -284, -3, -284, 1653, -284, + -284, -284, 1653, 148, -284, -284, 1653, 1653, 1653, 15, + 926, 926, 1653, 15, 148, 1653, -284, 1653, 1253, 1653, + 1286, 1653, 1319, 1653, 1352, 1653, 1653, -284, -284, 926, + 1653, -284, -284, 167, 12, 724, 638, 1653, 638, 94, + 173, 14, 15, 1653, 20, 926, 926, 926, 926, 51, + -284, 151, 926, -284, -13, 170, 178, -284, -284, 94, + 94, 1653, 1653, 1653, 1653, -284, 926, 1653, 55, -284, + -284, -284, 171, -284, -284, 926, -284, -284, 552, -284, + -284, 1653, -284, 724, 171, -284, 724, -284, 926, -10, + -284, 1418, 180, 638, 638, -284, 638, -284, -10, -284, + -284, 638, 1451, -284, 926, -284, -284, -284, 106, 638, + 179, -284, -284, -284, 184, -284, -284, -284, 1484, 724, + -284, 194, 192, -284, -284, -284, 724, -284, -284, -284, + -284, 638, -284, -284, -284, 638, 724, -284, 190, 198, + -284, -284, -284, 638, 724, -284, 190, 198, -284, -284 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -288, -288, 114, -288, -53, 0, -52, -288, -56, -287, - -288, -285, -288, -288, -288, -277, -7, 43, -93, -288, - -288, 146, -3, 80, -288, -288, -288, -288, -288, 219, - -23, -288, -288, -288, -288, -288, -288, -182, -288, -110, - -288, -39, 1 + -284, -284, 104, -284, -54, 1, -284, -64, -231, -283, + -284, -284, -284, -256, -52, 13, -119, -284, -284, 137, + -4, 71, -284, -284, -284, -284, -284, 204, -19, -284, + -284, -284, -284, -284, -284, -144, -284, -131, -284, -40, + 3 }; /* 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 -22 +#define YYTABLE_NINF -6 static const yytype_int16 yytable[] = { - 51, 71, 128, 133, 72, 73, 75, 127, 110, 78, - 75, 81, 75, 317, 80, 319, 83, 227, 94, 67, - 299, 98, 157, 85, 300, 320, 323, 107, 94, 319, - 113, 114, 115, 116, 117, 118, 337, 201, 158, 320, - 123, 124, 125, 126, 338, 162, 301, 347, 173, 281, - 130, 271, 132, 77, 134, 338, 229, 141, 152, 230, - 142, 157, 274, 174, 198, 86, 154, 315, 300, 282, - 142, 155, 167, 275, 126, 156, 155, 148, 149, 160, - 159, 126, 269, 150, 151, 164, 182, 165, 300, 270, - 301, 135, 136, 150, 151, 137, 138, 139, 140, 176, - 141, 129, -21, 142, 143, 144, 289, 101, 102, 290, - 301, 266, 97, 270, 268, 177, 270, 145, 146, 147, - 148, 149, 103, 90, -21, 92, 150, 151, 202, 51, - 178, 104, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 105, - 126, 106, 258, 295, 228, 99, 100, 259, 198, 197, - 198, 233, 111, 232, 14, 234, 119, 236, 237, 121, - 238, 239, 122, 244, 242, 243, 205, 131, 245, 311, - 312, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 153, 157, 163, 310, 260, 265, 166, 172, 179, - 183, 194, 195, 267, 225, 198, 231, 246, 257, 240, - 286, 288, 283, 141, 280, 296, 142, 308, 327, 328, - 279, 330, 309, 300, 342, 335, 357, 359, 371, 361, - 145, 146, 147, 148, 149, 372, 344, 272, 273, 150, - 151, 384, 383, 199, 263, 264, 316, 322, 175, 235, - 109, 0, 0, 0, 0, 0, 126, 0, 0, 0, - 0, 0, 331, 370, 0, 334, 0, 0, 0, 0, - 373, 0, 291, 292, 293, 294, 0, 0, 0, 297, - 141, 0, 382, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 313, 318, 0, 0, 0, 146, 147, - 148, 149, 367, 0, 325, 0, 150, 151, 0, 284, - 0, 285, 0, 0, 0, 0, 0, 336, 0, 0, - 339, 381, 0, 0, 0, 0, 298, 0, 0, 0, - 386, 0, 0, 355, 356, 353, 0, 0, 0, 0, - 314, 0, 0, 362, 363, 321, 0, 366, 0, 324, - 0, 0, 0, 0, 0, 368, 329, 374, 375, 332, - 333, 0, 368, 0, 0, 0, 368, 0, 0, 0, - 0, 0, 0, 345, 346, 0, 0, 348, 349, 0, - 352, 0, 0, 0, 0, 0, 0, 358, 0, 0, - 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 377, 378, 379, 0, 0, 380, 0, -5, 1, - 0, 0, 0, 0, 0, 385, 0, 0, 0, 387, - 2, 0, 0, 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, 26, 0, 0, 0, 27, 0, 0, 0, 28, - 29, 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, 43, 44, 0, 0, 2, -5, 45, 3, - 4, 5, 46, 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, 26, 0, 0, - 0, 27, 0, 0, 0, 28, 29, 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, 43, 44, - 0, 0, 2, 0, 45, 3, 4, 5, 46, 6, + 71, 51, 133, 72, 73, 75, 127, 128, 78, 75, + 81, 75, 110, 152, 227, 315, 80, 94, 83, 157, + 98, 299, 90, 67, 92, 300, 107, 94, 300, 113, + 114, 115, 116, 117, 118, 141, 333, 158, 142, 123, + 124, 125, 126, 142, 162, 342, 318, 301, 281, 130, + 301, 132, 229, 134, 173, 148, 149, 157, 318, 101, + 102, 150, 151, 334, 177, 154, 150, 151, 282, 174, + 155, 317, 334, 126, 103, 155, 167, 156, 160, 178, + 126, 85, 159, 317, 164, 266, 165, 77, 268, 271, + 182, 141, 313, 300, 142, 86, 269, 97, 176, 104, + 274, 99, 100, 270, 197, 198, 129, 105, 145, 146, + 147, 148, 149, 289, 106, 301, 233, 150, 151, 290, + 270, 14, 234, 111, 230, 119, 270, 202, 244, 198, + 51, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 121, 126, + 258, 265, 295, 228, 122, 259, 131, 198, 309, 310, + 153, 166, 232, 172, 157, 163, 236, 237, 308, 238, + 239, 179, 183, 242, 243, 195, 194, 245, 225, 198, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 323, 324, 231, 326, 260, 240, 246, 331, 184, 257, + 286, 280, 267, 288, 306, 185, 339, 296, 307, 300, + 337, 283, 351, 353, 263, 264, 135, 136, 355, 279, + 137, 138, 139, 140, 362, 141, 363, 374, 142, 143, + 144, 361, 375, 199, 314, 109, 272, 273, 365, 175, + 235, 0, 145, 146, 147, 148, 149, 0, 373, 316, + 0, 150, 151, 0, 0, 126, 0, 0, 0, 327, + 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, + 0, 291, 292, 293, 294, 0, 0, 0, 297, 284, + 0, 285, 0, 349, 350, 0, 0, 0, 0, 0, + 0, 0, 311, 356, 357, 360, 298, 0, 0, 0, + 0, 321, 364, 0, 0, 0, 366, 367, 0, 0, + 312, 0, 372, 0, 332, 319, 0, 320, 0, 0, + 378, 0, 0, 0, 325, 0, 0, 328, 329, 0, + 348, 0, 0, 0, 0, 0, 0, 0, 141, 340, + 341, 142, 0, 343, 344, 0, 347, 0, 0, 0, + 0, 0, 352, 0, 0, 354, 146, 147, 148, 149, + 0, 0, 0, 0, 150, 151, 0, 0, 0, 0, + 0, 0, 0, 368, 369, 0, 0, 370, 371, 0, + -5, 1, 0, 0, 0, 376, 377, 0, 0, 0, + 0, 379, 2, 0, 0, 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, 11, 12, 13, 0, 14, - 15, 16, 0, 17, 326, 18, 0, 0, 0, 19, - 0, 20, 21, 22, 0, 0, 0, 0, 0, 0, + 15, 16, 0, 17, 0, 18, 0, 0, 0, 19, + 0, 20, 21, 22, 0, 0, 23, 0, 0, 0, 0, 24, 25, 26, 0, 0, 0, 27, 0, 0, - 0, 0, 0, 30, 31, 0, 32, 0, 0, 0, + 0, 28, 29, 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, 0, 42, 0, 43, 44, 0, 0, 2, 261, + 40, 41, 42, 0, 43, 44, 0, 0, 2, -5, 45, 3, 4, 5, 46, 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, 0, 0, 0, 0, 0, 24, 25, 26, - 0, 0, 0, 27, 0, 0, 0, 0, 0, 30, + 0, 0, 23, 0, 0, 0, 0, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 0, 28, 29, 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, 0, 42, 0, - 43, 44, 0, 0, 2, 261, 45, 3, 4, 5, + 36, 37, 38, 0, 0, 39, 40, 41, 42, 0, + 43, 44, 0, 0, 2, 0, 45, 3, 4, 5, 46, 6, 7, 8, 9, 10, 0, 11, 12, 13, - 0, 14, 15, 16, 0, 17, 0, 18, 0, 0, + 0, 14, 15, 16, 0, 17, 322, 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, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, 39, 40, 0, 42, 0, 43, 44, 0, 0, - 2, 0, 45, 3, 4, 5, 46, 6, 7, 8, + 2, 261, 45, 3, 4, 5, 46, 6, 7, 8, 9, 10, 0, 11, 12, 13, 0, 14, 15, 16, - 241, 17, 0, 18, 0, 0, 0, 19, 0, 20, - 21, 135, 136, 0, 0, 137, 138, 139, 140, 24, - 141, 26, 0, 142, 143, 144, 0, 0, 0, 0, - 0, 30, 31, 0, 32, 0, 0, 145, 146, 147, - 148, 149, 0, 33, 0, 0, 150, 151, 0, 0, - 34, 35, 36, 37, 38, 0, 0, 0, 40, 0, - 42, 2, 43, 44, 3, 4, 5, 0, 45, 0, - 0, 0, 46, 0, 11, 12, 13, 0, 14, 68, - 16, 0, 17, 0, 0, 0, 0, 0, 0, 88, - 0, 0, 0, 0, 89, 0, 90, 91, 92, 93, - 69, 2, 26, 0, 3, 4, 5, 0, 0, 0, - 0, 0, 0, 0, 11, 12, 13, 0, 14, 68, - 16, 0, 17, 0, 33, 0, 0, 0, 0, 88, - 0, 34, 35, 36, 37, 38, 90, 0, 92, 0, - 69, 70, 26, 43, 44, 0, 0, 0, 0, 45, - 0, 0, 0, 46, 108, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 34, 35, 36, 37, 38, 0, 0, 0, 0, - 0, 70, 2, 43, 44, 3, 4, 5, 0, 45, - 0, 0, 0, 46, 0, 11, 12, 13, 0, 14, - 68, 16, 0, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 69, 2, 26, 0, 3, 4, 5, 0, 0, - 0, 0, 0, 0, 0, 11, 12, 13, 0, 14, - 68, 16, 0, 17, 0, 33, 0, 0, 0, 0, - 0, 0, 34, 35, 36, 37, 38, 0, 0, 0, - 0, 69, 70, 26, 43, 44, 0, 0, 0, 0, - 45, 0, 0, 0, 46, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, - 0, 0, 34, 35, 36, 37, 38, 0, 0, 0, - 0, 0, 70, 2, 43, 44, 3, 4, 5, 0, - 74, 0, 0, 0, 46, 0, 11, 12, 13, 0, - 14, 68, 16, 0, 17, 0, 0, 0, 0, 0, + 0, 17, 0, 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, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 34, 35, 36, 37, 38, 0, 0, 39, 40, 0, + 42, 0, 43, 44, 0, 0, 2, 261, 45, 3, + 4, 5, 46, 6, 7, 8, 9, 10, 0, 11, + 12, 13, 0, 14, 15, 16, 241, 17, 0, 18, + 0, 0, 0, 19, 0, 20, 21, 135, 136, 0, + 0, 137, 138, 139, 140, 24, 141, 26, 0, 142, + 143, 144, 0, 0, 0, 0, 0, 30, 31, 0, + 32, 0, 0, 145, 146, 147, 148, 149, 0, 33, + 0, 0, 150, 151, 0, 0, 34, 35, 36, 37, + 38, 0, 0, 0, 40, 0, 42, 2, 43, 44, + 3, 4, 5, 0, 45, 0, 0, 0, 46, 0, + 11, 12, 13, 0, 14, 68, 16, 0, 17, 0, + 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, + 89, 0, 90, 91, 92, 93, 69, 2, 26, 0, + 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, + 11, 12, 13, 0, 14, 68, 16, 0, 17, 0, + 33, 0, 0, 0, 0, 88, 0, 34, 35, 36, + 37, 38, 90, 0, 92, 0, 69, 70, 26, 43, + 44, 0, 0, 0, 0, 45, 0, 0, 0, 46, + 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 34, 35, 36, + 37, 38, 0, 0, 0, 0, 0, 70, 2, 43, + 44, 3, 4, 5, 0, 45, 0, 0, 0, 46, + 0, 11, 12, 13, 0, 14, 68, 16, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 69, 2, 26, 0, 3, 4, 5, 0, - 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, - 14, 68, 16, 0, 17, 0, 33, 0, 0, 0, - 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, - 0, 0, 69, 70, 26, 43, 44, 0, 0, 0, - 0, 79, 0, 0, 0, 46, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 0, 169, - 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, - 0, 0, 0, 70, 0, 43, 44, 0, 0, 0, - 0, 82, 135, 136, 0, 46, 137, 138, 139, 140, - 0, 141, 170, 171, 142, 143, 144, 184, 0, 0, - 0, 0, 0, 0, 185, 0, 0, 0, 145, 146, - 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, - 138, 139, 140, 0, 141, 0, 0, 142, 143, 144, - 186, 0, 0, 0, 0, 0, 0, 187, 0, 0, - 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, - 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, - 142, 143, 144, 188, 0, 0, 0, 0, 0, 0, - 189, 0, 0, 0, 145, 146, 147, 148, 149, 0, + 0, 0, 0, 0, 0, 0, 0, 69, 2, 26, + 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, + 0, 11, 12, 13, 0, 14, 68, 16, 0, 17, + 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, + 36, 37, 38, 0, 0, 0, 0, 69, 70, 26, + 43, 44, 0, 0, 0, 0, 45, 0, 0, 0, + 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, + 36, 37, 38, 0, 0, 0, 0, 0, 70, 2, + 43, 44, 3, 4, 5, 0, 74, 0, 0, 0, + 46, 0, 11, 12, 13, 0, 14, 68, 16, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 69, 2, + 26, 0, 3, 4, 5, 0, 0, 0, 0, 0, + 0, 0, 11, 12, 13, 0, 14, 68, 16, 0, + 17, 0, 33, 0, 0, 0, 0, 0, 0, 34, + 35, 36, 37, 38, 0, 0, 0, 0, 69, 70, + 26, 43, 44, 0, 0, 0, 0, 79, 0, 0, + 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 169, 0, 0, 0, 34, + 35, 36, 37, 38, 0, 0, 0, 0, 0, 70, + 0, 43, 44, 0, 0, 0, 0, 82, 135, 136, + 0, 46, 137, 138, 139, 140, 0, 141, 170, 171, + 142, 143, 144, 186, 0, 0, 0, 0, 0, 0, + 187, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, - 141, 0, 0, 142, 143, 144, 190, 0, 0, 0, - 0, 0, 0, 191, 0, 0, 0, 145, 146, 147, + 141, 0, 0, 142, 143, 144, 188, 0, 0, 0, + 0, 0, 0, 189, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, - 139, 140, 0, 141, 0, 0, 142, 143, 144, 276, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 139, 140, 0, 141, 0, 0, 142, 143, 144, 190, + 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, 142, - 143, 144, 277, 0, 0, 0, 0, 0, 0, 0, + 143, 144, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, - 0, 0, 142, 143, 144, 278, 0, 0, 0, 0, + 0, 0, 142, 143, 144, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, - 140, 0, 141, 0, 0, 142, 143, 144, 0, 0, - 0, 0, 0, 203, 204, 0, 0, 0, 0, 145, + 140, 0, 141, 0, 0, 142, 143, 144, 277, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, 142, 143, - 144, 0, 0, 0, 0, 0, 340, 341, 0, 0, + 144, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, - 0, 142, 143, 144, 0, 0, 0, 0, 0, 350, - 351, 0, 0, 0, 0, 145, 146, 147, 148, 149, + 0, 142, 143, 144, 0, 0, 0, 0, 0, 203, + 204, 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, 142, 143, 144, 0, 0, 0, - 0, 0, 364, 365, 0, 0, 0, 0, 145, 146, + 0, 0, 335, 336, 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, 142, 143, 144, - 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 345, 346, 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, - 142, 143, 144, 0, 0, 0, 0, 0, 0, 0, - 206, 0, 0, 0, 145, 146, 147, 148, 149, 0, + 142, 143, 144, 0, 0, 0, 0, 0, 358, 359, + 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, 142, 143, 144, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 181, 0, 145, 146, 147, - 148, 149, 0, 207, 135, 136, 150, 151, 137, 138, + 0, 0, 0, 206, 0, 0, 0, 145, 146, 147, + 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, + 145, 146, 147, 148, 149, 0, 207, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, 142, - 143, 144, 0, 0, 0, 0, 0, 192, 193, 0, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, 140, 0, 141, 0, 0, 142, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, - 149, 0, 0, 0, 196, 150, 151, 135, 136, 0, - 0, 137, 138, 139, 140, 0, 141, 0, 0, 142, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 145, 146, 147, 148, 149, 0, 0, - 135, 136, 150, 151, 137, 138, 0, 0, 0, 141, + 192, 193, 0, 0, 0, 0, 145, 146, 147, 148, + 149, 0, 0, 135, 136, 150, 151, 137, 138, 139, + 140, 0, 141, 0, 0, 142, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, + 146, 147, 148, 149, 0, 0, 0, 196, 150, 151, + 135, 136, 0, 0, 137, 138, 139, 140, 0, 141, 0, 0, 142, 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, - 149, 0, 0, 0, 0, 150, 151 + 149, 0, 0, 135, 136, 150, 151, 137, 138, 0, + 0, 0, 141, 0, 0, 142, 143, 144, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, + 146, 147, 148, 149, 0, 0, 0, 0, 150, 151 }; static const yytype_int16 yycheck[] = { - 0, 4, 0, 56, 7, 8, 9, 46, 31, 12, - 13, 14, 15, 298, 13, 302, 15, 101, 21, 99, - 34, 24, 106, 52, 38, 302, 303, 30, 31, 316, - 33, 34, 35, 36, 37, 38, 321, 130, 77, 316, - 43, 44, 45, 46, 321, 84, 60, 332, 56, 36, - 53, 233, 55, 30, 57, 332, 101, 76, 65, 101, - 79, 106, 244, 71, 106, 30, 69, 37, 38, 56, - 79, 74, 95, 49, 77, 74, 79, 96, 97, 82, - 79, 84, 99, 102, 103, 88, 109, 90, 38, 106, - 60, 67, 68, 102, 103, 71, 72, 73, 74, 102, - 76, 99, 38, 79, 80, 81, 99, 15, 16, 99, - 60, 204, 30, 106, 207, 56, 106, 93, 94, 95, - 96, 97, 30, 47, 60, 49, 102, 103, 131, 129, - 71, 30, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 30, - 153, 30, 101, 101, 157, 58, 59, 106, 106, 105, - 106, 168, 30, 166, 29, 30, 30, 170, 171, 30, - 173, 174, 100, 180, 177, 178, 133, 71, 181, 289, - 290, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 100, 106, 106, 287, 198, 203, 47, 30, 54, - 106, 106, 30, 206, 30, 106, 30, 30, 30, 71, - 106, 30, 265, 76, 34, 56, 79, 34, 311, 312, - 259, 314, 30, 38, 30, 318, 106, 34, 30, 34, - 93, 94, 95, 96, 97, 34, 329, 240, 241, 102, - 103, 34, 37, 129, 201, 202, 298, 303, 102, 169, - 31, -1, -1, -1, -1, -1, 259, -1, -1, -1, - -1, -1, 315, 356, -1, 318, -1, -1, -1, -1, - 363, -1, 275, 276, 277, 278, -1, -1, -1, 282, - 76, -1, 375, 79, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 296, 301, -1, -1, -1, 94, 95, - 96, 97, 355, -1, 307, -1, 102, 103, -1, 266, - -1, 268, -1, -1, -1, -1, -1, 320, -1, -1, - 323, 374, -1, -1, -1, -1, 283, -1, -1, -1, - 383, -1, -1, 340, 341, 338, -1, -1, -1, -1, - 297, -1, -1, 350, 351, 302, -1, 354, -1, 306, - -1, -1, -1, -1, -1, 355, 313, 364, 365, 316, - 317, -1, 362, -1, -1, -1, 366, -1, -1, -1, - -1, -1, -1, 330, 331, -1, -1, 334, 335, -1, - 337, -1, -1, -1, -1, -1, -1, 344, -1, -1, - 347, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 368, 369, 370, -1, -1, 373, -1, 0, 1, - -1, -1, -1, -1, -1, 382, -1, -1, -1, 386, - 12, -1, -1, 15, 16, 17, -1, 19, 20, 21, - 22, 23, -1, 25, 26, 27, -1, 29, 30, 31, - -1, 33, -1, 35, -1, -1, -1, 39, -1, 41, - 42, 43, -1, -1, 46, -1, -1, -1, -1, 51, - 52, 53, -1, -1, -1, 57, -1, -1, -1, 61, - 62, 63, 64, -1, 66, -1, -1, -1, -1, -1, - -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, - 82, 83, 84, 85, 86, -1, -1, 89, 90, 91, - 92, -1, 94, 95, -1, -1, 12, 99, 100, 15, - 16, 17, 104, 19, 20, 21, 22, 23, -1, 25, - 26, 27, -1, 29, 30, 31, -1, 33, -1, 35, - -1, -1, -1, 39, -1, 41, 42, 43, -1, -1, - 46, -1, -1, -1, -1, 51, 52, 53, -1, -1, - -1, 57, -1, -1, -1, 61, 62, 63, 64, -1, - 66, -1, -1, -1, -1, -1, -1, -1, -1, 75, - -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, - 86, -1, -1, 89, 90, 91, 92, -1, 94, 95, - -1, -1, 12, -1, 100, 15, 16, 17, 104, 19, + 4, 0, 56, 7, 8, 9, 46, 0, 12, 13, + 14, 15, 31, 65, 101, 298, 13, 21, 15, 106, + 24, 34, 47, 99, 49, 38, 30, 31, 38, 33, + 34, 35, 36, 37, 38, 76, 319, 77, 79, 43, + 44, 45, 46, 79, 84, 328, 302, 60, 36, 53, + 60, 55, 101, 57, 56, 96, 97, 106, 314, 15, + 16, 102, 103, 319, 56, 69, 102, 103, 56, 71, + 74, 302, 328, 77, 30, 79, 95, 74, 82, 71, + 84, 52, 79, 314, 88, 204, 90, 30, 207, 233, + 109, 76, 37, 38, 79, 30, 99, 30, 102, 30, + 244, 58, 59, 106, 105, 106, 99, 30, 93, 94, + 95, 96, 97, 99, 30, 60, 168, 102, 103, 99, + 106, 29, 30, 30, 101, 30, 106, 131, 180, 106, + 129, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 30, 153, + 101, 203, 101, 157, 100, 106, 71, 106, 289, 290, + 100, 47, 166, 30, 106, 106, 170, 171, 287, 173, + 174, 54, 106, 177, 178, 30, 106, 181, 30, 106, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 309, 310, 30, 312, 198, 71, 30, 316, 49, 30, + 106, 34, 206, 30, 34, 56, 325, 56, 30, 38, + 30, 265, 106, 34, 201, 202, 67, 68, 34, 259, + 71, 72, 73, 74, 30, 76, 34, 37, 79, 80, + 81, 350, 34, 129, 298, 31, 240, 241, 357, 102, + 169, -1, 93, 94, 95, 96, 97, -1, 367, 301, + -1, 102, 103, -1, -1, 259, -1, -1, -1, 313, + -1, -1, 316, -1, -1, -1, -1, -1, -1, -1, + -1, 275, 276, 277, 278, -1, -1, -1, 282, 266, + -1, 268, -1, 335, 336, -1, -1, -1, -1, -1, + -1, -1, 296, 345, 346, 349, 283, -1, -1, -1, + -1, 305, 356, -1, -1, -1, 358, 359, -1, -1, + 297, -1, 366, -1, 318, 302, -1, 304, -1, -1, + 374, -1, -1, -1, 311, -1, -1, 314, 315, -1, + 334, -1, -1, -1, -1, -1, -1, -1, 76, 326, + 327, 79, -1, 330, 331, -1, 333, -1, -1, -1, + -1, -1, 339, -1, -1, 342, 94, 95, 96, 97, + -1, -1, -1, -1, 102, 103, -1, -1, -1, -1, + -1, -1, -1, 360, 361, -1, -1, 364, 365, -1, + 0, 1, -1, -1, -1, 372, 373, -1, -1, -1, + -1, 378, 12, -1, -1, 15, 16, 17, -1, 19, 20, 21, 22, 23, -1, 25, 26, 27, -1, 29, - 30, 31, -1, 33, 34, 35, -1, -1, -1, 39, - -1, 41, 42, 43, -1, -1, -1, -1, -1, -1, + 30, 31, -1, 33, -1, 35, -1, -1, -1, 39, + -1, 41, 42, 43, -1, -1, 46, -1, -1, -1, -1, 51, 52, 53, -1, -1, -1, 57, -1, -1, - -1, -1, -1, 63, 64, -1, 66, -1, -1, -1, + -1, 61, 62, 63, 64, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, -1, -1, 89, - 90, -1, 92, -1, 94, 95, -1, -1, 12, 99, + 90, 91, 92, -1, 94, 95, -1, -1, 12, 99, 100, 15, 16, 17, 104, 19, 20, 21, 22, 23, -1, 25, 26, 27, -1, 29, 30, 31, -1, 33, -1, 35, -1, -1, -1, 39, -1, 41, 42, 43, - -1, -1, -1, -1, -1, -1, -1, 51, 52, 53, - -1, -1, -1, 57, -1, -1, -1, -1, -1, 63, + -1, -1, 46, -1, -1, -1, -1, 51, 52, 53, + -1, -1, -1, 57, -1, -1, -1, 61, 62, 63, 64, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, 82, 83, - 84, 85, 86, -1, -1, 89, 90, -1, 92, -1, - 94, 95, -1, -1, 12, 99, 100, 15, 16, 17, + 84, 85, 86, -1, -1, 89, 90, 91, 92, -1, + 94, 95, -1, -1, 12, -1, 100, 15, 16, 17, 104, 19, 20, 21, 22, 23, -1, 25, 26, 27, - -1, 29, 30, 31, -1, 33, -1, 35, -1, -1, + -1, 29, 30, 31, -1, 33, 34, 35, -1, -1, -1, 39, -1, 41, 42, 43, -1, -1, -1, -1, -1, -1, -1, 51, 52, 53, -1, -1, -1, 57, -1, -1, -1, -1, -1, 63, 64, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, -1, -1, 89, 90, -1, 92, -1, 94, 95, -1, -1, - 12, -1, 100, 15, 16, 17, 104, 19, 20, 21, + 12, 99, 100, 15, 16, 17, 104, 19, 20, 21, 22, 23, -1, 25, 26, 27, -1, 29, 30, 31, - 56, 33, -1, 35, -1, -1, -1, 39, -1, 41, - 42, 67, 68, -1, -1, 71, 72, 73, 74, 51, - 76, 53, -1, 79, 80, 81, -1, -1, -1, -1, - -1, 63, 64, -1, 66, -1, -1, 93, 94, 95, - 96, 97, -1, 75, -1, -1, 102, 103, -1, -1, - 82, 83, 84, 85, 86, -1, -1, -1, 90, -1, - 92, 12, 94, 95, 15, 16, 17, -1, 100, -1, - -1, -1, 104, -1, 25, 26, 27, -1, 29, 30, - 31, -1, 33, -1, -1, -1, -1, -1, -1, 40, - -1, -1, -1, -1, 45, -1, 47, 48, 49, 50, - 51, 12, 53, -1, 15, 16, 17, -1, -1, -1, - -1, -1, -1, -1, 25, 26, 27, -1, 29, 30, - 31, -1, 33, -1, 75, -1, -1, -1, -1, 40, - -1, 82, 83, 84, 85, 86, 47, -1, 49, -1, - 51, 92, 53, 94, 95, -1, -1, -1, -1, 100, - -1, -1, -1, 104, 65, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, - -1, 82, 83, 84, 85, 86, -1, -1, -1, -1, - -1, 92, 12, 94, 95, 15, 16, 17, -1, 100, - -1, -1, -1, 104, -1, 25, 26, 27, -1, 29, - 30, 31, -1, 33, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 51, 12, 53, -1, 15, 16, 17, -1, -1, - -1, -1, -1, -1, -1, 25, 26, 27, -1, 29, - 30, 31, -1, 33, -1, 75, -1, -1, -1, -1, - -1, -1, 82, 83, 84, 85, 86, -1, -1, -1, - -1, 51, 92, 53, 94, 95, -1, -1, -1, -1, - 100, -1, -1, -1, 104, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, - -1, -1, 82, 83, 84, 85, 86, -1, -1, -1, - -1, -1, 92, 12, 94, 95, 15, 16, 17, -1, - 100, -1, -1, -1, 104, -1, 25, 26, 27, -1, - 29, 30, 31, -1, 33, -1, -1, -1, -1, -1, + -1, 33, -1, 35, -1, -1, -1, 39, -1, 41, + 42, 43, -1, -1, -1, -1, -1, -1, -1, 51, + 52, 53, -1, -1, -1, 57, -1, -1, -1, -1, + -1, 63, 64, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, 75, -1, -1, -1, -1, -1, -1, + 82, 83, 84, 85, 86, -1, -1, 89, 90, -1, + 92, -1, 94, 95, -1, -1, 12, 99, 100, 15, + 16, 17, 104, 19, 20, 21, 22, 23, -1, 25, + 26, 27, -1, 29, 30, 31, 56, 33, -1, 35, + -1, -1, -1, 39, -1, 41, 42, 67, 68, -1, + -1, 71, 72, 73, 74, 51, 76, 53, -1, 79, + 80, 81, -1, -1, -1, -1, -1, 63, 64, -1, + 66, -1, -1, 93, 94, 95, 96, 97, -1, 75, + -1, -1, 102, 103, -1, -1, 82, 83, 84, 85, + 86, -1, -1, -1, 90, -1, 92, 12, 94, 95, + 15, 16, 17, -1, 100, -1, -1, -1, 104, -1, + 25, 26, 27, -1, 29, 30, 31, -1, 33, -1, + -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, + 45, -1, 47, 48, 49, 50, 51, 12, 53, -1, + 15, 16, 17, -1, -1, -1, -1, -1, -1, -1, + 25, 26, 27, -1, 29, 30, 31, -1, 33, -1, + 75, -1, -1, -1, -1, 40, -1, 82, 83, 84, + 85, 86, 47, -1, 49, -1, 51, 92, 53, 94, + 95, -1, -1, -1, -1, 100, -1, -1, -1, 104, + 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 75, -1, -1, -1, -1, -1, -1, 82, 83, 84, + 85, 86, -1, -1, -1, -1, -1, 92, 12, 94, + 95, 15, 16, 17, -1, 100, -1, -1, -1, 104, + -1, 25, 26, 27, -1, 29, 30, 31, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 51, 12, 53, -1, 15, 16, 17, -1, - -1, -1, -1, -1, -1, -1, 25, 26, 27, -1, - 29, 30, 31, -1, 33, -1, 75, -1, -1, -1, - -1, -1, -1, 82, 83, 84, 85, 86, -1, -1, - -1, -1, 51, 92, 53, 94, 95, -1, -1, -1, - -1, 100, -1, -1, -1, 104, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 75, -1, -1, 44, - -1, -1, -1, 82, 83, 84, 85, 86, -1, -1, - -1, -1, -1, 92, -1, 94, 95, -1, -1, -1, - -1, 100, 67, 68, -1, 104, 71, 72, 73, 74, - -1, 76, 77, 78, 79, 80, 81, 49, -1, -1, - -1, -1, -1, -1, 56, -1, -1, -1, 93, 94, - 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, - 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, - 49, -1, -1, -1, -1, -1, -1, 56, -1, -1, - -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, - 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 51, 12, 53, + -1, 15, 16, 17, -1, -1, -1, -1, -1, -1, + -1, 25, 26, 27, -1, 29, 30, 31, -1, 33, + -1, 75, -1, -1, -1, -1, -1, -1, 82, 83, + 84, 85, 86, -1, -1, -1, -1, 51, 92, 53, + 94, 95, -1, -1, -1, -1, 100, -1, -1, -1, + 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 75, -1, -1, -1, -1, -1, -1, 82, 83, + 84, 85, 86, -1, -1, -1, -1, -1, 92, 12, + 94, 95, 15, 16, 17, -1, 100, -1, -1, -1, + 104, -1, 25, 26, 27, -1, 29, 30, 31, -1, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 51, 12, + 53, -1, 15, 16, 17, -1, -1, -1, -1, -1, + -1, -1, 25, 26, 27, -1, 29, 30, 31, -1, + 33, -1, 75, -1, -1, -1, -1, -1, -1, 82, + 83, 84, 85, 86, -1, -1, -1, -1, 51, 92, + 53, 94, 95, -1, -1, -1, -1, 100, -1, -1, + -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 75, -1, -1, 44, -1, -1, -1, 82, + 83, 84, 85, 86, -1, -1, -1, -1, -1, 92, + -1, 94, 95, -1, -1, -1, -1, 100, 67, 68, + -1, 104, 71, 72, 73, 74, -1, 76, 77, 78, 79, 80, 81, 49, -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, @@ -1284,7 +1241,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, 56, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, 49, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, 49, -1, -1, -1, -1, -1, -1, -1, @@ -1293,11 +1250,11 @@ static const yytype_int16 yycheck[] = -1, -1, 79, 80, 81, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, - 74, -1, 76, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 54, 55, -1, -1, -1, -1, 93, + 74, -1, 76, -1, -1, 79, 80, 81, 49, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, - 81, -1, -1, -1, -1, -1, 54, 55, -1, -1, + 81, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, 54, @@ -1307,32 +1264,35 @@ static const yytype_int16 yycheck[] = -1, -1, 54, 55, -1, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, - -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 54, 55, -1, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, - 79, 80, 81, -1, -1, -1, -1, -1, -1, -1, - 56, -1, -1, -1, 93, 94, 95, 96, 97, -1, + 79, 80, 81, -1, -1, -1, -1, -1, 54, 55, + -1, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 58, -1, 93, 94, 95, - 96, 97, -1, 99, 67, 68, 102, 103, 71, 72, + -1, -1, -1, 56, -1, -1, -1, 93, 94, 95, + 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, + -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, + 93, 94, 95, 96, 97, -1, 99, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, 87, 88, -1, + 80, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, -1, -1, -1, 101, 102, 103, 67, 68, -1, - -1, 71, 72, 73, 74, -1, 76, -1, -1, 79, - 80, 81, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 93, 94, 95, 96, 97, -1, -1, - 67, 68, 102, 103, 71, 72, -1, -1, -1, 76, + 87, 88, -1, -1, -1, -1, 93, 94, 95, 96, + 97, -1, -1, 67, 68, 102, 103, 71, 72, 73, + 74, -1, 76, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, + 94, 95, 96, 97, -1, -1, -1, 101, 102, 103, + 67, 68, -1, -1, 71, 72, 73, 74, -1, 76, -1, -1, 79, 80, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, -1, -1, -1, -1, 102, 103 + 97, -1, -1, 67, 68, 102, 103, 71, 72, -1, + -1, -1, 76, -1, -1, 79, 80, 81, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, + 94, 95, 96, 97, -1, -1, -1, -1, 102, 103 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1344,40 +1304,39 @@ static const yytype_uint8 yystos[] = 41, 42, 43, 46, 51, 52, 53, 57, 61, 62, 63, 64, 66, 75, 82, 83, 84, 85, 86, 89, 90, 91, 92, 94, 95, 100, 104, 108, 109, 110, - 111, 112, 117, 119, 120, 121, 126, 127, 128, 129, - 130, 131, 135, 138, 140, 143, 147, 99, 30, 51, - 92, 129, 129, 129, 100, 129, 149, 30, 129, 100, - 149, 129, 100, 149, 139, 52, 30, 132, 40, 45, - 47, 48, 49, 50, 129, 136, 137, 30, 129, 58, - 59, 15, 16, 30, 30, 30, 30, 129, 65, 136, - 137, 30, 134, 129, 129, 129, 129, 129, 129, 30, - 133, 30, 100, 129, 129, 129, 129, 148, 0, 99, - 129, 71, 129, 111, 129, 67, 68, 71, 72, 73, + 111, 112, 113, 117, 118, 119, 124, 125, 126, 127, + 128, 129, 133, 136, 138, 141, 145, 99, 30, 51, + 92, 127, 127, 127, 100, 127, 147, 30, 127, 100, + 147, 127, 100, 147, 137, 52, 30, 130, 40, 45, + 47, 48, 49, 50, 127, 134, 135, 30, 127, 58, + 59, 15, 16, 30, 30, 30, 30, 127, 65, 134, + 135, 30, 132, 127, 127, 127, 127, 127, 127, 30, + 131, 30, 100, 127, 127, 127, 127, 146, 0, 99, + 127, 71, 127, 111, 127, 67, 68, 71, 72, 73, 74, 76, 79, 80, 81, 93, 94, 95, 96, 97, - 102, 103, 123, 100, 129, 129, 149, 106, 148, 149, - 129, 148, 148, 106, 129, 129, 47, 137, 141, 44, - 77, 78, 30, 56, 71, 128, 129, 56, 71, 54, - 142, 58, 137, 106, 49, 56, 49, 56, 49, 56, + 102, 103, 121, 100, 127, 127, 147, 106, 146, 147, + 127, 146, 146, 106, 127, 127, 47, 135, 139, 44, + 77, 78, 30, 56, 71, 126, 127, 56, 71, 54, + 140, 58, 135, 106, 49, 56, 49, 56, 49, 56, 49, 56, 87, 88, 106, 30, 101, 105, 106, 109, - 123, 125, 129, 54, 55, 124, 56, 99, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 30, 144, 101, 129, 101, - 101, 30, 129, 123, 30, 130, 129, 129, 129, 129, - 71, 56, 129, 129, 123, 129, 30, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 30, 101, 106, - 129, 99, 112, 124, 124, 123, 125, 129, 125, 99, - 106, 144, 129, 129, 144, 49, 49, 49, 49, 148, - 34, 36, 56, 111, 124, 124, 106, 146, 30, 99, - 99, 129, 129, 129, 129, 101, 56, 129, 124, 34, - 38, 60, 113, 114, 115, 116, 118, 122, 34, 30, - 125, 146, 146, 129, 124, 37, 113, 118, 123, 116, - 122, 124, 115, 122, 124, 129, 34, 125, 125, 124, - 125, 111, 124, 124, 111, 125, 129, 118, 122, 129, - 54, 55, 30, 145, 125, 124, 124, 118, 124, 124, - 54, 55, 124, 129, 54, 123, 123, 106, 124, 34, - 124, 34, 123, 123, 54, 55, 123, 111, 112, 125, - 125, 30, 34, 125, 123, 123, 124, 124, 124, 124, - 124, 111, 125, 37, 34, 124, 111, 124 + 121, 123, 127, 54, 55, 122, 56, 99, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 30, 142, 101, 127, 101, + 101, 30, 127, 121, 30, 128, 127, 127, 127, 127, + 71, 56, 127, 127, 121, 127, 30, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 30, 101, 106, + 127, 99, 112, 122, 122, 121, 123, 127, 123, 99, + 106, 142, 127, 127, 142, 49, 49, 49, 49, 146, + 34, 36, 56, 111, 122, 122, 106, 144, 30, 99, + 99, 127, 127, 127, 127, 101, 56, 127, 122, 34, + 38, 60, 114, 115, 116, 120, 34, 30, 123, 144, + 144, 127, 122, 37, 114, 116, 121, 115, 120, 122, + 122, 127, 34, 123, 123, 122, 123, 111, 122, 122, + 111, 123, 127, 116, 120, 54, 55, 30, 143, 123, + 122, 122, 116, 122, 122, 54, 55, 122, 127, 121, + 121, 106, 122, 34, 122, 34, 121, 121, 54, 55, + 111, 123, 30, 34, 111, 123, 121, 121, 122, 122, + 122, 122, 111, 123, 37, 34, 122, 122, 111, 122 }; #define yyerrok (yyerrstatus = 0) @@ -2356,38 +2315,8 @@ yyreduce: ;} break; - case 33: -#line 258 "engines/director/lingo/lingo-gr.y" - { - inst then = 0; - WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code)); - (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */ - - g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;} - break; - - case 35: -#line 267 "engines/director/lingo/lingo-gr.y" - { - inst then = 0; - WRITE_UINT32(&then, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code)); - (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */ - - g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;} - break; - - case 36: -#line 273 "engines/director/lingo/lingo-gr.y" - { - inst then = 0; - WRITE_UINT32(&then, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code)); - (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */ - - g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;} - break; - - case 37: -#line 281 "engines/director/lingo/lingo-gr.y" + case 29: +#line 250 "engines/director/lingo/lingo-gr.y" { inst then = 0, end = 0; WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code)); @@ -2400,8 +2329,8 @@ yyreduce: g_lingo->processIf(0, 0); ;} break; - case 38: -#line 291 "engines/director/lingo/lingo-gr.y" + case 30: +#line 260 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code)); @@ -2414,8 +2343,8 @@ yyreduce: g_lingo->processIf(0, (yyvsp[(9) - (9)].code) - (yyvsp[(1) - (9)].code)); ;} break; - case 39: -#line 302 "engines/director/lingo/lingo-gr.y" + case 31: +#line 271 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code)); @@ -2428,8 +2357,8 @@ yyreduce: g_lingo->processIf(0, 0); ;} break; - case 40: -#line 312 "engines/director/lingo/lingo-gr.y" + case 32: +#line 281 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[(4) - (10)].code) - (yyvsp[(1) - (10)].code)); @@ -2442,8 +2371,8 @@ yyreduce: g_lingo->processIf(0, (yyvsp[(10) - (10)].code) - (yyvsp[(1) - (10)].code)); ;} break; - case 41: -#line 322 "engines/director/lingo/lingo-gr.y" + case 33: +#line 291 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code)); @@ -2456,8 +2385,8 @@ yyreduce: g_lingo->processIf(0, 0); ;} break; - case 42: -#line 332 "engines/director/lingo/lingo-gr.y" + case 34: +#line 301 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[(4) - (8)].code) - (yyvsp[(1) - (8)].code)); @@ -2470,8 +2399,8 @@ yyreduce: g_lingo->processIf(0, (yyvsp[(8) - (8)].code) - (yyvsp[(1) - (8)].code)); ;} break; - case 43: -#line 342 "engines/director/lingo/lingo-gr.y" + case 35: +#line 311 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[(4) - (7)].code) - (yyvsp[(1) - (7)].code)); @@ -2484,28 +2413,38 @@ yyreduce: g_lingo->processIf(0, 0); ;} break; - case 44: -#line 356 "engines/director/lingo/lingo-gr.y" + case 38: +#line 328 "engines/director/lingo/lingo-gr.y" { inst then = 0; - WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code)); - (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 1] = then; /* thenpart */ + WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code)); + (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */ - g_lingo->codeLabel((yyvsp[(1) - (9)].code)); ;} + g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;} break; - case 45: -#line 362 "engines/director/lingo/lingo-gr.y" + case 39: +#line 334 "engines/director/lingo/lingo-gr.y" { inst then = 0; - WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code)); + WRITE_UINT32(&then, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code)); (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */ g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;} break; - case 46: -#line 368 "engines/director/lingo/lingo-gr.y" + case 40: +#line 342 "engines/director/lingo/lingo-gr.y" + { + inst then = 0; + WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code)); + (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 1] = then; /* thenpart */ + + g_lingo->codeLabel((yyvsp[(1) - (9)].code)); ;} + break; + + case 41: +#line 348 "engines/director/lingo/lingo-gr.y" { inst then = 0; WRITE_UINT32(&then, (yyvsp[(4) - (7)].code) - (yyvsp[(1) - (7)].code)); @@ -2516,27 +2455,27 @@ yyreduce: checkEnd((yyvsp[(7) - (7)].s), "if", true); ;} break; - case 47: -#line 376 "engines/director/lingo/lingo-gr.y" + case 42: +#line 356 "engines/director/lingo/lingo-gr.y" { g_lingo->codeLabel((yyvsp[(2) - (5)].code)); checkEnd((yyvsp[(5) - (5)].s), "if", true); ;} break; - case 48: -#line 380 "engines/director/lingo/lingo-gr.y" + case 43: +#line 360 "engines/director/lingo/lingo-gr.y" { g_lingo->codeLabel((yyvsp[(2) - (4)].code)); ;} break; - case 49: -#line 384 "engines/director/lingo/lingo-gr.y" + case 44: +#line 364 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); ;} break; - case 50: -#line 387 "engines/director/lingo/lingo-gr.y" + case 45: +#line 367 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP); g_lingo->code3(STOP, STOP, STOP); @@ -2544,8 +2483,8 @@ yyreduce: delete (yyvsp[(3) - (3)].s); ;} break; - case 51: -#line 394 "engines/director/lingo/lingo-gr.y" + case 46: +#line 374 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(g_lingo->c_ifcode); g_lingo->code3(STOP, STOP, STOP); @@ -2553,8 +2492,8 @@ yyreduce: g_lingo->codeLabel(0); ;} break; - case 52: -#line 401 "engines/director/lingo/lingo-gr.y" + case 47: +#line 381 "engines/director/lingo/lingo-gr.y" { inst skipEnd; WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions @@ -2563,23 +2502,23 @@ yyreduce: g_lingo->code1(skipEnd); ;} break; - case 53: -#line 409 "engines/director/lingo/lingo-gr.y" + case 48: +#line 389 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->_currentScript->size(); ;} break; - case 54: -#line 412 "engines/director/lingo/lingo-gr.y" + case 49: +#line 392 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); ;} break; - case 55: -#line 415 "engines/director/lingo/lingo-gr.y" + case 50: +#line 395 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->_currentScript->size(); ;} break; - case 58: -#line 420 "engines/director/lingo/lingo-gr.y" + case 53: +#line 400 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(g_lingo->c_whencode); g_lingo->code1(STOP); @@ -2587,87 +2526,87 @@ yyreduce: delete (yyvsp[(2) - (3)].s); ;} break; - case 59: -#line 426 "engines/director/lingo/lingo-gr.y" + case 54: +#line 406 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(g_lingo->c_tellcode); g_lingo->code1(STOP); ;} break; - case 60: -#line 430 "engines/director/lingo/lingo-gr.y" + case 55: +#line 410 "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 433 "engines/director/lingo/lingo-gr.y" + case 56: +#line 413 "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 436 "engines/director/lingo/lingo-gr.y" + case 57: +#line 416 "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 439 "engines/director/lingo/lingo-gr.y" + case 58: +#line 419 "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 64: -#line 442 "engines/director/lingo/lingo-gr.y" + case 59: +#line 422 "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 65: -#line 448 "engines/director/lingo/lingo-gr.y" + case 60: +#line 428 "engines/director/lingo/lingo-gr.y" { (yyval.code) = (yyvsp[(1) - (1)].code); ;} break; - case 67: -#line 450 "engines/director/lingo/lingo-gr.y" + case 62: +#line 430 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0); delete (yyvsp[(1) - (1)].s); ;} break; - case 68: -#line 453 "engines/director/lingo/lingo-gr.y" + case 63: +#line 433 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1); delete (yyvsp[(1) - (2)].s); ;} break; - case 69: -#line 456 "engines/director/lingo/lingo-gr.y" + case 64: +#line 436 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;} break; - case 70: -#line 457 "engines/director/lingo/lingo-gr.y" + case 65: +#line 437 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;} break; - case 71: -#line 458 "engines/director/lingo/lingo-gr.y" + case 66: +#line 438 "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 72: -#line 461 "engines/director/lingo/lingo-gr.y" + case 67: +#line 441 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(g_lingo->c_intpush); g_lingo->codeInt(0); // Put dummy id @@ -2678,8 +2617,8 @@ yyreduce: g_lingo->code2(e, f); ;} break; - case 73: -#line 469 "engines/director/lingo/lingo-gr.y" + case 68: +#line 449 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(g_lingo->c_theentitypush); inst e = 0, f = 0; @@ -2688,400 +2627,400 @@ yyreduce: g_lingo->code2(e, f); ;} break; - case 75: -#line 476 "engines/director/lingo/lingo-gr.y" + case 70: +#line 456 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_add); ;} break; - case 76: -#line 477 "engines/director/lingo/lingo-gr.y" + case 71: +#line 457 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_sub); ;} break; - case 77: -#line 478 "engines/director/lingo/lingo-gr.y" + case 72: +#line 458 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_mul); ;} break; - case 78: -#line 479 "engines/director/lingo/lingo-gr.y" + case 73: +#line 459 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_div); ;} break; - case 79: -#line 480 "engines/director/lingo/lingo-gr.y" + case 74: +#line 460 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_mod); ;} break; - case 80: -#line 481 "engines/director/lingo/lingo-gr.y" + case 75: +#line 461 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_gt); ;} break; - case 81: -#line 482 "engines/director/lingo/lingo-gr.y" + case 76: +#line 462 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_lt); ;} break; - case 82: -#line 483 "engines/director/lingo/lingo-gr.y" + case 77: +#line 463 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_eq); ;} break; - case 83: -#line 484 "engines/director/lingo/lingo-gr.y" + case 78: +#line 464 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_neq); ;} break; - case 84: -#line 485 "engines/director/lingo/lingo-gr.y" + case 79: +#line 465 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_ge); ;} break; - case 85: -#line 486 "engines/director/lingo/lingo-gr.y" + case 80: +#line 466 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_le); ;} break; - case 86: -#line 487 "engines/director/lingo/lingo-gr.y" + case 81: +#line 467 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_and); ;} break; - case 87: -#line 488 "engines/director/lingo/lingo-gr.y" + case 82: +#line 468 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_or); ;} break; - case 88: -#line 489 "engines/director/lingo/lingo-gr.y" + case 83: +#line 469 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_not); ;} break; - case 89: -#line 490 "engines/director/lingo/lingo-gr.y" + case 84: +#line 470 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_ampersand); ;} break; - case 90: -#line 491 "engines/director/lingo/lingo-gr.y" + case 85: +#line 471 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_concat); ;} break; - case 91: -#line 492 "engines/director/lingo/lingo-gr.y" + case 86: +#line 472 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_contains); ;} break; - case 92: -#line 493 "engines/director/lingo/lingo-gr.y" + case 87: +#line 473 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_starts); ;} break; - case 93: -#line 494 "engines/director/lingo/lingo-gr.y" + case 88: +#line 474 "engines/director/lingo/lingo-gr.y" { (yyval.code) = (yyvsp[(2) - (2)].code); ;} break; - case 94: -#line 495 "engines/director/lingo/lingo-gr.y" + case 89: +#line 475 "engines/director/lingo/lingo-gr.y" { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;} break; - case 95: -#line 496 "engines/director/lingo/lingo-gr.y" + case 90: +#line 476 "engines/director/lingo/lingo-gr.y" { (yyval.code) = (yyvsp[(2) - (3)].code); ;} break; - case 96: -#line 497 "engines/director/lingo/lingo-gr.y" + case 91: +#line 477 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;} break; - case 97: -#line 498 "engines/director/lingo/lingo-gr.y" + case 92: +#line 478 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_intersects); ;} break; - case 98: -#line 499 "engines/director/lingo/lingo-gr.y" + case 93: +#line 479 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_within); ;} break; - case 99: -#line 500 "engines/director/lingo/lingo-gr.y" + case 94: +#line 480 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_charOf); ;} break; - case 100: -#line 501 "engines/director/lingo/lingo-gr.y" + case 95: +#line 481 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_charToOf); ;} break; - case 101: -#line 502 "engines/director/lingo/lingo-gr.y" + case 96: +#line 482 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_itemOf); ;} break; - case 102: -#line 503 "engines/director/lingo/lingo-gr.y" + case 97: +#line 483 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_itemToOf); ;} break; - case 103: -#line 504 "engines/director/lingo/lingo-gr.y" + case 98: +#line 484 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_lineOf); ;} break; - case 104: -#line 505 "engines/director/lingo/lingo-gr.y" + case 99: +#line 485 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_lineToOf); ;} break; - case 105: -#line 506 "engines/director/lingo/lingo-gr.y" + case 100: +#line 486 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_wordOf); ;} break; - case 106: -#line 507 "engines/director/lingo/lingo-gr.y" + case 101: +#line 487 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_wordToOf); ;} break; - case 107: -#line 508 "engines/director/lingo/lingo-gr.y" + case 102: +#line 488 "engines/director/lingo/lingo-gr.y" { g_lingo->codeMe(nullptr, 0); ;} break; - case 108: -#line 511 "engines/director/lingo/lingo-gr.y" + case 103: +#line 491 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1); delete (yyvsp[(1) - (2)].s); ;} break; - case 109: -#line 516 "engines/director/lingo/lingo-gr.y" + case 104: +#line 496 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_printtop); ;} break; - case 112: -#line 519 "engines/director/lingo/lingo-gr.y" + case 107: +#line 499 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_exitRepeat); ;} break; - case 113: -#line 520 "engines/director/lingo/lingo-gr.y" + case 108: +#line 500 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_procret); ;} break; - case 117: -#line 524 "engines/director/lingo/lingo-gr.y" + case 112: +#line 504 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0); delete (yyvsp[(1) - (1)].s); ;} break; - case 118: -#line 527 "engines/director/lingo/lingo-gr.y" + case 113: +#line 507 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1); delete (yyvsp[(1) - (2)].s); ;} break; - case 119: -#line 530 "engines/director/lingo/lingo-gr.y" + case 114: +#line 510 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1); delete (yyvsp[(1) - (2)].s); ;} break; - case 120: -#line 533 "engines/director/lingo/lingo-gr.y" + case 115: +#line 513 "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 121: -#line 537 "engines/director/lingo/lingo-gr.y" + case 116: +#line 517 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;} break; - case 122: -#line 538 "engines/director/lingo/lingo-gr.y" + case 117: +#line 518 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;} break; - case 123: -#line 539 "engines/director/lingo/lingo-gr.y" + case 118: +#line 519 "engines/director/lingo/lingo-gr.y" { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;} break; - case 124: -#line 540 "engines/director/lingo/lingo-gr.y" + case 119: +#line 520 "engines/director/lingo/lingo-gr.y" { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;} break; - case 125: -#line 541 "engines/director/lingo/lingo-gr.y" + case 120: +#line 521 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_open); ;} break; - case 126: -#line 542 "engines/director/lingo/lingo-gr.y" + case 121: +#line 522 "engines/director/lingo/lingo-gr.y" { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;} break; - case 127: -#line 543 "engines/director/lingo/lingo-gr.y" + case 122: +#line 523 "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 128: -#line 546 "engines/director/lingo/lingo-gr.y" + case 123: +#line 526 "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 129: -#line 547 "engines/director/lingo/lingo-gr.y" + case 124: +#line 527 "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 130: -#line 550 "engines/director/lingo/lingo-gr.y" + case 125: +#line 530 "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 131: -#line 551 "engines/director/lingo/lingo-gr.y" + case 126: +#line 531 "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 132: -#line 554 "engines/director/lingo/lingo-gr.y" + case 127: +#line 534 "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 133: -#line 555 "engines/director/lingo/lingo-gr.y" + case 128: +#line 535 "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 134: -#line 566 "engines/director/lingo/lingo-gr.y" + case 129: +#line 546 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_gotoloop); ;} break; - case 135: -#line 567 "engines/director/lingo/lingo-gr.y" + case 130: +#line 547 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_gotonext); ;} break; - case 136: -#line 568 "engines/director/lingo/lingo-gr.y" + case 131: +#line 548 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_gotoprevious); ;} break; - case 137: -#line 569 "engines/director/lingo/lingo-gr.y" + case 132: +#line 549 "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 138: -#line 573 "engines/director/lingo/lingo-gr.y" + case 133: +#line 553 "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 139: -#line 577 "engines/director/lingo/lingo-gr.y" + case 134: +#line 557 "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 144: -#line 591 "engines/director/lingo/lingo-gr.y" + case 139: +#line 571 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_playdone); ;} break; - case 145: -#line 592 "engines/director/lingo/lingo-gr.y" + case 140: +#line 572 "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 146: -#line 596 "engines/director/lingo/lingo-gr.y" + case 141: +#line 576 "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 147: -#line 600 "engines/director/lingo/lingo-gr.y" + case 142: +#line 580 "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 148: -#line 604 "engines/director/lingo/lingo-gr.y" + case 143: +#line 584 "engines/director/lingo/lingo-gr.y" { g_lingo->codeSetImmediate(true); ;} break; - case 149: -#line 604 "engines/director/lingo/lingo-gr.y" + case 144: +#line 584 "engines/director/lingo/lingo-gr.y" { g_lingo->codeSetImmediate(false); g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;} break; - case 150: -#line 634 "engines/director/lingo/lingo-gr.y" + case 145: +#line 614 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;} break; - case 151: -#line 635 "engines/director/lingo/lingo-gr.y" + case 146: +#line 615 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_procret); g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg)); g_lingo->_indef = false; ;} break; - case 152: -#line 639 "engines/director/lingo/lingo-gr.y" + case 147: +#line 619 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFactory(*(yyvsp[(2) - (2)].s)); ;} break; - case 153: -#line 640 "engines/director/lingo/lingo-gr.y" + case 148: +#line 620 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = true; ;} break; - case 154: -#line 641 "engines/director/lingo/lingo-gr.y" + case 149: +#line 621 "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 155: -#line 645 "engines/director/lingo/lingo-gr.y" + case 150: +#line 625 "engines/director/lingo/lingo-gr.y" { // D3 g_lingo->code1(g_lingo->c_procret); g_lingo->define(*(yyvsp[(1) - (8)].s), (yyvsp[(2) - (8)].code), (yyvsp[(3) - (8)].narg)); @@ -3091,8 +3030,8 @@ yyreduce: checkEnd((yyvsp[(7) - (8)].s), (yyvsp[(1) - (8)].s)->c_str(), false); ;} break; - case 156: -#line 652 "engines/director/lingo/lingo-gr.y" + case 151: +#line 632 "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)); @@ -3100,38 +3039,38 @@ yyreduce: g_lingo->_ignoreMe = false; ;} break; - case 157: -#line 658 "engines/director/lingo/lingo-gr.y" + case 152: +#line 638 "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 158: -#line 660 "engines/director/lingo/lingo-gr.y" + case 153: +#line 640 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 0; ;} break; - case 159: -#line 661 "engines/director/lingo/lingo-gr.y" + case 154: +#line 641 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;} break; - case 160: -#line 662 "engines/director/lingo/lingo-gr.y" + case 155: +#line 642 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; - case 161: -#line 663 "engines/director/lingo/lingo-gr.y" + case 156: +#line 643 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;} break; - case 165: -#line 671 "engines/director/lingo/lingo-gr.y" + case 160: +#line 651 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArgStore(); ;} break; - case 166: -#line 675 "engines/director/lingo/lingo-gr.y" + case 161: +#line 655 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_call); g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str()); @@ -3140,34 +3079,34 @@ yyreduce: g_lingo->code1(numpar); ;} break; - case 167: -#line 683 "engines/director/lingo/lingo-gr.y" + case 162: +#line 663 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 0; ;} break; - case 168: -#line 684 "engines/director/lingo/lingo-gr.y" + case 163: +#line 664 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 1; ;} break; - case 169: -#line 685 "engines/director/lingo/lingo-gr.y" + case 164: +#line 665 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; - case 170: -#line 688 "engines/director/lingo/lingo-gr.y" + case 165: +#line 668 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 1; ;} break; - case 171: -#line 689 "engines/director/lingo/lingo-gr.y" + case 166: +#line 669 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; /* Line 1267 of yacc.c. */ -#line 3171 "engines/director/lingo/lingo-gr.cpp" +#line 3110 "engines/director/lingo/lingo-gr.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3381,6 +3320,6 @@ yyreturn: } -#line 692 "engines/director/lingo/lingo-gr.y" +#line 672 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index d49a76112b..1d1b2e0393 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -247,37 +247,6 @@ stmt: stmtoneliner } ; -elseifstmt: elseifstmt elseifstmt1 - | elseifstmt1 - ; - -elseifstmtoneliner: elseifstmtoneliner elseifstmtoneliner1 - | elseifstmtoneliner1 - ; - -elseifstmtoneliner1: elseif expr tTHEN begin stmt end { - inst then = 0; - WRITE_UINT32(&then, $4 - $1); - (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ - - g_lingo->codeLabel($1); } - ; - -elseifstmt1: elseifstmtoneliner - | elseif expr tTHEN begin stmtlist end { - inst then = 0; - WRITE_UINT32(&then, $5 - $1); - (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ - - g_lingo->codeLabel($1); } - | elseif expr tTHENNL begin stmtlist end { - inst then = 0; - WRITE_UINT32(&then, $5 - $1); - (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ - - g_lingo->codeLabel($1); } - ; - ifstmt: if expr tTHENNL stmtlist end ENDCLAUSE { inst then = 0, end = 0; WRITE_UINT32(&then, $4 - $1); @@ -309,7 +278,7 @@ ifstmt: if expr tTHENNL stmtlist end ENDCLAUSE { (*g_lingo->_currentScript)[$1 + 3] = end; /* end, if cond fails */ g_lingo->processIf(0, 0); } - | if expr tTHEN begin stmtoneliner end elseifstmt end endifstmt end { + | if expr tTHEN begin stmtoneliner end elseifstmtlist end endifstmt end { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, $4 - $1); WRITE_UINT32(&else1, $6 - $1); @@ -319,7 +288,7 @@ ifstmt: if expr tTHENNL stmtlist end ENDCLAUSE { (*g_lingo->_currentScript)[$1 + 3] = end; /* end, if cond fails */ g_lingo->processIf(0, $10 - $1); } - | if expr tTHENNL stmtlist end elseifstmt end endifstmt end { + | if expr tTHENNL stmtlist end elseifstmtlist end endifstmt end { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, $4 - $1); WRITE_UINT32(&else1, $7 - $1); @@ -352,14 +321,25 @@ ifstmt: if expr tTHENNL stmtlist end ENDCLAUSE { ; +elseifstmtlist: elseifstmtlist elseifstmt + | elseifstmt + ; -endifstmt: elseif expr tTHEN begin stmtoneliner end tELSE stmtoneliner end { +elseifstmt: elseif expr tTHEN begin stmtoneliner end { inst then = 0; WRITE_UINT32(&then, $4 - $1); (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ g_lingo->codeLabel($1); } - | elseif expr tTHEN begin stmtoneliner end { + | elseif expr tTHENNL begin stmtlist end { + inst then = 0; + WRITE_UINT32(&then, $5 - $1); + (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ + + g_lingo->codeLabel($1); } + ; + +endifstmt: elseif expr tTHEN begin stmtoneliner end tELSE stmtoneliner end { inst then = 0; WRITE_UINT32(&then, $4 - $1); (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ |