diff options
author | Eugene Sandulenko | 2017-01-11 19:04:07 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2017-01-11 19:27:19 +0100 |
commit | 895e02e1f61feb3cd7e9f73bc5a5de0fb7b139f2 (patch) | |
tree | 6ed379027a1ce3e209df9bdf958263a61cf89272 /engines | |
parent | 320d6c8255de9943ab129fe536f99f4dabad2284 (diff) | |
download | scummvm-rg350-895e02e1f61feb3cd7e9f73bc5a5de0fb7b139f2.tar.gz scummvm-rg350-895e02e1f61feb3cd7e9f73bc5a5de0fb7b139f2.tar.bz2 scummvm-rg350-895e02e1f61feb3cd7e9f73bc5a5de0fb7b139f2.zip |
DIRECTOR: Lingo: Fixed parsing of builtins with arglist
Diffstat (limited to 'engines')
-rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 898 | ||||
-rw-r--r-- | engines/director/lingo/lingo-gr.y | 1 | ||||
-rw-r--r-- | engines/director/lingo/lingo-lex.cpp | 24 | ||||
-rw-r--r-- | engines/director/lingo/lingo-lex.l | 6 |
4 files changed, 471 insertions, 458 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index d1fc53af77..7fca7bea7d 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -518,18 +518,18 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 105 +#define YYFINAL 106 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1494 +#define YYLAST 1585 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 94 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 39 /* YYNRULES -- Number of rules. */ -#define YYNRULES 146 +#define YYNRULES 147 /* YYNRULES -- Number of states. */ -#define YYNSTATES 315 +#define YYNSTATES 319 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -592,11 +592,11 @@ static const yytype_uint16 yyprhs[] = 274, 278, 282, 286, 290, 294, 298, 302, 306, 310, 313, 317, 321, 325, 329, 333, 336, 339, 343, 348, 353, 358, 365, 370, 377, 382, 389, 394, 401, 404, - 406, 408, 411, 413, 416, 419, 422, 425, 427, 430, - 435, 438, 442, 444, 448, 450, 454, 457, 460, 463, - 466, 470, 473, 476, 478, 482, 485, 488, 491, 495, - 498, 499, 508, 511, 512, 521, 522, 523, 534, 535, - 537, 541, 546, 547, 551, 552, 554 + 406, 408, 411, 413, 416, 419, 422, 425, 427, 432, + 435, 440, 443, 447, 449, 453, 455, 459, 462, 465, + 468, 471, 475, 478, 481, 483, 487, 490, 493, 496, + 500, 503, 504, 513, 516, 517, 526, 527, 528, 539, + 540, 542, 546, 551, 552, 556, 557, 559 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -644,20 +644,21 @@ static const yytype_int16 yyrhs[] = 116, 39, 116, -1, 75, 116, 45, 116, 39, 116, -1, 41, 116, -1, 120, -1, 123, -1, 29, 42, -1, 29, -1, 31, 118, -1, 56, 119, -1, 18, - 116, -1, 17, 116, -1, 17, -1, 19, 132, -1, - 52, 116, 47, 116, -1, 52, 116, -1, 20, 21, - 132, -1, 21, -1, 118, 93, 21, -1, 21, -1, - 119, 93, 21, -1, 32, 35, -1, 32, 38, -1, - 32, 40, -1, 32, 121, -1, 32, 121, 122, -1, - 32, 122, -1, 30, 116, -1, 116, -1, 39, 37, - 116, -1, 37, 116, -1, 53, 54, -1, 53, 121, - -1, 53, 121, 122, -1, 53, 122, -1, -1, 36, - 21, 125, 112, 129, 96, 130, 114, -1, 50, 21, - -1, -1, 51, 21, 126, 112, 129, 96, 130, 114, - -1, -1, -1, 79, 21, 127, 112, 128, 129, 96, - 130, 114, 25, -1, -1, 21, -1, 129, 93, 21, - -1, 129, 96, 93, 21, -1, -1, 21, 112, 132, - -1, -1, 116, -1, 132, 93, 116, -1 + 116, -1, 17, 116, -1, 17, -1, 19, 89, 132, + 90, -1, 19, 132, -1, 52, 116, 47, 116, -1, + 52, 116, -1, 20, 21, 132, -1, 21, -1, 118, + 93, 21, -1, 21, -1, 119, 93, 21, -1, 32, + 35, -1, 32, 38, -1, 32, 40, -1, 32, 121, + -1, 32, 121, 122, -1, 32, 122, -1, 30, 116, + -1, 116, -1, 39, 37, 116, -1, 37, 116, -1, + 53, 54, -1, 53, 121, -1, 53, 121, 122, -1, + 53, 122, -1, -1, 36, 21, 125, 112, 129, 96, + 130, 114, -1, 50, 21, -1, -1, 51, 21, 126, + 112, 129, 96, 130, 114, -1, -1, -1, 79, 21, + 127, 112, 128, 129, 96, 130, 114, 25, -1, -1, + 21, -1, 129, 93, 21, -1, 129, 96, 93, 21, + -1, -1, 21, 112, 132, -1, -1, 116, -1, 132, + 93, 116, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -674,10 +675,10 @@ static const yytype_uint16 yyrline[] = 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 451, 452, 453, 454, 455, 457, 458, 459, 462, 465, 468, 469, - 470, 471, 474, 475, 478, 479, 490, 491, 492, 493, - 496, 499, 504, 505, 508, 509, 512, 513, 516, 519, - 549, 549, 555, 558, 558, 563, 564, 563, 574, 575, - 576, 577, 579, 583, 591, 592, 593 + 470, 471, 472, 475, 476, 479, 480, 491, 492, 493, + 494, 497, 500, 505, 506, 509, 510, 513, 514, 517, + 520, 550, 550, 556, 559, 559, 564, 565, 564, 575, + 576, 577, 578, 580, 584, 592, 593, 594 }; #endif @@ -741,10 +742,10 @@ static const yytype_uint8 yyr1[] = 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 118, 118, 119, 119, 120, 120, 120, 120, - 120, 120, 121, 121, 122, 122, 123, 123, 123, 123, - 125, 124, 124, 126, 124, 127, 128, 124, 129, 129, - 129, 129, 130, 131, 132, 132, 132 + 117, 117, 117, 118, 118, 119, 119, 120, 120, 120, + 120, 120, 120, 121, 121, 122, 122, 123, 123, 123, + 123, 125, 124, 124, 126, 124, 127, 128, 124, 129, + 129, 129, 129, 130, 131, 132, 132, 132 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -760,11 +761,11 @@ static const yytype_uint8 yyr2[] = 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 2, 2, 3, 4, 4, 4, 6, 4, 6, 4, 6, 4, 6, 2, 1, - 1, 2, 1, 2, 2, 2, 2, 1, 2, 4, - 2, 3, 1, 3, 1, 3, 2, 2, 2, 2, - 3, 2, 2, 1, 3, 2, 2, 2, 3, 2, - 0, 8, 2, 0, 8, 0, 0, 10, 0, 1, - 3, 4, 0, 3, 0, 1, 3 + 1, 2, 1, 2, 2, 2, 2, 1, 4, 2, + 4, 2, 3, 1, 3, 1, 3, 2, 2, 2, + 2, 3, 2, 2, 1, 3, 2, 2, 2, 3, + 2, 0, 8, 2, 0, 8, 0, 0, 10, 0, + 1, 3, 4, 0, 3, 0, 1, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -772,95 +773,95 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 57, 64, 0, 58, 61, 107, 0, 144, + 0, 0, 57, 64, 0, 58, 61, 107, 0, 145, 0, 51, 60, 59, 102, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 66, 23, 11, 24, 0, 0, 0, 0, 21, 8, 99, 100, 7, 9, 5, 4, 63, 0, 66, 65, - 106, 105, 145, 108, 144, 144, 144, 101, 112, 103, - 0, 116, 0, 117, 0, 118, 123, 119, 121, 130, - 98, 0, 47, 0, 0, 0, 0, 132, 133, 110, - 126, 127, 129, 114, 104, 79, 0, 0, 0, 0, - 0, 135, 85, 86, 0, 1, 6, 0, 0, 0, - 0, 44, 52, 0, 0, 0, 0, 0, 0, 0, + 106, 105, 145, 146, 109, 145, 145, 145, 101, 113, + 103, 0, 117, 0, 118, 0, 119, 124, 120, 122, + 131, 98, 0, 47, 0, 0, 0, 0, 133, 134, + 111, 127, 128, 130, 115, 104, 79, 0, 0, 0, + 0, 0, 136, 85, 86, 0, 1, 6, 0, 0, + 0, 0, 44, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 0, 143, 0, 122, 125, 0, 120, - 51, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 56, 51, 0, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 87, 2, 0, 52, - 0, 0, 51, 0, 28, 75, 76, 74, 77, 78, - 71, 81, 82, 83, 84, 80, 67, 68, 69, 70, - 72, 73, 146, 62, 113, 124, 138, 12, 13, 14, - 19, 16, 0, 0, 18, 15, 138, 109, 115, 90, - 0, 92, 0, 94, 0, 96, 0, 88, 89, 136, - 53, 0, 46, 53, 0, 45, 139, 0, 20, 17, - 0, 0, 0, 0, 0, 138, 52, 0, 0, 52, - 52, 22, 0, 142, 142, 91, 93, 95, 97, 0, - 54, 55, 0, 0, 52, 51, 32, 140, 0, 53, - 53, 142, 25, 52, 53, 29, 53, 0, 50, 51, - 52, 40, 0, 141, 131, 134, 53, 53, 52, 52, - 52, 42, 38, 0, 0, 39, 35, 0, 0, 52, - 0, 0, 37, 0, 0, 52, 51, 52, 51, 137, - 0, 26, 30, 31, 51, 33, 0, 34, 0, 27, - 52, 36, 52, 43, 41 + 0, 0, 146, 0, 0, 112, 0, 144, 0, 123, + 126, 0, 121, 51, 0, 0, 0, 48, 0, 0, + 0, 0, 0, 56, 51, 0, 129, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 87, + 2, 0, 52, 0, 0, 51, 0, 28, 75, 76, + 74, 77, 78, 71, 81, 82, 83, 84, 80, 67, + 68, 69, 70, 72, 73, 108, 147, 62, 114, 125, + 139, 12, 13, 14, 19, 16, 0, 0, 18, 15, + 139, 110, 116, 90, 0, 92, 0, 94, 0, 96, + 0, 88, 89, 137, 53, 0, 46, 53, 0, 45, + 140, 0, 20, 17, 0, 0, 0, 0, 0, 139, + 52, 0, 0, 52, 52, 22, 0, 143, 143, 91, + 93, 95, 97, 0, 54, 55, 0, 0, 52, 51, + 32, 141, 0, 53, 53, 143, 25, 52, 53, 29, + 53, 0, 50, 51, 52, 40, 0, 142, 132, 135, + 53, 53, 52, 52, 52, 42, 38, 0, 0, 39, + 35, 0, 0, 52, 0, 0, 37, 0, 0, 52, + 51, 52, 51, 138, 0, 26, 30, 31, 51, 33, + 0, 34, 0, 27, 52, 36, 52, 43, 41 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 38, 250, 39, 58, 41, 251, 43, 297, 280, - 281, 271, 282, 110, 44, 45, 46, 272, 308, 174, - 236, 47, 48, 241, 69, 94, 50, 77, 78, 51, - 52, 140, 151, 165, 235, 227, 259, 53, 63 + -1, 38, 254, 39, 58, 41, 255, 43, 301, 284, + 285, 275, 286, 111, 44, 45, 46, 276, 312, 177, + 240, 47, 48, 245, 70, 95, 50, 78, 79, 51, + 52, 143, 154, 168, 239, 231, 263, 53, 64 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -244 +#define YYPACT_NINF -255 static const yytype_int16 yypact[] = { - 318, -73, -244, -244, 871, -244, -244, 871, 871, 871, - 26, 1402, -244, -244, 19, 49, 769, -244, 53, 871, - 17, 89, 70, 73, 77, 871, 835, 78, 871, 871, - 871, 871, 871, 871, 90, 871, 871, 871, 4, -244, - 5, -244, -244, -244, 29, 40, 909, 871, 1371, -244, - -244, -244, -244, -244, -244, -244, 36, 871, -244, 1371, - 1371, 1371, 1371, 35, 871, 871, 871, -244, -244, 38, - 871, -244, 871, -244, 95, -244, 1371, 80, -244, -244, - 933, 112, -244, -32, 871, -13, 91, -244, -244, -41, - -244, 80, -244, -244, 43, 21, 158, 969, 1005, 1041, - 1247, -244, 21, 21, 1309, -244, 397, 909, 871, 909, - 93, 1340, 1371, 871, 871, 871, 871, 871, 871, 871, - 871, 871, 871, 871, 871, 871, 871, 871, 871, 871, - 933, 871, 35, -59, 35, 117, 1371, 1371, 871, -244, - -244, 118, 871, 871, -244, 871, 871, 1216, 871, 871, - -244, -244, 871, -244, 119, 871, 871, 871, 871, 871, - 871, 871, 871, 871, 871, -244, -244, -244, 57, 1371, - 58, 1278, -73, 871, -244, 60, 60, 60, 21, 21, - 21, 1371, 1371, 60, 60, 465, 313, 313, 21, 21, - 1371, 1371, 1371, -244, -244, 1371, 128, -244, 1371, 1371, - 1371, 1371, 871, 871, 1371, 1371, 128, 1371, -244, 1371, - 1077, 1371, 1113, 1371, 1149, 1371, 1185, 1371, 1371, -244, - -244, 7, -244, -244, 703, 1371, -244, -53, 1371, 1371, - -53, 871, 871, 871, 871, 128, 550, 105, 871, 550, - -244, -244, 132, 61, 61, 1371, 1371, 1371, 1371, -53, - -244, -244, 131, 871, 1371, -11, -1, -244, 139, -244, - -244, 61, -244, 1371, -244, -244, -244, 133, -244, -244, - 133, -244, 909, -244, 550, 550, -244, -244, 550, 550, - 133, 133, -244, 909, 703, -244, 136, 138, 471, 550, - 161, 162, -244, 164, 146, -244, -244, -244, -244, -244, - 166, -244, -244, -244, -17, -244, 703, -244, 629, -244, - 550, -244, -244, -244, -244 + 306, -63, -255, -255, 859, -255, -255, 859, 859, 897, + 6, 1493, -255, -255, 11, 37, 757, -255, 47, 859, + -2, 90, 54, 59, 61, 859, 823, 64, 859, 859, + 859, 859, 859, 859, 76, 859, 859, 859, 4, -255, + 8, -255, -255, -255, 12, 19, 933, 859, 1462, -255, + -255, -255, -255, -255, -255, -255, 17, 859, -255, 1462, + 1462, 1462, 859, 1462, 15, 859, 859, 859, -255, -255, + 21, 859, -255, 859, -255, 75, -255, 1462, 42, -255, + -255, 957, 98, -255, -40, 859, -38, 77, -255, -255, + 1307, -255, 42, -255, -255, 29, -56, 993, 1029, 1065, + 1101, 1338, -255, -56, -56, 1400, -255, 385, 933, 859, + 933, 82, 1431, 1462, 859, 859, 859, 859, 859, 859, + 859, 859, 859, 859, 859, 859, 859, 859, 859, 859, + 859, 957, 1400, -30, 859, 15, -20, 15, 106, 1462, + 1462, 859, -255, -255, 107, 859, 859, -255, 859, 859, + 1276, 859, 859, -255, -255, 859, -255, 109, 859, 859, + 859, 859, 859, 859, 859, 859, 859, 859, -255, -255, + -255, 46, 1462, 49, 1369, -63, 859, -255, -35, -35, + -35, -56, -56, -56, 1462, 1462, -35, -35, 71, 301, + 301, -56, -56, 1462, 1462, -255, 1462, -255, -255, 1462, + 111, -255, 1462, 1462, 1462, 1462, 859, 859, 1462, 1462, + 111, 1462, -255, 1462, 1137, 1462, 1173, 1462, 1209, 1462, + 1245, 1462, 1462, -255, -255, -3, -255, -255, 691, 1462, + -255, -67, 1462, 1462, -67, 859, 859, 859, 859, 111, + 538, 96, 859, 538, -255, -255, 121, 52, 52, 1462, + 1462, 1462, 1462, -67, -255, -255, 122, 859, 1462, -11, + -9, -255, 125, -255, -255, 52, -255, 1462, -255, -255, + -255, 120, -255, -255, 120, -255, 933, -255, 538, 538, + -255, -255, 538, 538, 120, 120, -255, 933, 691, -255, + 100, 108, 459, 538, 126, 128, -255, 134, 117, -255, + -255, -255, -255, -255, 139, -255, -255, -255, -19, -255, + 691, -255, 617, -255, 538, -255, -255, -255, -255 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -244, -244, 8, 94, 2, -217, 0, -244, -244, -244, - -55, -186, -76, -89, -244, -244, -244, -243, -10, 15, - -204, -244, 50, 3, -244, -244, -244, 191, -14, -244, - -244, -244, -244, -244, -244, -196, -208, -244, 39 + -255, -255, 14, 43, 2, -212, 0, -255, -255, -255, + -91, -241, -114, -86, -255, -255, -255, -254, -10, -12, + -209, -255, 58, 3, -255, -255, -255, 145, -14, -255, + -255, -255, -255, -255, -255, -200, -228, -255, 51 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -870,261 +871,276 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -64 static const yytype_int16 yytable[] = { - 42, 66, 40, 49, 105, -10, 152, 240, -53, 55, - 230, -53, 92, 145, 265, 54, 113, 114, 168, 239, - 170, 115, 116, 117, 283, 118, 119, 268, 120, 121, - 122, 193, 148, 237, 131, 54, 260, 283, 266, 249, - 242, 123, 124, 125, 126, 127, 106, 64, 269, 146, - 128, 129, 238, 276, 59, 274, 275, 60, 61, 62, - 278, 67, 279, 139, 81, 82, 76, 295, 149, 80, - 68, -53, 288, 289, 79, 89, 76, 153, 95, 96, - 97, 98, 99, 100, 285, 102, 103, 104, 119, 311, - 120, 86, 54, -10, 87, 285, 111, 112, 88, 93, - 310, 83, 84, 132, 133, 134, 42, 130, 40, 49, - 85, 101, 128, 129, 62, 62, 62, 72, 107, 74, - 136, 108, 137, 116, 117, 65, 118, 119, 131, 120, - 196, 135, 138, 144, 147, 150, 154, 172, 194, 197, - 208, 206, 123, 124, 125, 126, 127, 220, 222, 226, - 253, 128, 129, 257, 258, 219, 262, 111, 169, 171, - 273, 268, 224, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 223, 192, 298, 287, 221, 296, 301, 302, 195, 303, - 304, 309, 198, 199, 294, 200, 201, 155, 204, 205, - 167, 270, 207, 156, 292, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 113, 114, 91, 0, 0, - 115, 116, 117, 225, 118, 119, 0, 120, 121, 122, - 0, 0, 0, 0, 0, 243, 0, 0, 244, 0, - 123, 124, 125, 126, 127, 267, 0, 0, 0, 128, - 129, 252, 228, 229, 255, 256, 0, 261, 0, 284, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, - 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, - 0, 245, 246, 247, 248, 286, 306, 0, 254, 0, - 0, 0, 0, 290, 291, 293, 0, 0, 0, 0, - 0, 0, 0, 263, 300, 0, 0, 0, 312, 0, - 305, 0, 307, 0, 0, 0, 0, 0, -6, 1, - 0, 0, 111, 0, 0, 313, 0, 314, 0, 2, - 3, 4, 5, 111, 6, 7, 8, 9, 10, 11, - 12, 0, 13, 0, 0, 0, 0, 14, 0, 15, - 16, 17, 0, 0, 18, 0, 0, 0, 0, 19, - 20, 21, 0, 0, 22, 0, 0, 0, 23, 24, - 25, 26, 0, 0, 27, 0, 116, 117, 0, 118, - 119, 0, 120, 28, 0, 0, 0, 0, 0, 0, - 29, 30, 31, 32, 33, 0, 0, 34, 126, 127, - 0, 35, 36, 0, 128, 129, -6, 37, 2, 3, - 4, 5, 0, 6, 7, 8, 9, 10, 11, 12, - 0, 13, 0, 0, 0, 0, 14, 0, 15, 16, - 17, 0, 0, 18, 0, 0, 0, 0, 19, 20, - 21, 0, 0, 22, 0, 0, 0, 23, 24, 25, - 26, 0, 0, 27, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 29, - 30, 31, 32, 33, 0, 0, 34, 0, 0, 0, - 35, 36, 2, 3, 4, 5, 37, 6, 7, 8, - 9, 10, 56, 12, 0, 13, 299, 0, 0, 0, - 14, 0, 15, 16, 17, 0, 0, 0, 0, 0, - 0, 0, 19, 20, 21, 0, 0, 22, 0, 0, - 0, 0, 0, 25, 26, 0, 0, 27, 116, 117, - 0, 118, 119, 0, 120, 0, 28, 0, 0, 0, - 0, 0, 0, 29, 30, 31, 32, 33, 124, 125, - 126, 127, 0, 0, 35, 36, 128, 129, 0, 54, - 37, 2, 3, 4, 5, 0, 6, 7, 8, 9, - 10, 56, 12, 0, 13, 0, 0, 0, 0, 14, - 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, - 0, 19, 20, 21, 0, 0, 22, 0, 0, 0, - 0, 0, 25, 26, 0, 0, 27, 0, 0, 0, - 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, - 0, 0, 29, 30, 31, 32, 33, 0, 0, 0, - 0, 0, 0, 35, 36, 0, 0, 0, 54, 37, - 2, 3, 4, 5, 0, 6, 7, 8, 9, 10, - 56, 12, 0, 13, 0, 0, 0, 0, 14, 0, + 42, 67, 40, 49, 106, 148, -53, 151, -10, -53, + 234, 120, 93, 121, 269, 55, 244, 287, 243, 272, + 264, 54, 171, 241, 173, 54, 246, 65, 117, 118, + 287, 119, 120, 289, 121, 129, 130, 280, 270, 253, + 273, 149, 242, 152, 289, 82, 83, 124, 125, 126, + 127, 128, 107, 68, 278, 279, 129, 130, 69, 282, + 195, 283, 59, 134, 142, 60, 61, 63, 80, -53, + 197, 292, 293, 134, 77, 87, 299, 81, 156, 73, + 88, 75, 89, 90, 77, 94, 96, 97, 98, 99, + 100, 101, 54, 103, 104, 105, -10, 102, 315, 314, + 109, 108, 84, 85, 112, 113, 66, 42, 134, 40, + 49, 86, 141, 133, 138, 131, 135, 136, 137, 147, + 132, 153, 157, 63, 63, 63, 175, 198, 201, 139, + 212, 140, 230, 200, 117, 118, 224, 119, 120, 226, + 121, 257, 261, 150, 210, 262, 277, 266, 272, 300, + 170, 305, 302, 306, 125, 126, 127, 128, 223, 307, + 225, 308, 129, 130, 313, 228, 112, 172, 174, 274, + 296, 92, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 227, + 291, 0, 196, 0, 0, 0, 0, 0, 0, 199, + 0, 298, 0, 202, 203, 0, 204, 205, 0, 208, + 209, 0, 0, 211, 0, 0, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 0, 0, 256, 0, + 0, 259, 260, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 247, 268, 0, 248, 271, + 0, 0, 0, 0, 0, 281, 0, 0, 0, 0, + 0, 0, 290, 288, 232, 233, 0, 265, 0, 0, + 294, 295, 297, 0, 0, 0, 0, 0, 0, 0, + 0, 304, 0, 0, 0, 0, 0, 309, 0, 311, + 310, 0, 0, 249, 250, 251, 252, 0, 0, 0, + 258, 0, 317, 0, 318, 0, -6, 1, 0, 0, + 0, 0, 316, 0, 0, 267, 0, 2, 3, 4, + 5, 0, 6, 7, 8, 9, 10, 11, 12, 0, + 13, 0, 0, 0, 112, 14, 0, 15, 16, 17, + 0, 0, 18, 0, 0, 112, 0, 19, 20, 21, + 0, 0, 22, 0, 0, 0, 23, 24, 25, 26, + 0, 0, 27, 0, 117, 118, 0, 119, 120, 0, + 121, 28, 0, 0, 0, 0, 0, 0, 29, 30, + 31, 32, 33, 0, 0, 34, 127, 128, 0, 35, + 36, 0, 129, 130, -6, 37, 2, 3, 4, 5, + 0, 6, 7, 8, 9, 10, 11, 12, 0, 13, + 0, 0, 0, 0, 14, 0, 15, 16, 17, 0, + 0, 18, 0, 0, 0, 0, 19, 20, 21, 0, + 0, 22, 0, 0, 0, 23, 24, 25, 26, 0, + 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 0, 0, 0, 29, 30, 31, + 32, 33, 0, 0, 34, 0, 0, 0, 35, 36, + 2, 3, 4, 5, 37, 6, 7, 8, 9, 10, + 56, 12, 0, 13, 303, 0, 0, 0, 14, 0, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 0, 0, 22, 0, 0, 0, 0, 0, 25, 26, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 0, 0, 35, 36, 2, 3, 4, 5, 37, 6, - 7, 8, 9, 10, 56, 12, 0, 13, 0, 0, - 0, 0, 14, 0, 15, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 19, 0, 21, 0, 0, 0, - 0, 0, 0, 0, 0, 25, 26, 0, 0, 27, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, - 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, - 2, 3, 4, 5, 0, 6, 35, 36, 0, 0, - 56, 12, 37, 13, 0, 0, 0, 0, 0, 70, - 0, 0, 0, 0, 71, 0, 72, 73, 74, 75, - 57, 0, 21, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 36, 0, 0, 0, 54, 37, 2, + 3, 4, 5, 0, 6, 7, 8, 9, 10, 56, + 12, 0, 13, 0, 0, 0, 0, 14, 0, 15, + 16, 17, 0, 0, 0, 0, 0, 0, 0, 19, + 20, 21, 0, 0, 22, 0, 0, 0, 0, 0, + 25, 26, 0, 0, 27, 0, 0, 0, 0, 0, + 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 35, 36, 0, 0, 0, 54, 37, 2, 3, + 4, 5, 0, 6, 7, 8, 9, 10, 56, 12, + 0, 13, 0, 0, 0, 0, 14, 0, 15, 16, + 17, 0, 0, 0, 0, 0, 0, 0, 19, 20, + 21, 0, 0, 22, 0, 0, 0, 0, 0, 25, + 26, 0, 0, 27, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 35, 36, 2, 3, 4, 5, 37, 6, 7, 8, + 9, 10, 56, 12, 0, 13, 0, 0, 0, 0, + 14, 0, 15, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 19, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 25, 26, 0, 0, 27, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 0, 29, 30, 31, 32, 33, 2, 3, + 4, 5, 0, 6, 35, 36, 0, 0, 56, 12, + 37, 13, 0, 0, 0, 0, 0, 71, 0, 0, + 0, 0, 72, 0, 73, 74, 75, 76, 57, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 2, 3, 4, 5, - 0, 6, 35, 36, 0, 0, 56, 12, 37, 13, - 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - 0, 0, 72, 0, 74, 0, 57, 0, 21, 0, - 0, 0, 2, 3, 4, 5, 0, 6, 0, 90, - 0, 0, 56, 12, 0, 13, 0, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 0, 29, 30, 31, - 32, 33, 57, 0, 21, 0, 0, 0, 35, 36, - 2, 3, 4, 5, 37, 6, 0, 0, 0, 0, - 56, 12, 0, 13, 0, 0, 28, 0, 0, 0, - 0, 0, 0, 29, 30, 31, 32, 33, 0, 0, - 57, 0, 21, 0, 35, 36, 0, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 141, 0, 0, - 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 113, 114, 35, 36, 0, 115, 116, 117, 109, 118, - 142, 143, 120, 121, 122, 0, 0, 0, 157, 0, - 0, 0, 0, 0, 158, 123, 124, 125, 126, 127, - 0, 0, 0, 0, 128, 129, 113, 114, 0, 0, - 0, 115, 116, 117, 0, 118, 119, 0, 120, 121, - 122, 0, 0, 0, 159, 0, 0, 0, 0, 0, - 160, 123, 124, 125, 126, 127, 0, 0, 0, 0, - 128, 129, 113, 114, 0, 0, 0, 115, 116, 117, - 0, 118, 119, 0, 120, 121, 122, 0, 0, 0, - 161, 0, 0, 0, 0, 0, 162, 123, 124, 125, - 126, 127, 0, 0, 0, 0, 128, 129, 113, 114, - 0, 0, 0, 115, 116, 117, 0, 118, 119, 0, - 120, 121, 122, 0, 0, 0, 231, 0, 0, 0, - 0, 0, 0, 123, 124, 125, 126, 127, 0, 0, - 0, 0, 128, 129, 113, 114, 0, 0, 0, 115, - 116, 117, 0, 118, 119, 0, 120, 121, 122, 0, - 0, 0, 232, 0, 0, 0, 0, 0, 0, 123, - 124, 125, 126, 127, 0, 0, 0, 0, 128, 129, - 113, 114, 0, 0, 0, 115, 116, 117, 0, 118, - 119, 0, 120, 121, 122, 0, 0, 0, 233, 0, - 0, 0, 0, 0, 0, 123, 124, 125, 126, 127, - 0, 0, 0, 0, 128, 129, 113, 114, 0, 0, - 0, 115, 116, 117, 0, 118, 119, 0, 120, 121, - 122, 0, 0, 0, 234, 0, 0, 0, 0, 0, - 0, 123, 124, 125, 126, 127, 0, 0, 0, 0, - 128, 129, 113, 114, 0, 0, 0, 115, 116, 117, - 0, 118, 119, 0, 120, 121, 122, 0, 0, 0, - 0, 202, 0, 0, 0, 0, 0, 123, 124, 125, - 126, 127, 0, 113, 114, 0, 128, 129, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 203, 123, 124, - 125, 126, 127, 0, 113, 114, 0, 128, 129, 115, - 116, 117, 0, 118, 119, 0, 120, 121, 122, 0, - 0, 0, 0, 0, 163, 164, 0, 0, 0, 123, - 124, 125, 126, 127, 0, 113, 114, 0, 128, 129, - 115, 116, 117, 0, 118, 119, 0, 120, 121, 122, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, - 123, 124, 125, 126, 127, 0, 113, 114, 166, 128, - 129, 115, 116, 117, 0, 118, 119, 0, 120, 121, - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 124, 125, 126, 127, 0, 113, 114, 166, - 128, 129, 115, 116, 117, 0, 118, 119, 0, 120, - 121, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 173, 123, 124, 125, 126, 127, 0, 113, 114, - 0, 128, 129, 115, 116, 117, 0, 118, 119, 0, - 120, 121, 122, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 124, 125, 126, 127, 0, -63, - -63, 0, 128, 129, -63, -63, -63, 0, -63, -63, - 0, -63, -63, -63, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -63, 0, 0, -63, -63, 0, - 0, 65, 0, -63, -63 + 0, 0, 28, 0, 0, 0, 0, 0, 0, 29, + 30, 31, 32, 33, 2, 3, 4, 5, 0, 6, + 35, 36, 0, 0, 56, 12, 37, 13, 0, 0, + 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, + 73, 0, 75, 0, 57, 0, 21, 0, 0, 0, + 2, 3, 4, 5, 0, 6, 0, 91, 0, 0, + 56, 12, 0, 13, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, + 57, 0, 21, 0, 0, 0, 35, 36, 2, 3, + 4, 5, 37, 6, 0, 0, 0, 0, 56, 12, + 0, 13, 0, 0, 28, 0, 0, 0, 0, 0, + 0, 29, 30, 31, 32, 33, 0, 0, 57, 0, + 21, 0, 35, 36, 2, 3, 4, 5, 37, 6, + 0, 0, 0, 0, 56, 12, 0, 13, 0, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 29, + 30, 31, 32, 33, 57, 0, 21, 0, 0, 0, + 35, 36, 0, 0, 0, 0, 62, 0, 0, 0, + 0, 144, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, + 0, 0, 0, 0, 114, 115, 35, 36, 0, 116, + 117, 118, 110, 119, 145, 146, 121, 122, 123, 0, + 0, 0, 158, 0, 0, 0, 0, 0, 159, 124, + 125, 126, 127, 128, 0, 0, 0, 0, 129, 130, + 114, 115, 0, 0, 0, 116, 117, 118, 0, 119, + 120, 0, 121, 122, 123, 0, 0, 0, 160, 0, + 0, 0, 0, 0, 161, 124, 125, 126, 127, 128, + 0, 0, 0, 0, 129, 130, 114, 115, 0, 0, + 0, 116, 117, 118, 0, 119, 120, 0, 121, 122, + 123, 0, 0, 0, 162, 0, 0, 0, 0, 0, + 163, 124, 125, 126, 127, 128, 0, 0, 0, 0, + 129, 130, 114, 115, 0, 0, 0, 116, 117, 118, + 0, 119, 120, 0, 121, 122, 123, 0, 0, 0, + 164, 0, 0, 0, 0, 0, 165, 124, 125, 126, + 127, 128, 0, 0, 0, 0, 129, 130, 114, 115, + 0, 0, 0, 116, 117, 118, 0, 119, 120, 0, + 121, 122, 123, 0, 0, 0, 235, 0, 0, 0, + 0, 0, 0, 124, 125, 126, 127, 128, 0, 0, + 0, 0, 129, 130, 114, 115, 0, 0, 0, 116, + 117, 118, 0, 119, 120, 0, 121, 122, 123, 0, + 0, 0, 236, 0, 0, 0, 0, 0, 0, 124, + 125, 126, 127, 128, 0, 0, 0, 0, 129, 130, + 114, 115, 0, 0, 0, 116, 117, 118, 0, 119, + 120, 0, 121, 122, 123, 0, 0, 0, 237, 0, + 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, + 0, 0, 0, 0, 129, 130, 114, 115, 0, 0, + 0, 116, 117, 118, 0, 119, 120, 0, 121, 122, + 123, 0, 0, 0, 238, 0, 0, 0, 0, 0, + 0, 124, 125, 126, 127, 128, 0, 0, 0, 0, + 129, 130, 114, 115, 0, 0, 0, 116, 117, 118, + 0, 119, 120, 0, 121, 122, 123, 0, 0, 0, + 0, 206, 0, 0, 0, 0, 0, 124, 125, 126, + 127, 128, 0, 114, 115, 0, 129, 130, 116, 117, + 118, 0, 119, 120, 0, 121, 122, 123, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 207, 124, 125, + 126, 127, 128, 0, 114, 115, 0, 129, 130, 116, + 117, 118, 0, 119, 120, 0, 121, 122, 123, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 125, 126, 127, 128, 0, 114, 115, 0, 129, 130, + 116, 117, 118, 0, 119, 120, 0, 121, 122, 123, + 0, 0, 0, 0, 0, 166, 167, 0, 0, 0, + 124, 125, 126, 127, 128, 0, 114, 115, 0, 129, + 130, 116, 117, 118, 0, 119, 120, 0, 121, 122, + 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 176, 124, 125, 126, 127, 128, 0, 114, 115, 169, + 129, 130, 116, 117, 118, 0, 119, 120, 0, 121, + 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 125, 126, 127, 128, 0, 114, 115, + 169, 129, 130, 116, 117, 118, 0, 119, 120, 0, + 121, 122, 123, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 176, 124, 125, 126, 127, 128, 0, 114, + 115, 0, 129, 130, 116, 117, 118, 0, 119, 120, + 0, 121, 122, 123, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 125, 126, 127, 128, 0, + -63, -63, 0, 129, 130, -63, -63, -63, 0, -63, + -63, 0, -63, -63, -63, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -63, 0, 0, -63, -63, + 0, 0, 66, 0, -63, -63 }; static const yytype_int16 yycheck[] = { - 0, 11, 0, 0, 0, 0, 47, 224, 25, 1, - 206, 28, 26, 45, 25, 88, 57, 58, 107, 223, - 109, 62, 63, 64, 267, 66, 67, 28, 69, 70, - 71, 90, 45, 26, 93, 88, 244, 280, 49, 235, - 93, 82, 83, 84, 85, 86, 38, 21, 49, 81, - 91, 92, 45, 261, 4, 259, 260, 7, 8, 9, - 264, 42, 266, 77, 47, 48, 16, 284, 81, 19, - 21, 88, 276, 277, 21, 25, 26, 91, 28, 29, - 30, 31, 32, 33, 270, 35, 36, 37, 67, 306, - 69, 21, 88, 88, 21, 281, 46, 47, 21, 21, - 304, 12, 13, 64, 65, 66, 106, 57, 106, 106, - 21, 21, 91, 92, 64, 65, 66, 37, 89, 39, - 70, 81, 72, 63, 64, 89, 66, 67, 93, 69, - 140, 93, 37, 21, 84, 44, 93, 44, 21, 21, - 21, 151, 82, 83, 84, 85, 86, 90, 90, 21, - 45, 91, 92, 21, 93, 165, 25, 107, 108, 109, - 21, 28, 172, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 172, 131, 44, 272, 169, 49, 25, 25, 138, 25, - 44, 25, 142, 143, 283, 145, 146, 39, 148, 149, - 106, 256, 152, 45, 280, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 57, 58, 26, -1, -1, - 62, 63, 64, 173, 66, 67, -1, 69, 70, 71, - -1, -1, -1, -1, -1, 227, -1, -1, 230, -1, - 82, 83, 84, 85, 86, 255, -1, -1, -1, 91, - 92, 236, 202, 203, 239, 240, -1, 249, -1, 269, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, - -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, - -1, 231, 232, 233, 234, 270, 296, -1, 238, -1, - -1, -1, -1, 278, 279, 280, -1, -1, -1, -1, - -1, -1, -1, 253, 289, -1, -1, -1, 308, -1, - 295, -1, 297, -1, -1, -1, -1, -1, 0, 1, - -1, -1, 272, -1, -1, 310, -1, 312, -1, 11, - 12, 13, 14, 283, 16, 17, 18, 19, 20, 21, + 0, 11, 0, 0, 0, 45, 25, 45, 0, 28, + 210, 67, 26, 69, 25, 1, 228, 271, 227, 28, + 248, 88, 108, 26, 110, 88, 93, 21, 63, 64, + 284, 66, 67, 274, 69, 91, 92, 265, 49, 239, + 49, 81, 45, 81, 285, 47, 48, 82, 83, 84, + 85, 86, 38, 42, 263, 264, 91, 92, 21, 268, + 90, 270, 4, 93, 78, 7, 8, 9, 21, 88, + 90, 280, 281, 93, 16, 21, 288, 19, 92, 37, + 21, 39, 21, 25, 26, 21, 28, 29, 30, 31, + 32, 33, 88, 35, 36, 37, 88, 21, 310, 308, + 81, 89, 12, 13, 46, 47, 89, 107, 93, 107, + 107, 21, 37, 62, 93, 57, 65, 66, 67, 21, + 62, 44, 93, 65, 66, 67, 44, 21, 21, 71, + 21, 73, 21, 143, 63, 64, 90, 66, 67, 90, + 69, 45, 21, 85, 154, 93, 21, 25, 28, 49, + 107, 25, 44, 25, 83, 84, 85, 86, 168, 25, + 172, 44, 91, 92, 25, 175, 108, 109, 110, 260, + 284, 26, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 175, + 276, -1, 134, -1, -1, -1, -1, -1, -1, 141, + -1, 287, -1, 145, 146, -1, 148, 149, -1, 151, + 152, -1, -1, 155, -1, -1, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, -1, -1, 240, -1, + -1, 243, 244, -1, 176, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 231, 258, -1, 234, 259, + -1, -1, -1, -1, -1, 267, -1, -1, -1, -1, + -1, -1, 274, 273, 206, 207, -1, 253, -1, -1, + 282, 283, 284, -1, -1, -1, -1, -1, -1, -1, + -1, 293, -1, -1, -1, -1, -1, 299, -1, 301, + 300, -1, -1, 235, 236, 237, 238, -1, -1, -1, + 242, -1, 314, -1, 316, -1, 0, 1, -1, -1, + -1, -1, 312, -1, -1, 257, -1, 11, 12, 13, + 14, -1, 16, 17, 18, 19, 20, 21, 22, -1, + 24, -1, -1, -1, 276, 29, -1, 31, 32, 33, + -1, -1, 36, -1, -1, 287, -1, 41, 42, 43, + -1, -1, 46, -1, -1, -1, 50, 51, 52, 53, + -1, -1, 56, -1, 63, 64, -1, 66, 67, -1, + 69, 65, -1, -1, -1, -1, -1, -1, 72, 73, + 74, 75, 76, -1, -1, 79, 85, 86, -1, 83, + 84, -1, 91, 92, 88, 89, 11, 12, 13, 14, + -1, 16, 17, 18, 19, 20, 21, 22, -1, 24, + -1, -1, -1, -1, 29, -1, 31, 32, 33, -1, + -1, 36, -1, -1, -1, -1, 41, 42, 43, -1, + -1, 46, -1, -1, -1, 50, 51, 52, 53, -1, + -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, 73, 74, + 75, 76, -1, -1, 79, -1, -1, -1, 83, 84, + 11, 12, 13, 14, 89, 16, 17, 18, 19, 20, + 21, 22, -1, 24, 25, -1, -1, -1, 29, -1, + 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, + 41, 42, 43, -1, -1, 46, -1, -1, -1, -1, + -1, 52, 53, -1, -1, 56, -1, -1, -1, -1, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, 73, 74, 75, 76, -1, -1, -1, -1, + -1, -1, 83, 84, -1, -1, -1, 88, 89, 11, + 12, 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, 29, -1, 31, - 32, 33, -1, -1, 36, -1, -1, -1, -1, 41, - 42, 43, -1, -1, 46, -1, -1, -1, 50, 51, - 52, 53, -1, -1, 56, -1, 63, 64, -1, 66, - 67, -1, 69, 65, -1, -1, -1, -1, -1, -1, - 72, 73, 74, 75, 76, -1, -1, 79, 85, 86, - -1, 83, 84, -1, 91, 92, 88, 89, 11, 12, + 32, 33, -1, -1, -1, -1, -1, -1, -1, 41, + 42, 43, -1, -1, 46, -1, -1, -1, -1, -1, + 52, 53, -1, -1, 56, -1, -1, -1, -1, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, + -1, 83, 84, -1, -1, -1, 88, 89, 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, 29, -1, 31, 32, - 33, -1, -1, 36, -1, -1, -1, -1, 41, 42, - 43, -1, -1, 46, -1, -1, -1, 50, 51, 52, + 33, -1, -1, -1, -1, -1, -1, -1, 41, 42, + 43, -1, -1, 46, -1, -1, -1, -1, -1, 52, 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - 73, 74, 75, 76, -1, -1, 79, -1, -1, -1, + 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 84, 11, 12, 13, 14, 89, 16, 17, 18, - 19, 20, 21, 22, -1, 24, 25, -1, -1, -1, - 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, - -1, -1, 41, 42, 43, -1, -1, 46, -1, -1, - -1, -1, -1, 52, 53, -1, -1, 56, 63, 64, - -1, 66, 67, -1, 69, -1, 65, -1, -1, -1, - -1, -1, -1, 72, 73, 74, 75, 76, 83, 84, - 85, 86, -1, -1, 83, 84, 91, 92, -1, 88, - 89, 11, 12, 13, 14, -1, 16, 17, 18, 19, - 20, 21, 22, -1, 24, -1, -1, -1, -1, 29, - -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, - -1, 41, 42, 43, -1, -1, 46, -1, -1, -1, - -1, -1, 52, 53, -1, -1, 56, -1, -1, -1, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, - -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, - -1, -1, -1, 83, 84, -1, -1, -1, 88, 89, - 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, - 21, 22, -1, 24, -1, -1, -1, -1, 29, -1, - 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, - 41, 42, 43, -1, -1, 46, -1, -1, -1, -1, - -1, 52, 53, -1, -1, 56, -1, -1, -1, -1, - -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, 73, 74, 75, 76, -1, -1, -1, -1, - -1, -1, 83, 84, 11, 12, 13, 14, 89, 16, - 17, 18, 19, 20, 21, 22, -1, 24, -1, -1, - -1, -1, 29, -1, 31, 32, -1, -1, -1, -1, - -1, -1, -1, -1, 41, -1, 43, -1, -1, -1, - -1, -1, -1, -1, -1, 52, 53, -1, -1, 56, - -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, - -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, - 11, 12, 13, 14, -1, 16, 83, 84, -1, -1, - 21, 22, 89, 24, -1, -1, -1, -1, -1, 30, - -1, -1, -1, -1, 35, -1, 37, 38, 39, 40, - 41, -1, 43, -1, -1, -1, -1, -1, -1, -1, + 19, 20, 21, 22, -1, 24, -1, -1, -1, -1, + 29, -1, 31, 32, -1, -1, -1, -1, -1, -1, + -1, -1, 41, -1, 43, -1, -1, -1, -1, -1, + -1, -1, -1, 52, 53, -1, -1, 56, -1, -1, + -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, 73, 74, 75, 76, 11, 12, + 13, 14, -1, 16, 83, 84, -1, -1, 21, 22, + 89, 24, -1, -1, -1, -1, -1, 30, -1, -1, + -1, -1, 35, -1, 37, 38, 39, 40, 41, -1, + 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, 73, 74, 75, 76, 11, 12, 13, 14, - -1, 16, 83, 84, -1, -1, 21, 22, 89, 24, - -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 37, -1, 39, -1, 41, -1, 43, -1, - -1, -1, 11, 12, 13, 14, -1, 16, -1, 54, - -1, -1, 21, 22, -1, 24, -1, -1, -1, -1, - 65, -1, -1, -1, -1, -1, -1, 72, 73, 74, - 75, 76, 41, -1, 43, -1, -1, -1, 83, 84, - 11, 12, 13, 14, 89, 16, -1, -1, -1, -1, - 21, 22, -1, 24, -1, -1, 65, -1, -1, -1, - -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, - 41, -1, 43, -1, 83, 84, -1, -1, -1, -1, - 89, -1, -1, -1, -1, -1, -1, 34, -1, -1, - -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, 73, 74, 75, 76, -1, -1, -1, -1, - 57, 58, 83, 84, -1, 62, 63, 64, 89, 66, - 67, 68, 69, 70, 71, -1, -1, -1, 39, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, + 73, 74, 75, 76, 11, 12, 13, 14, -1, 16, + 83, 84, -1, -1, 21, 22, 89, 24, -1, -1, + -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, + 37, -1, 39, -1, 41, -1, 43, -1, -1, -1, + 11, 12, 13, 14, -1, 16, -1, 54, -1, -1, + 21, 22, -1, 24, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, + 41, -1, 43, -1, -1, -1, 83, 84, 11, 12, + 13, 14, 89, 16, -1, -1, -1, -1, 21, 22, + -1, 24, -1, -1, 65, -1, -1, -1, -1, -1, + -1, 72, 73, 74, 75, 76, -1, -1, 41, -1, + 43, -1, 83, 84, 11, 12, 13, 14, 89, 16, + -1, -1, -1, -1, 21, 22, -1, 24, -1, -1, + -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, + 73, 74, 75, 76, 41, -1, 43, -1, -1, -1, + 83, 84, -1, -1, -1, -1, 89, -1, -1, -1, + -1, 34, -1, -1, -1, -1, -1, -1, 65, -1, + -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, + -1, -1, -1, -1, 57, 58, 83, 84, -1, 62, + 63, 64, 89, 66, 67, 68, 69, 70, 71, -1, + -1, -1, 39, -1, -1, -1, -1, -1, 45, 82, + 83, 84, 85, 86, -1, -1, -1, -1, 91, 92, + 57, 58, -1, -1, -1, 62, 63, 64, -1, 66, + 67, -1, 69, 70, 71, -1, -1, -1, 39, -1, -1, -1, -1, -1, 45, 82, 83, 84, 85, 86, -1, -1, -1, -1, 91, 92, 57, 58, -1, -1, -1, 62, 63, 64, -1, 66, 67, -1, 69, 70, @@ -1153,27 +1169,30 @@ static const yytype_int16 yycheck[] = -1, 45, -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, -1, 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, 67, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, + -1, -1, -1, -1, 47, -1, -1, 81, 82, 83, 84, 85, 86, -1, 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, 67, -1, 69, 70, 71, -1, - -1, -1, -1, -1, 77, 78, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, -1, 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, 67, -1, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - 82, 83, 84, 85, 86, -1, 57, 58, 90, 91, + -1, -1, -1, -1, -1, 77, 78, -1, -1, -1, + 82, 83, 84, 85, 86, -1, 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, 83, 84, 85, 86, -1, 57, 58, 90, + 81, 82, 83, 84, 85, 86, -1, 57, 58, 90, 91, 92, 62, 63, 64, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 81, 82, 83, 84, 85, 86, -1, 57, 58, - -1, 91, 92, 62, 63, 64, -1, 66, 67, -1, + -1, -1, 82, 83, 84, 85, 86, -1, 57, 58, + 90, 91, 92, 62, 63, 64, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 82, 83, 84, 85, 86, -1, 57, + -1, -1, 81, 82, 83, 84, 85, 86, -1, 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, -1, 85, 86, -1, - -1, 89, -1, 91, 92 + -1, -1, -1, -1, 82, 83, 84, 85, 86, -1, + 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, + 67, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, -1, -1, 85, 86, + -1, -1, 89, -1, 91, 92 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1186,32 +1205,32 @@ static const yytype_uint8 yystos[] = 73, 74, 75, 76, 79, 83, 84, 89, 95, 97, 98, 99, 100, 101, 108, 109, 110, 115, 116, 117, 120, 123, 124, 131, 88, 96, 21, 41, 98, 116, - 116, 116, 116, 132, 21, 89, 112, 42, 21, 118, - 30, 35, 37, 38, 39, 40, 116, 121, 122, 21, - 116, 47, 48, 12, 13, 21, 21, 21, 21, 116, - 54, 121, 122, 21, 119, 116, 116, 116, 116, 116, - 116, 21, 116, 116, 116, 0, 96, 89, 81, 89, - 107, 116, 116, 57, 58, 62, 63, 64, 66, 67, - 69, 70, 71, 82, 83, 84, 85, 86, 91, 92, - 116, 93, 132, 132, 132, 93, 116, 116, 37, 122, - 125, 34, 67, 68, 21, 45, 81, 116, 45, 81, - 44, 126, 47, 122, 93, 39, 45, 39, 45, 39, - 45, 39, 45, 77, 78, 127, 90, 97, 107, 116, - 107, 116, 44, 81, 113, 116, 116, 116, 116, 116, + 116, 116, 89, 116, 132, 21, 89, 112, 42, 21, + 118, 30, 35, 37, 38, 39, 40, 116, 121, 122, + 21, 116, 47, 48, 12, 13, 21, 21, 21, 21, + 116, 54, 121, 122, 21, 119, 116, 116, 116, 116, + 116, 116, 21, 116, 116, 116, 0, 96, 89, 81, + 89, 107, 116, 116, 57, 58, 62, 63, 64, 66, + 67, 69, 70, 71, 82, 83, 84, 85, 86, 91, + 92, 116, 116, 132, 93, 132, 132, 132, 93, 116, + 116, 37, 122, 125, 34, 67, 68, 21, 45, 81, + 116, 45, 81, 44, 126, 47, 122, 93, 39, 45, + 39, 45, 39, 45, 39, 45, 77, 78, 127, 90, + 97, 107, 116, 107, 116, 44, 81, 113, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 116, 90, 21, 116, 112, 21, 116, 116, - 116, 116, 45, 81, 116, 116, 112, 116, 21, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 112, - 90, 113, 90, 96, 112, 116, 21, 129, 116, 116, - 129, 39, 39, 39, 39, 128, 114, 26, 45, 114, - 99, 117, 93, 96, 96, 116, 116, 116, 116, 129, - 96, 100, 113, 45, 116, 113, 113, 21, 93, 130, - 130, 96, 25, 116, 113, 25, 49, 112, 28, 49, - 104, 105, 111, 21, 114, 114, 130, 113, 114, 114, - 103, 104, 106, 111, 112, 105, 113, 107, 114, 114, - 113, 113, 106, 113, 107, 99, 49, 102, 44, 25, - 113, 25, 25, 25, 44, 113, 112, 113, 112, 25, - 114, 99, 100, 113, 113 + 116, 116, 116, 116, 116, 90, 116, 90, 21, 116, + 112, 21, 116, 116, 116, 116, 45, 81, 116, 116, + 112, 116, 21, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 112, 90, 113, 90, 96, 112, 116, + 21, 129, 116, 116, 129, 39, 39, 39, 39, 128, + 114, 26, 45, 114, 99, 117, 93, 96, 96, 116, + 116, 116, 116, 129, 96, 100, 113, 45, 116, 113, + 113, 21, 93, 130, 130, 96, 25, 116, 113, 25, + 49, 112, 28, 49, 104, 105, 111, 21, 114, 114, + 130, 113, 114, 114, 103, 104, 106, 111, 112, 105, + 113, 107, 114, 114, 113, 113, 106, 113, 107, 99, + 49, 102, 44, 25, 113, 25, 25, 25, 44, 113, + 112, 113, 112, 25, 114, 99, 100, 113, 113 }; #define yyerrok (yyerrstatus = 0) @@ -2642,113 +2661,118 @@ yyreduce: case 108: #line 468 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;} + { g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;} break; case 109: #line 469 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_open); ;} + { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;} break; case 110: #line 470 "engines/director/lingo/lingo-gr.y" - { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;} + { g_lingo->code1(g_lingo->c_open); ;} break; case 111: #line 471 "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)); ;} + { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;} break; case 112: -#line 474 "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); ;} +#line 472 "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 113: #line 475 "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); ;} + { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;} break; case 114: -#line 478 "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); ;} +#line 476 "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 115: #line 479 "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); ;} + { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;} break; case 116: -#line 490 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_gotoloop); ;} +#line 480 "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 117: #line 491 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_gotonext); ;} + { g_lingo->code1(g_lingo->c_gotoloop); ;} break; case 118: #line 492 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_gotoprevious); ;} + { g_lingo->code1(g_lingo->c_gotonext); ;} break; case 119: #line 493 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_gotoprevious); ;} + break; + + case 120: +#line 494 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(1); g_lingo->code1(g_lingo->c_goto); ;} break; - case 120: -#line 496 "engines/director/lingo/lingo-gr.y" + case 121: +#line 497 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(3); g_lingo->code1(g_lingo->c_goto); ;} break; - case 121: -#line 499 "engines/director/lingo/lingo-gr.y" + case 122: +#line 500 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(2); g_lingo->code1(g_lingo->c_goto); ;} break; - case 126: -#line 512 "engines/director/lingo/lingo-gr.y" + case 127: +#line 513 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_playdone); ;} break; - case 127: -#line 513 "engines/director/lingo/lingo-gr.y" + case 128: +#line 514 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(1); g_lingo->code1(g_lingo->c_play); ;} break; - case 128: -#line 516 "engines/director/lingo/lingo-gr.y" + case 129: +#line 517 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(3); g_lingo->code1(g_lingo->c_play); ;} break; - case 129: -#line 519 "engines/director/lingo/lingo-gr.y" + case 130: +#line 520 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(2); g_lingo->code1(g_lingo->c_play); ;} break; - case 130: -#line 549 "engines/director/lingo/lingo-gr.y" + case 131: +#line 550 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;} break; - case 131: -#line 550 "engines/director/lingo/lingo-gr.y" + case 132: +#line 551 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(0); // Push fake value on stack g_lingo->code1(g_lingo->c_procret); @@ -2756,38 +2780,38 @@ yyreduce: g_lingo->_indef = false; ;} break; - case 132: -#line 555 "engines/director/lingo/lingo-gr.y" + case 133: +#line 556 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFactory(*(yyvsp[(2) - (2)].s)); ;} break; - case 133: -#line 558 "engines/director/lingo/lingo-gr.y" + case 134: +#line 559 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = true; ;} break; - case 134: -#line 559 "engines/director/lingo/lingo-gr.y" + case 135: +#line 560 "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 135: -#line 563 "engines/director/lingo/lingo-gr.y" + case 136: +#line 564 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;} break; - case 136: -#line 564 "engines/director/lingo/lingo-gr.y" + case 137: +#line 565 "engines/director/lingo/lingo-gr.y" { g_lingo->_ignoreMe = true; ;} break; - case 137: -#line 564 "engines/director/lingo/lingo-gr.y" + case 138: +#line 565 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(0); // Push fake value on stack g_lingo->code1(g_lingo->c_procret); @@ -2799,33 +2823,33 @@ yyreduce: ;} break; - case 138: -#line 574 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 0; ;} - break; - case 139: #line 575 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;} + { (yyval.narg) = 0; ;} break; case 140: #line 576 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} + { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;} break; case 141: #line 577 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;} + { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; case 142: -#line 579 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeArgStore(); ;} +#line 578 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;} break; case 143: -#line 583 "engines/director/lingo/lingo-gr.y" +#line 580 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeArgStore(); ;} + break; + + case 144: +#line 584 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_call); g_lingo->codeString((yyvsp[(1) - (3)].s)->c_str()); @@ -2834,24 +2858,24 @@ yyreduce: g_lingo->code1(numpar); ;} break; - case 144: -#line 591 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 0; ;} - break; - case 145: #line 592 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 1; ;} + { (yyval.narg) = 0; ;} break; case 146: #line 593 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = 1; ;} + break; + + case 147: +#line 594 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; /* Line 1267 of yacc.c. */ -#line 2855 "engines/director/lingo/lingo-gr.cpp" +#line 2879 "engines/director/lingo/lingo-gr.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3065,6 +3089,6 @@ yyreturn: } -#line 596 "engines/director/lingo/lingo-gr.y" +#line 597 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index 6439cea77d..38bd2ed4e0 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -465,6 +465,7 @@ func: tPUT expr { g_lingo->code1(g_lingo->c_printtop); } | BLTINNOARGSORONE { g_lingo->code2(g_lingo->c_voidpush, g_lingo->_handlers[*$1]->u.func); delete $1; } + | BLTINARGLIST '(' arglist ')' { g_lingo->codeFunc($1, $3); } | BLTINARGLIST arglist { g_lingo->codeFunc($1, $2); } | tOPEN expr tWITH expr { g_lingo->code1(g_lingo->c_open); } | tOPEN expr { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); } diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp index f3c498b5a8..afc5670095 100644 --- a/engines/director/lingo/lingo-lex.cpp +++ b/engines/director/lingo/lingo-lex.cpp @@ -1437,12 +1437,6 @@ YY_RULE_SETUP if (g_lingo->_twoWordBuiltins.contains(yytext)) return TWOWORDBUILTIN; - // Special treatment of 'me'. First parameter is method name - if (!g_lingo->_currentFactory.empty()) { - if (yylval.s->equalsIgnoreCase("me")) - return tME; - } - if (g_lingo->_handlers.contains(yytext)) { if (g_lingo->_handlers[yytext]->type == BLTIN && g_lingo->_handlers[yytext]->parens == false) { if (g_lingo->_handlers[yytext]->nargs == 0) { @@ -1468,41 +1462,41 @@ YY_RULE_SETUP YY_BREAK case 62: YY_RULE_SETUP -#line 277 "engines/director/lingo/lingo-lex.l" +#line 271 "engines/director/lingo/lingo-lex.l" { count(); yylval.f = atof(yytext); return FLOAT; } YY_BREAK case 63: YY_RULE_SETUP -#line 278 "engines/director/lingo/lingo-lex.l" +#line 272 "engines/director/lingo/lingo-lex.l" { count(); yylval.i = strtol(yytext, NULL, 10); return INT; } YY_BREAK case 64: YY_RULE_SETUP -#line 279 "engines/director/lingo/lingo-lex.l" +#line 273 "engines/director/lingo/lingo-lex.l" { count(); return *yytext; } YY_BREAK case 65: /* rule 65 can match eol */ YY_RULE_SETUP -#line 280 "engines/director/lingo/lingo-lex.l" +#line 274 "engines/director/lingo/lingo-lex.l" { return '\n'; } YY_BREAK case 66: YY_RULE_SETUP -#line 281 "engines/director/lingo/lingo-lex.l" +#line 275 "engines/director/lingo/lingo-lex.l" { count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; } YY_BREAK case 67: YY_RULE_SETUP -#line 282 "engines/director/lingo/lingo-lex.l" +#line 276 "engines/director/lingo/lingo-lex.l" YY_BREAK case 68: YY_RULE_SETUP -#line 284 "engines/director/lingo/lingo-lex.l" +#line 278 "engines/director/lingo/lingo-lex.l" ECHO; YY_BREAK -#line 1506 "engines/director/lingo/lingo-lex.cpp" +#line 1500 "engines/director/lingo/lingo-lex.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2502,7 +2496,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 284 "engines/director/lingo/lingo-lex.l" +#line 278 "engines/director/lingo/lingo-lex.l" diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l index 9d9dba7d39..afd90aeb6d 100644 --- a/engines/director/lingo/lingo-lex.l +++ b/engines/director/lingo/lingo-lex.l @@ -246,12 +246,6 @@ whitespace [\t ] if (g_lingo->_twoWordBuiltins.contains(yytext)) return TWOWORDBUILTIN; - // Special treatment of 'me'. First parameter is method name - if (!g_lingo->_currentFactory.empty()) { - if (yylval.s->equalsIgnoreCase("me")) - return tME; - } - if (g_lingo->_handlers.contains(yytext)) { if (g_lingo->_handlers[yytext]->type == BLTIN && g_lingo->_handlers[yytext]->parens == false) { if (g_lingo->_handlers[yytext]->nargs == 0) { |