diff options
author | Eugene Sandulenko | 2019-12-08 00:35:59 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2019-12-08 00:35:59 +0100 |
commit | 32b67f69ca283ae88c5b64e36298941946c5b7d7 (patch) | |
tree | b94e7a098f5b0cbc2162e413fe83c5af8aa08364 /engines | |
parent | 45925f610ccc102a857d872847409d12fa55040c (diff) | |
download | scummvm-rg350-32b67f69ca283ae88c5b64e36298941946c5b7d7.tar.gz scummvm-rg350-32b67f69ca283ae88c5b64e36298941946c5b7d7.tar.bz2 scummvm-rg350-32b67f69ca283ae88c5b64e36298941946c5b7d7.zip |
DIRECTOR: LINGO: Fix 'repeatwhile' and 'if' grammars
Diffstat (limited to 'engines')
-rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 716 | ||||
-rw-r--r-- | engines/director/lingo/lingo-gr.y | 16 |
2 files changed, 360 insertions, 372 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index 79a36010e5..bdc33ac59f 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -548,7 +548,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 126 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1612 +#define YYLAST 1554 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 109 @@ -557,7 +557,7 @@ union yyalloc /* YYNRULES -- Number of rules. */ #define YYNRULES 154 /* YYNRULES -- Number of states. */ -#define YYNSTATES 325 +#define YYNSTATES 326 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -613,20 +613,20 @@ 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, - 134, 147, 148, 151, 158, 161, 165, 167, 169, 170, - 171, 172, 175, 178, 182, 184, 186, 188, 190, 192, - 194, 196, 198, 200, 203, 206, 211, 213, 216, 218, - 222, 226, 230, 234, 238, 242, 246, 250, 254, 258, - 262, 266, 270, 273, 277, 281, 285, 289, 292, 295, - 299, 303, 308, 313, 318, 325, 330, 337, 342, 349, - 354, 361, 363, 366, 369, 371, 373, 376, 378, 381, - 384, 387, 389, 392, 395, 397, 400, 405, 412, 417, - 420, 424, 426, 430, 432, 436, 438, 442, 445, 448, - 451, 454, 458, 461, 464, 466, 470, 473, 476, 479, - 483, 486, 487, 491, 492, 501, 504, 505, 514, 523, - 530, 533, 534, 536, 540, 545, 546, 548, 552, 553, - 556, 557, 559, 563, 565 + 73, 75, 77, 79, 86, 97, 109, 113, 120, 125, + 135, 148, 149, 152, 159, 162, 166, 168, 170, 171, + 172, 173, 176, 179, 183, 185, 187, 189, 191, 193, + 195, 197, 199, 201, 204, 207, 212, 214, 217, 219, + 223, 227, 231, 235, 239, 243, 247, 251, 255, 259, + 263, 267, 271, 274, 278, 282, 286, 290, 293, 296, + 300, 304, 309, 314, 319, 326, 331, 338, 343, 350, + 355, 362, 364, 367, 370, 372, 374, 377, 379, 382, + 385, 388, 390, 393, 396, 398, 401, 406, 413, 418, + 421, 425, 427, 431, 433, 437, 439, 443, 446, 449, + 452, 455, 459, 462, 465, 467, 471, 474, 477, 480, + 484, 487, 488, 492, 493, 502, 505, 506, 515, 524, + 531, 534, 535, 537, 541, 546, 547, 549, 553, 554, + 557, 558, 560, 564, 566 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -640,55 +640,55 @@ static const yytype_int16 yyrhs[] = 128, -1, 53, 15, 55, 128, -1, 53, 16, 128, 55, 128, -1, 53, 16, 127, 70, 128, -1, 146, -1, 128, -1, 130, -1, 113, -1, 115, -1, 118, - 128, 124, 123, 93, -1, 119, 70, 128, 123, 55, 128, 123, 124, 123, 93, -1, 119, 70, 128, 123, - 36, 55, 128, 123, 124, 123, 93, -1, 125, 113, - 123, -1, 126, 128, 101, 124, 123, 94, -1, 126, - 128, 55, 128, -1, 120, 128, 54, 122, 124, 123, - 116, 123, 92, -1, 120, 128, 54, 122, 124, 123, - 116, 123, 37, 124, 123, 92, -1, -1, 117, 116, - -1, 121, 128, 54, 122, 124, 123, -1, 52, 58, - -1, 52, 57, 30, -1, 43, -1, 38, -1, -1, - -1, -1, 124, 101, -1, 124, 114, -1, 56, 30, - 54, -1, 88, -1, 12, -1, 17, -1, 33, -1, - 31, -1, 30, -1, 127, -1, 129, -1, 25, -1, - 26, 128, -1, 27, 148, -1, 30, 102, 147, 103, - -1, 15, -1, 16, 128, -1, 112, -1, 128, 96, - 128, -1, 128, 97, 128, -1, 128, 98, 128, -1, - 128, 99, 128, -1, 128, 75, 128, -1, 128, 104, - 128, -1, 128, 105, 128, -1, 128, 70, 128, -1, - 128, 71, 128, -1, 128, 66, 128, -1, 128, 67, - 128, -1, 128, 72, 128, -1, 128, 73, 128, -1, - 74, 128, -1, 128, 95, 128, -1, 128, 78, 128, - -1, 128, 79, 128, -1, 128, 80, 128, -1, 96, - 128, -1, 97, 128, -1, 102, 128, 103, -1, 106, - 147, 107, -1, 85, 128, 86, 128, -1, 85, 128, - 87, 128, -1, 81, 128, 49, 128, -1, 81, 128, - 55, 128, 49, 128, -1, 82, 128, 49, 128, -1, - 82, 128, 55, 128, 49, 128, -1, 83, 128, 49, - 128, -1, 83, 128, 55, 128, 49, 128, -1, 84, - 128, 49, 128, -1, 84, 128, 55, 128, 49, 128, - -1, 91, -1, 29, 128, -1, 51, 128, -1, 134, - -1, 137, -1, 39, 52, -1, 39, -1, 41, 131, - -1, 89, 132, -1, 65, 133, -1, 19, -1, 21, - 128, -1, 20, 128, -1, 20, -1, 22, 148, -1, - 91, 102, 30, 103, -1, 91, 102, 30, 108, 147, - 103, -1, 62, 128, 57, 128, -1, 62, 128, -1, - 23, 30, 147, -1, 30, -1, 131, 108, 30, -1, - 30, -1, 132, 108, 30, -1, 30, -1, 133, 108, - 30, -1, 42, 45, -1, 42, 48, -1, 42, 50, - -1, 42, 135, -1, 42, 135, 136, -1, 42, 136, - -1, 40, 128, -1, 128, -1, 49, 47, 128, -1, - 47, 128, -1, 63, 64, -1, 63, 135, -1, 63, - 135, 136, -1, 63, 136, -1, -1, 35, 138, 147, - -1, -1, 46, 30, 140, 122, 143, 101, 145, 124, - -1, 60, 30, -1, -1, 61, 30, 141, 122, 143, - 101, 145, 124, -1, 142, 122, 143, 101, 145, 124, - 34, 144, -1, 142, 122, 143, 101, 145, 124, -1, - 90, 30, -1, -1, 30, -1, 143, 108, 30, -1, - 143, 101, 108, 30, -1, -1, 30, -1, 144, 108, - 30, -1, -1, 30, 148, -1, -1, 128, -1, 147, - 108, 128, -1, 128, -1, 148, 108, 128, -1 + 55, 128, 123, 124, 123, 93, -1, 119, 70, 128, + 123, 36, 55, 128, 123, 124, 123, 93, -1, 125, + 113, 123, -1, 126, 128, 101, 124, 123, 94, -1, + 126, 128, 55, 128, -1, 120, 128, 123, 54, 124, + 123, 116, 123, 92, -1, 120, 128, 123, 54, 124, + 123, 116, 123, 37, 124, 123, 92, -1, -1, 117, + 116, -1, 121, 128, 123, 54, 124, 123, -1, 52, + 58, -1, 52, 57, 30, -1, 43, -1, 38, -1, + -1, -1, -1, 124, 101, -1, 124, 114, -1, 56, + 30, 54, -1, 88, -1, 12, -1, 17, -1, 33, + -1, 31, -1, 30, -1, 127, -1, 129, -1, 25, + -1, 26, 128, -1, 27, 148, -1, 30, 102, 147, + 103, -1, 15, -1, 16, 128, -1, 112, -1, 128, + 96, 128, -1, 128, 97, 128, -1, 128, 98, 128, + -1, 128, 99, 128, -1, 128, 75, 128, -1, 128, + 104, 128, -1, 128, 105, 128, -1, 128, 70, 128, + -1, 128, 71, 128, -1, 128, 66, 128, -1, 128, + 67, 128, -1, 128, 72, 128, -1, 128, 73, 128, + -1, 74, 128, -1, 128, 95, 128, -1, 128, 78, + 128, -1, 128, 79, 128, -1, 128, 80, 128, -1, + 96, 128, -1, 97, 128, -1, 102, 128, 103, -1, + 106, 147, 107, -1, 85, 128, 86, 128, -1, 85, + 128, 87, 128, -1, 81, 128, 49, 128, -1, 81, + 128, 55, 128, 49, 128, -1, 82, 128, 49, 128, + -1, 82, 128, 55, 128, 49, 128, -1, 83, 128, + 49, 128, -1, 83, 128, 55, 128, 49, 128, -1, + 84, 128, 49, 128, -1, 84, 128, 55, 128, 49, + 128, -1, 91, -1, 29, 128, -1, 51, 128, -1, + 134, -1, 137, -1, 39, 52, -1, 39, -1, 41, + 131, -1, 89, 132, -1, 65, 133, -1, 19, -1, + 21, 128, -1, 20, 128, -1, 20, -1, 22, 148, + -1, 91, 102, 30, 103, -1, 91, 102, 30, 108, + 147, 103, -1, 62, 128, 57, 128, -1, 62, 128, + -1, 23, 30, 147, -1, 30, -1, 131, 108, 30, + -1, 30, -1, 132, 108, 30, -1, 30, -1, 133, + 108, 30, -1, 42, 45, -1, 42, 48, -1, 42, + 50, -1, 42, 135, -1, 42, 135, 136, -1, 42, + 136, -1, 40, 128, -1, 128, -1, 49, 47, 128, + -1, 47, 128, -1, 63, 64, -1, 63, 135, -1, + 63, 135, 136, -1, 63, 136, -1, -1, 35, 138, + 147, -1, -1, 46, 30, 140, 122, 143, 101, 145, + 124, -1, 60, 30, -1, -1, 61, 30, 141, 122, + 143, 101, 145, 124, -1, 142, 122, 143, 101, 145, + 124, 34, 144, -1, 142, 122, 143, 101, 145, 124, + -1, 90, 30, -1, -1, 30, -1, 143, 108, 30, + -1, 143, 101, 108, 30, -1, -1, 30, -1, 144, + 108, 30, -1, -1, 30, 148, -1, -1, 128, -1, + 147, 108, 128, -1, 128, -1, 148, 108, 128, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -789,7 +789,7 @@ static const yytype_uint8 yyr2[] = { 0, 2, 3, 1, 2, 0, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 1, 1, - 1, 1, 1, 5, 10, 11, 3, 6, 4, 9, + 1, 1, 1, 6, 10, 11, 3, 6, 4, 9, 12, 0, 2, 6, 2, 3, 1, 1, 0, 0, 0, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 1, 2, 1, 3, @@ -822,85 +822,85 @@ static const yytype_uint8 yydefact[] = 0, 119, 124, 120, 122, 133, 93, 0, 34, 0, 0, 0, 0, 135, 136, 109, 127, 128, 130, 115, 100, 72, 0, 0, 0, 0, 0, 113, 99, 140, - 0, 77, 78, 0, 151, 0, 1, 5, 40, 0, - 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 78, 0, 151, 0, 1, 5, 39, 0, + 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 150, 0, 0, 110, 151, 0, 132, 0, 123, 126, 0, 121, 38, 0, 0, 0, 35, 0, 0, 50, 0, 0, 0, 43, 38, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 79, 80, 0, 2, 39, 39, 38, 26, 0, + 0, 79, 80, 0, 2, 40, 39, 0, 26, 0, 40, 68, 69, 66, 67, 70, 71, 63, 74, 75, 76, 73, 59, 60, 61, 62, 64, 65, 142, 0, 154, 55, 112, 125, 141, 8, 9, 10, 11, 15, 13, 0, 0, 14, 12, 141, 108, 116, 83, 0, 85, 0, 87, 0, 89, 0, 81, 82, 114, 106, - 150, 152, 41, 42, 0, 0, 40, 28, 39, 148, - 0, 0, 17, 16, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 39, 0, 0, 40, 143, 148, 148, - 84, 86, 88, 90, 107, 0, 39, 31, 27, 144, - 139, 40, 40, 39, 40, 37, 39, 31, 0, 145, - 134, 137, 40, 39, 0, 32, 0, 146, 138, 39, - 0, 40, 29, 38, 0, 0, 24, 39, 40, 147, - 25, 0, 39, 30, 33 + 150, 152, 39, 0, 40, 28, 39, 148, 0, 0, + 17, 16, 0, 0, 0, 0, 0, 0, 41, 42, + 0, 0, 0, 39, 0, 0, 40, 143, 148, 148, + 84, 86, 88, 90, 107, 23, 0, 39, 31, 27, + 144, 139, 40, 40, 39, 40, 37, 39, 31, 0, + 145, 134, 137, 40, 39, 0, 32, 39, 146, 138, + 39, 0, 40, 29, 0, 0, 0, 24, 39, 40, + 147, 25, 0, 39, 30, 33 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 47, 48, 49, 50, 253, 52, 296, 297, 53, - 54, 55, 298, 150, 198, 195, 56, 57, 58, 59, + -1, 47, 48, 49, 50, 269, 52, 297, 298, 53, + 54, 55, 299, 150, 195, 252, 56, 57, 58, 59, 60, 61, 85, 118, 110, 62, 93, 94, 63, 82, - 64, 163, 175, 65, 219, 308, 276, 66, 156, 75 + 64, 163, 175, 65, 219, 309, 276, 66, 156, 75 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -211 +#define YYPACT_NINF -173 static const yytype_int16 yypact[] = { - 257, -77, -211, -211, 807, -211, -211, 807, 807, 807, - 16, -211, 807, 807, 807, 885, -211, -211, -211, -2, - 28, 687, -211, 37, 807, -42, 6, 39, 45, 47, - 807, 765, 49, 807, 807, 807, 807, 807, 807, -211, - 55, 59, 8, 807, 807, 807, 807, 2, -211, -211, - -211, -211, -211, 807, 13, 807, 609, 807, -211, 1471, - -211, -211, -211, -211, -211, -211, -211, -211, 12, 807, - -211, 1471, 1471, 1471, 1471, -13, 807, 1471, -13, 1471, - 807, -13, 807, -211, -211, -3, 807, -211, 807, -211, - 71, -211, 1471, 7, -211, -211, 927, 96, -211, -32, - 807, -7, 94, -211, -211, 1359, -211, 7, -211, -211, - 42, -60, 963, 999, 1035, 1071, 1395, -211, 44, -211, - 123, -60, -60, 1431, 1471, 5, -211, 345, 1471, 807, - 853, -211, 1287, 807, 807, 807, 807, 807, 807, 807, - 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, - 124, 807, 927, 807, 48, 1431, -6, 48, 125, 1471, - 1471, 807, -211, -211, 87, 807, 807, -211, 807, 807, - 88, 1323, 807, 807, -211, -211, 807, -211, 129, 807, - 807, 807, 807, 807, 807, 807, 807, 807, 807, 130, - 1, -211, -211, 807, -211, 521, 1471, -211, -211, 807, - -211, -5, -5, -5, -5, 1507, 1507, -60, 1471, -5, - -5, 23, -18, -18, -60, -60, 1471, 1471, -211, -49, - 1471, -211, -211, 1471, 124, -211, -211, 1471, 1471, 1471, - -5, 807, 807, 1471, -5, 124, 1471, -211, 1471, 1107, - 1471, 1143, 1471, 1179, 1471, 1215, 1471, 1471, -211, -211, - 807, 1471, -211, -211, 70, -8, -211, 1471, 521, 58, - 137, -46, -5, 1471, -37, 807, 807, 807, 807, 3, - -211, 118, 807, 521, 80, 156, -211, -211, 58, 58, - 1471, 1471, 1471, 1471, -211, 807, 1471, 149, -211, -211, - 433, -211, -211, 1471, -211, -211, -211, 149, 807, 158, - 521, 521, -211, 521, -31, -211, 1251, -211, 82, 521, - 99, -211, -211, -211, 163, 101, -211, 521, -211, -211, - -211, 104, 521, -211, -211 + 271, -82, -173, -173, 821, -173, -173, 821, 821, 821, + 28, -173, 821, 821, 821, 899, -173, -173, -173, 12, + 51, 701, -173, 55, 821, 11, -2, 57, 59, 65, + 821, 779, 67, 821, 821, 821, 821, 821, 821, -173, + 80, 84, 13, 821, 821, 821, 821, 2, -173, -173, + -173, -173, -173, 821, 46, 821, 623, 821, -173, 1413, + -173, -173, -173, -173, -173, -173, -173, -173, 15, 821, + -173, 1413, 1413, 1413, 1413, 10, 821, 1413, 10, 1413, + 821, 10, 821, -173, -173, 14, 821, -173, 821, -173, + 73, -173, 1413, 7, -173, -173, 941, 89, -173, -32, + 821, -11, 69, -173, -173, 1301, -173, 7, -173, -173, + 16, -57, 977, 1013, 1049, 1085, 1337, -173, 18, -173, + 91, -57, -57, 1373, 1413, -28, -173, 359, 1413, 821, + 1413, -173, 867, 821, 821, 821, 821, 821, 821, 821, + 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, + 97, 821, 941, 821, 38, 1373, -48, 38, 118, 1413, + 1413, 821, -173, -173, 72, 821, 821, -173, 821, 821, + 81, 1265, 821, 821, -173, -173, 821, -173, 120, 821, + 821, 821, 821, 821, 821, 821, 821, 821, 821, 123, + -41, -173, -173, 821, -173, -173, 1413, 100, -173, 821, + -173, -5, -5, -5, -5, 1449, 1449, -57, 1413, -5, + -5, 8, 125, 125, -57, -57, 1413, 1413, -173, -86, + 1413, -173, -173, 1413, 97, -173, -173, 1413, 1413, 1413, + -5, 821, 821, 1413, -5, 97, 1413, -173, 1413, 1121, + 1413, 1157, 1413, 1193, 1413, 1229, 1413, 1413, -173, -173, + 821, 1413, 535, -20, -173, 1413, 535, 47, 126, -83, + -5, 1413, -51, 821, 821, 821, 821, -37, -173, -173, + 66, 103, 821, 535, 76, 130, -173, -173, 47, 47, + 1413, 1413, 1413, 1413, -173, -173, 821, 1413, 128, -173, + -173, 447, -173, -173, 1413, -173, -173, -173, 128, 821, + 133, 535, 535, -173, 535, -31, -173, 1413, -173, 77, + 535, 93, -173, -173, 119, 157, 99, -173, 535, -173, + -173, -173, 102, 535, -173, -173 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -211, -211, 72, -211, 141, 19, -211, -97, -211, -211, - -211, -211, -211, -162, -88, -85, -211, -211, 102, -4, - 40, -211, -211, -211, -211, -211, 170, -19, -211, -211, - -211, -211, -211, -211, -210, -211, -155, -211, -39, 53 + -173, -173, 70, -173, 140, 1, -173, -100, -173, -173, + -173, -173, -173, -139, -85, -102, -173, -173, 104, -4, + 35, -173, -173, -173, -173, -173, 174, -19, -173, -173, + -173, -173, -173, -173, -172, -173, -170, -173, -39, 62 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -910,273 +910,272 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -6 static const yytype_int16 yytable[] = { - 71, 224, 126, 72, 73, 74, 311, 125, 77, 74, - 79, 74, 108, 235, 261, 97, 98, 92, 140, 51, - 96, 99, 100, 168, 67, 264, 105, 92, 271, 111, - 112, 113, 114, 115, 116, 256, 101, 154, 169, 121, - 122, 123, 124, 157, 148, 149, 76, 272, 172, 128, - 83, 130, 259, 132, 88, 278, 90, 139, 84, 260, - 140, 312, 260, 173, 279, 152, 78, 95, 81, 102, - 139, 260, 124, 140, 162, 103, 155, 104, 124, 109, - 146, 147, 159, 129, 160, 117, 148, 149, 177, 119, - 143, 144, 145, 146, 147, 153, 171, 221, 139, 148, - 149, 140, 193, 127, 249, 158, 284, 254, 255, 250, - 120, 193, 192, 193, 151, 258, 14, 225, 161, 144, - 145, 146, 147, 291, 292, 196, 167, 148, 149, 201, + 71, 51, 126, 72, 73, 74, 312, 125, 77, 74, + 79, 74, 108, 99, 100, 257, 271, 92, 278, 67, + 96, 140, 258, 168, 224, 258, 105, 92, 101, 111, + 112, 113, 114, 115, 116, 272, 235, 154, 169, 121, + 122, 123, 124, 157, 172, 197, 198, 148, 149, 128, + 279, 130, 259, 132, 88, 221, 90, 258, 76, 173, + 193, 313, 249, 262, 83, 152, 284, 250, 97, 98, + 139, 193, 124, 140, 162, 78, 155, 81, 124, 192, + 193, 84, 159, 139, 160, 95, 140, 102, 177, 103, + 143, 144, 145, 146, 147, 104, 171, 109, 256, 148, + 149, 14, 225, 127, 144, 145, 146, 147, 292, 293, + 117, 253, 148, 149, 119, 120, 129, 151, 153, 167, + 161, 190, 158, 174, 178, 196, 189, 218, 51, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 51, 124, 174, 220, - 178, 318, 189, 190, 218, 222, 193, 223, 231, 237, - 248, 227, 228, 270, 229, 230, 275, 277, 233, 234, - 274, 273, 236, 285, 288, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 287, 289, 295, 307, 251, - 314, 290, 316, 319, 320, 257, 323, 131, 294, 194, - 305, 107, 170, 0, 226, 302, 300, 301, 304, 303, - 0, 269, 0, 0, 0, 310, 0, 309, 0, 0, - 0, 315, 0, 0, 0, 0, 317, 262, 263, 321, - 0, 0, 0, 322, 324, 0, 0, 0, 0, 0, + 212, 213, 214, 215, 216, 217, 193, 124, 222, 220, + 237, 231, 273, 248, 254, 275, 277, 223, 286, 285, + 290, 227, 228, 308, 229, 230, 296, 270, 233, 234, + 289, 274, 236, 319, 291, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 315, 317, 320, 288, 251, + 301, 302, 321, 304, 324, 255, 131, 194, 306, 226, + 139, 310, 295, 140, 170, 107, 0, 0, 0, 303, + 318, 267, 305, 0, 0, 0, 0, 323, 0, 311, + 0, 0, 314, 146, 147, 316, 0, 260, 261, 148, + 149, 0, 0, 322, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -5, 1, 0, - 0, 280, 281, 282, 283, 0, 0, 0, 286, 2, - 0, 0, 3, 4, 5, 0, 6, 7, 8, 9, - 10, 293, 11, 12, 13, 0, 14, 15, 16, 0, - 17, 0, 18, 0, 306, 0, 19, 0, 20, 21, - 22, 0, 0, 23, 0, 0, 0, 0, 24, 25, - 26, 0, 0, 27, 0, 0, 0, 28, 29, 30, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 280, + 281, 282, 283, 0, 0, 0, 0, 0, 287, 0, + 0, -5, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 294, 2, 0, 0, 3, 4, 5, 0, + 6, 7, 8, 9, 10, 307, 11, 12, 13, 0, + 14, 15, 16, 0, 17, 0, 18, 0, 0, 0, + 19, 0, 20, 21, 22, 0, 0, 23, 0, 0, + 0, 0, 24, 25, 26, 0, 0, 27, 0, 0, + 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, 0, 0, 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, 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, 0, 0, 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, 300, 18, 0, 0, 0, 19, 0, 20, 21, + 22, 0, 0, 0, 0, 0, 0, 0, 24, 25, + 26, 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, 41, 42, 0, - 0, 0, 0, 43, 44, 0, 0, 2, -5, 45, + 36, 37, 38, 0, 0, 39, 40, 0, 42, 0, + 0, 0, 0, 43, 44, 0, 0, 2, 268, 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, 27, 0, 0, 0, 28, 29, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 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, 41, 42, 0, 0, 0, - 0, 43, 44, 0, 0, 2, 0, 45, 3, 4, + 38, 0, 0, 39, 40, 0, 42, 0, 0, 0, + 0, 43, 44, 0, 0, 2, 268, 45, 3, 4, 5, 46, 6, 7, 8, 9, 10, 0, 11, 12, - 13, 0, 14, 15, 16, 0, 17, 299, 18, 0, - 0, 0, 19, 0, 20, 21, 22, 0, 0, 0, - 0, 0, 0, 0, 24, 25, 26, 0, 0, 27, + 13, 0, 14, 15, 16, 0, 17, 0, 18, 0, + 0, 0, 19, 0, 20, 21, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 26, 0, 0, 0, 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, 0, 0, 0, 43, - 44, 0, 0, 2, 252, 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, 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, 0, 0, 0, 43, 44, 0, - 0, 2, 252, 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, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 0, 26, 0, 0, 0, 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, 0, 40, 2, - 42, 0, 3, 4, 5, 43, 44, 0, 0, 0, - 0, 45, 11, 12, 13, 46, 14, 68, 16, 0, - 17, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 87, 0, 88, 89, 90, 91, 69, 0, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 2, 42, 0, 3, 4, 5, 43, + 44, 0, 0, 0, 0, 45, 11, 12, 13, 46, + 14, 68, 16, 0, 17, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 87, 0, 88, 89, + 90, 91, 69, 0, 26, 0, 0, 0, 0, 0, 0, 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, 2, 70, 0, - 3, 4, 5, 43, 44, 0, 0, 0, 0, 45, - 11, 12, 13, 46, 14, 68, 16, 0, 17, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 0, 0, 88, 0, 90, 0, 69, 0, 26, 2, - 0, 0, 3, 4, 5, 0, 0, 0, 0, 106, - 0, 0, 11, 12, 13, 0, 14, 68, 16, 33, - 17, 0, 0, 0, 0, 0, 34, 35, 36, 37, - 38, 0, 0, 0, 0, 0, 70, 0, 69, 0, - 26, 43, 44, 0, 0, 0, 0, 45, 0, 0, - 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, - 36, 37, 38, 0, 0, 0, 0, 2, 70, 0, - 3, 4, 5, 43, 44, 0, 0, 197, 0, 45, - 11, 12, 13, 46, 14, 68, 16, 0, 17, 133, - 134, 0, 0, 135, 136, 137, 138, 0, 139, 0, - 0, 140, 141, 142, 0, 0, 69, 0, 26, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, - 145, 146, 147, 0, 0, 0, 0, 148, 149, 33, - 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, - 38, 164, 0, 0, 0, 0, 70, 0, 0, 0, - 0, 43, 44, 0, 0, 0, 0, 80, 0, 0, - 0, 46, 0, 133, 134, 0, 0, 135, 136, 137, - 138, 0, 139, 165, 166, 140, 141, 142, 0, 0, - 0, 0, 179, 0, 0, 0, 0, 0, 180, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 34, 35, 36, 37, 38, 0, 0, 0, + 0, 2, 70, 0, 3, 4, 5, 43, 44, 0, + 0, 0, 0, 45, 11, 12, 13, 46, 14, 68, + 16, 0, 17, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 0, 0, 88, 0, 90, 0, + 69, 0, 26, 2, 0, 0, 3, 4, 5, 0, + 0, 0, 0, 106, 0, 0, 11, 12, 13, 0, + 14, 68, 16, 33, 17, 0, 0, 0, 0, 0, + 34, 35, 36, 37, 38, 0, 0, 0, 0, 0, + 70, 0, 69, 0, 26, 43, 44, 0, 0, 0, + 0, 45, 0, 0, 0, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 34, 35, 36, 37, 38, 0, 0, 0, + 0, 2, 70, 0, 3, 4, 5, 43, 44, 0, + 0, 0, 199, 45, 11, 12, 13, 46, 14, 68, + 16, 0, 17, 133, 134, 0, 0, 135, 136, 137, + 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, + 69, 0, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 143, 144, 145, 146, 147, 0, 200, 0, + 0, 148, 149, 33, 0, 0, 0, 0, 0, 0, + 34, 35, 36, 37, 38, 164, 0, 0, 0, 0, + 70, 0, 0, 0, 0, 43, 44, 0, 0, 0, + 0, 80, 0, 0, 0, 46, 0, 133, 134, 0, + 0, 135, 136, 137, 138, 0, 139, 165, 166, 140, + 141, 142, 0, 0, 0, 0, 179, 0, 0, 0, + 0, 0, 180, 0, 0, 0, 143, 144, 145, 146, + 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, + 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, + 0, 0, 181, 0, 0, 0, 0, 0, 182, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, - 0, 140, 141, 142, 0, 0, 0, 0, 181, 0, - 0, 0, 0, 0, 182, 0, 0, 0, 143, 144, + 0, 140, 141, 142, 0, 0, 0, 0, 183, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, - 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, - 184, 0, 0, 0, 143, 144, 145, 146, 147, 0, + 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, + 186, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, - 185, 0, 0, 0, 0, 0, 186, 0, 0, 0, + 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, - 141, 142, 0, 0, 0, 0, 265, 0, 0, 0, + 141, 142, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, - 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, - 0, 140, 141, 142, 0, 0, 0, 0, 267, 0, + 0, 140, 141, 142, 0, 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, - 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 144, 145, 146, 147, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 232, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 199, 0, 0, 0, 143, 144, 145, 146, + 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 232, 0, - 0, 0, 143, 144, 145, 146, 147, 0, 200, 133, + 0, 0, 0, 187, 188, 0, 0, 0, 0, 0, + 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 176, 0, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, + 145, 146, 147, 0, 0, 0, 191, 148, 149, 133, + 134, 0, 0, 135, 136, 137, 138, 0, 139, 0, + 0, 140, 141, 142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, 149, 135, - 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, + 136, 0, 0, 0, 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 0, - 0, 133, 134, 148, 149, 135, 136, 137, 138, 0, - 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, - 0, 187, 188, 0, 0, 0, 0, 0, 0, 0, - 143, 144, 145, 146, 147, 0, 0, 133, 134, 148, - 149, 135, 136, 137, 138, 0, 139, 0, 0, 140, - 141, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, - 147, 0, 0, 0, 191, 148, 149, 133, 134, 0, - 0, 135, 136, 137, 138, 0, 139, 0, 0, 140, - 141, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, - 147, 0, 0, 133, 134, 148, 149, 135, 136, 0, - 0, 0, 139, 0, 0, 140, 141, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 143, 144, 145, 146, 147, 0, 0, 0, - 0, 148, 149 + 0, 0, 0, 148, 149 }; static const yytype_int16 yycheck[] = { - 4, 163, 0, 7, 8, 9, 37, 46, 12, 13, - 14, 15, 31, 175, 224, 57, 58, 21, 78, 0, - 24, 15, 16, 55, 101, 235, 30, 31, 36, 33, - 34, 35, 36, 37, 38, 197, 30, 76, 70, 43, - 44, 45, 46, 82, 104, 105, 30, 55, 55, 53, - 52, 55, 101, 57, 47, 101, 49, 75, 30, 108, - 78, 92, 108, 70, 101, 69, 13, 30, 15, 30, - 75, 108, 76, 78, 93, 30, 80, 30, 82, 30, - 98, 99, 86, 70, 88, 30, 104, 105, 107, 30, - 95, 96, 97, 98, 99, 108, 100, 103, 75, 104, - 105, 78, 108, 101, 103, 108, 103, 195, 196, 108, - 102, 108, 107, 108, 102, 200, 29, 30, 47, 96, - 97, 98, 99, 278, 279, 129, 30, 104, 105, 133, + 4, 0, 0, 7, 8, 9, 37, 46, 12, 13, + 14, 15, 31, 15, 16, 101, 36, 21, 101, 101, + 24, 78, 108, 55, 163, 108, 30, 31, 30, 33, + 34, 35, 36, 37, 38, 55, 175, 76, 70, 43, + 44, 45, 46, 82, 55, 130, 131, 104, 105, 53, + 101, 55, 224, 57, 47, 103, 49, 108, 30, 70, + 108, 92, 103, 235, 52, 69, 103, 108, 57, 58, + 75, 108, 76, 78, 93, 13, 80, 15, 82, 107, + 108, 30, 86, 75, 88, 30, 78, 30, 107, 30, + 95, 96, 97, 98, 99, 30, 100, 30, 200, 104, + 105, 29, 30, 101, 96, 97, 98, 99, 278, 279, + 30, 196, 104, 105, 30, 102, 70, 102, 108, 30, + 47, 30, 108, 54, 108, 129, 108, 30, 127, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 127, 151, 54, 153, - 108, 313, 108, 30, 30, 30, 108, 161, 70, 30, - 30, 165, 166, 93, 168, 169, 108, 30, 172, 173, - 258, 256, 176, 55, 94, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 273, 30, 38, 30, 193, - 108, 276, 93, 30, 93, 199, 92, 56, 286, 127, - 297, 31, 100, -1, 164, 293, 291, 292, 296, 294, - -1, 250, -1, -1, -1, 303, -1, 302, -1, -1, - -1, 309, -1, -1, -1, -1, 311, 231, 232, 317, - -1, -1, -1, 318, 322, -1, -1, -1, -1, -1, + 144, 145, 146, 147, 148, 149, 108, 151, 30, 153, + 30, 70, 254, 30, 54, 108, 30, 161, 55, 93, + 30, 165, 166, 30, 168, 169, 38, 252, 172, 173, + 94, 256, 176, 54, 276, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 108, 93, 30, 273, 193, + 292, 293, 93, 295, 92, 199, 56, 127, 298, 164, + 75, 303, 287, 78, 100, 31, -1, -1, -1, 294, + 312, 250, 297, -1, -1, -1, -1, 319, -1, 304, + -1, -1, 307, 98, 99, 310, -1, 231, 232, 104, + 105, -1, -1, 318, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, - -1, 265, 266, 267, 268, -1, -1, -1, 272, 12, - -1, -1, 15, 16, 17, -1, 19, 20, 21, 22, - 23, 285, 25, 26, 27, -1, 29, 30, 31, -1, - 33, -1, 35, -1, 298, -1, 39, -1, 41, 42, - 43, -1, -1, 46, -1, -1, -1, -1, 51, 52, - 53, -1, -1, 56, -1, -1, -1, 60, 61, 62, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, + 264, 265, 266, -1, -1, -1, -1, -1, 272, -1, + -1, 0, 1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 286, 12, -1, -1, 15, 16, 17, -1, + 19, 20, 21, 22, 23, 299, 25, 26, 27, -1, + 29, 30, 31, -1, 33, -1, 35, -1, -1, -1, + 39, -1, 41, 42, 43, -1, -1, 46, -1, -1, + -1, -1, 51, 52, 53, -1, -1, 56, -1, -1, + -1, 60, 61, 62, 63, -1, 65, -1, -1, -1, + -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, + -1, -1, 81, 82, 83, 84, 85, -1, -1, 88, + 89, 90, 91, -1, -1, -1, -1, 96, 97, -1, + -1, 12, 101, 102, 15, 16, 17, 106, 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, 56, -1, -1, -1, 60, + 61, 62, 63, -1, 65, -1, -1, -1, -1, -1, + -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, -1, -1, 88, 89, 90, + 91, -1, -1, -1, -1, 96, 97, -1, -1, 12, + -1, 102, 15, 16, 17, 106, 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, -1, 51, 52, + 53, -1, -1, 56, -1, -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, 81, 82, - 83, 84, 85, -1, -1, 88, 89, 90, 91, -1, + 83, 84, 85, -1, -1, 88, 89, -1, 91, -1, -1, -1, -1, 96, 97, -1, -1, 12, 101, 102, 15, 16, 17, 106, 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, 56, -1, -1, -1, 60, 61, 62, 63, -1, + -1, -1, -1, -1, -1, -1, 51, 52, 53, -1, + -1, 56, -1, -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, - 85, -1, -1, 88, 89, 90, 91, -1, -1, -1, - -1, 96, 97, -1, -1, 12, -1, 102, 15, 16, + 85, -1, -1, 88, 89, -1, 91, -1, -1, -1, + -1, 96, 97, -1, -1, 12, 101, 102, 15, 16, 17, 106, 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, -1, 51, 52, 53, -1, -1, 56, + 27, -1, 29, 30, 31, -1, 33, -1, 35, -1, + -1, -1, 39, -1, 41, 42, -1, -1, -1, -1, + -1, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, 85, -1, - -1, 88, 89, -1, 91, -1, -1, -1, -1, 96, - 97, -1, -1, 12, 101, 102, 15, 16, 17, 106, - 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, 56, -1, -1, - -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, + -1, -1, 89, 12, 91, -1, 15, 16, 17, 96, + 97, -1, -1, -1, -1, 102, 25, 26, 27, 106, + 29, 30, 31, -1, 33, -1, -1, -1, -1, -1, + -1, 40, -1, -1, -1, -1, 45, -1, 47, 48, + 49, 50, 51, -1, 53, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, - -1, -1, 81, 82, 83, 84, 85, -1, -1, 88, - 89, -1, 91, -1, -1, -1, -1, 96, 97, -1, - -1, 12, 101, 102, 15, 16, 17, 106, 19, 20, - 21, 22, 23, -1, 25, 26, 27, -1, 29, 30, - 31, -1, 33, -1, 35, -1, -1, -1, 39, -1, - 41, 42, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 81, 82, 83, 84, 85, -1, -1, -1, + -1, 12, 91, -1, 15, 16, 17, 96, 97, -1, + -1, -1, -1, 102, 25, 26, 27, 106, 29, 30, + 31, -1, 33, -1, -1, -1, -1, -1, -1, 40, + -1, -1, -1, -1, -1, -1, 47, -1, 49, -1, + 51, -1, 53, 12, -1, -1, 15, 16, 17, -1, + -1, -1, -1, 64, -1, -1, 25, 26, 27, -1, + 29, 30, 31, 74, 33, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, -1, -1, -1, -1, -1, + 91, -1, 51, -1, 53, 96, 97, -1, -1, -1, + -1, 102, -1, -1, -1, 106, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 74, -1, -1, -1, -1, + -1, -1, 81, 82, 83, 84, 85, -1, -1, -1, + -1, 12, 91, -1, 15, 16, 17, 96, 97, -1, + -1, -1, 55, 102, 25, 26, 27, 106, 29, 30, + 31, -1, 33, 66, 67, -1, -1, 70, 71, 72, + 73, -1, 75, -1, -1, 78, 79, 80, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, - -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, - -1, -1, -1, 74, -1, -1, -1, -1, -1, -1, - 81, 82, 83, 84, 85, -1, -1, -1, 89, 12, - 91, -1, 15, 16, 17, 96, 97, -1, -1, -1, - -1, 102, 25, 26, 27, 106, 29, 30, 31, -1, - 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, - -1, -1, 45, -1, 47, 48, 49, 50, 51, -1, - 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 74, -1, -1, -1, -1, -1, -1, 81, 82, - 83, 84, 85, -1, -1, -1, -1, 12, 91, -1, - 15, 16, 17, 96, 97, -1, -1, -1, -1, 102, - 25, 26, 27, 106, 29, 30, 31, -1, 33, -1, - -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, - -1, -1, 47, -1, 49, -1, 51, -1, 53, 12, - -1, -1, 15, 16, 17, -1, -1, -1, -1, 64, - -1, -1, 25, 26, 27, -1, 29, 30, 31, 74, - 33, -1, -1, -1, -1, -1, 81, 82, 83, 84, - 85, -1, -1, -1, -1, -1, 91, -1, 51, -1, - 53, 96, 97, -1, -1, -1, -1, 102, -1, -1, - -1, 106, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 74, -1, -1, -1, -1, -1, -1, 81, 82, - 83, 84, 85, -1, -1, -1, -1, 12, 91, -1, - 15, 16, 17, 96, 97, -1, -1, 54, -1, 102, - 25, 26, 27, 106, 29, 30, 31, -1, 33, 66, - 67, -1, -1, 70, 71, 72, 73, -1, 75, -1, - -1, 78, 79, 80, -1, -1, 51, -1, 53, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, - 97, 98, 99, -1, -1, -1, -1, 104, 105, 74, - -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, - 85, 44, -1, -1, -1, -1, 91, -1, -1, -1, - -1, 96, 97, -1, -1, -1, -1, 102, -1, -1, - -1, 106, -1, 66, 67, -1, -1, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, + -1, -1, 95, 96, 97, 98, 99, -1, 101, -1, + -1, 104, 105, 74, -1, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, 44, -1, -1, -1, -1, + 91, -1, -1, -1, -1, 96, 97, -1, -1, -1, + -1, 102, -1, -1, -1, 106, -1, 66, 67, -1, + -1, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, 80, -1, -1, -1, -1, 49, -1, -1, -1, + -1, -1, 55, -1, -1, -1, 95, 96, 97, 98, + 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, + 73, -1, 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, 55, -1, -1, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, 75, -1, @@ -1188,7 +1187,7 @@ static const yytype_int16 yycheck[] = 55, -1, -1, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, - 49, -1, -1, -1, -1, -1, 55, -1, -1, -1, + 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, 49, -1, -1, -1, @@ -1202,42 +1201,31 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, 75, -1, -1, 78, 79, 80, - -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 95, 96, 97, 98, 99, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 55, -1, -1, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, -1, -1, 95, 96, 97, 98, + -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, 75, -1, -1, 78, 79, 80, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 55, -1, - -1, -1, 95, 96, 97, 98, 99, -1, 101, 66, + -1, -1, -1, 86, 87, -1, -1, -1, -1, -1, + -1, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 57, -1, 95, 96, + -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, + 97, 98, 99, -1, -1, -1, 103, 104, 105, 66, + 67, -1, -1, 70, 71, 72, 73, -1, 75, -1, + -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, 105, 70, - 71, 72, 73, -1, 75, -1, -1, 78, 79, 80, + 71, -1, -1, -1, 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, 99, -1, - -1, 66, 67, 104, 105, 70, 71, 72, 73, -1, - 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, - -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, - 95, 96, 97, 98, 99, -1, -1, 66, 67, 104, - 105, 70, 71, 72, 73, -1, 75, -1, -1, 78, - 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, - 99, -1, -1, -1, 103, 104, 105, 66, 67, -1, - -1, 70, 71, 72, 73, -1, 75, -1, -1, 78, - 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 95, 96, 97, 98, - 99, -1, -1, 66, 67, 104, 105, 70, 71, -1, - -1, -1, 75, -1, -1, 78, 79, 80, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 95, 96, 97, 98, 99, -1, -1, -1, - -1, 104, 105 + -1, -1, -1, 104, 105 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1263,20 +1251,20 @@ static const yytype_uint8 yystos[] = 128, 47, 136, 140, 44, 76, 77, 30, 55, 70, 127, 128, 55, 70, 54, 141, 57, 136, 108, 49, 55, 49, 55, 49, 55, 49, 55, 86, 87, 108, - 30, 103, 107, 108, 111, 124, 128, 54, 123, 55, + 30, 103, 107, 108, 111, 123, 128, 123, 123, 55, 101, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 30, 143, 128, 103, 30, 128, 122, 30, 129, 128, 128, 128, 128, 70, 55, 128, 128, 122, 128, 30, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 30, 103, - 108, 128, 101, 114, 123, 123, 122, 128, 124, 101, - 108, 143, 128, 128, 143, 49, 49, 49, 49, 147, - 93, 36, 55, 124, 123, 108, 145, 30, 101, 101, - 128, 128, 128, 128, 103, 55, 128, 123, 94, 30, - 124, 145, 145, 128, 123, 38, 116, 117, 121, 34, - 124, 124, 123, 124, 123, 116, 128, 30, 144, 124, - 123, 37, 92, 54, 108, 123, 93, 124, 122, 30, - 93, 123, 124, 92, 123 + 108, 128, 124, 123, 54, 128, 124, 101, 108, 143, + 128, 128, 143, 49, 49, 49, 49, 147, 101, 114, + 123, 36, 55, 124, 123, 108, 145, 30, 101, 101, + 128, 128, 128, 128, 103, 93, 55, 128, 123, 94, + 30, 124, 145, 145, 128, 123, 38, 116, 117, 121, + 34, 124, 124, 123, 124, 123, 116, 128, 30, 144, + 124, 123, 37, 92, 123, 108, 123, 93, 124, 54, + 30, 93, 123, 124, 92, 123 }; #define yyerrok (yyerrstatus = 0) @@ -2188,10 +2176,10 @@ yyreduce: #line 192 "engines/director/lingo/lingo-gr.y" { inst body = 0, end = 0; - WRITE_UINT32(&body, (yyvsp[(3) - (5)].code) - (yyvsp[(1) - (5)].code)); - WRITE_UINT32(&end, (yyvsp[(4) - (5)].code) - (yyvsp[(1) - (5)].code)); - (*g_lingo->_currentScript)[(yyvsp[(1) - (5)].code) + 1] = body; /* body of loop */ - (*g_lingo->_currentScript)[(yyvsp[(1) - (5)].code) + 2] = end; ;} + WRITE_UINT32(&body, (yyvsp[(3) - (6)].code) - (yyvsp[(1) - (6)].code)); + WRITE_UINT32(&end, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code)); + (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = body; /* body of loop */ + (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 2] = end; ;} break; case 24: @@ -2252,7 +2240,7 @@ yyreduce: #line 244 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; - WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code)); + WRITE_UINT32(&then, (yyvsp[(3) - (9)].code) - (yyvsp[(1) - (9)].code)); WRITE_UINT32(&else1, (yyvsp[(6) - (9)].code) - (yyvsp[(1) - (9)].code)); WRITE_UINT32(&end, (yyvsp[(8) - (9)].code) - (yyvsp[(1) - (9)].code)); (*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 1] = then; /* thenpart */ @@ -2266,7 +2254,7 @@ yyreduce: #line 254 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; - WRITE_UINT32(&then, (yyvsp[(4) - (12)].code) - (yyvsp[(1) - (12)].code)); + WRITE_UINT32(&then, (yyvsp[(3) - (12)].code) - (yyvsp[(1) - (12)].code)); WRITE_UINT32(&else1, (yyvsp[(6) - (12)].code) - (yyvsp[(1) - (12)].code)); WRITE_UINT32(&end, (yyvsp[(11) - (12)].code) - (yyvsp[(1) - (12)].code)); (*g_lingo->_currentScript)[(yyvsp[(1) - (12)].code) + 1] = then; /* thenpart */ @@ -2282,7 +2270,7 @@ yyreduce: #line 272 "engines/director/lingo/lingo-gr.y" { inst then = 0; - WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code)); + WRITE_UINT32(&then, (yyvsp[(3) - (6)].code) - (yyvsp[(1) - (6)].code)); (*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then; /* thenpart */ g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;} @@ -2915,7 +2903,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2919 "engines/director/lingo/lingo-gr.cpp" +#line 2907 "engines/director/lingo/lingo-gr.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index 7887ffb4a8..ad34708557 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -189,10 +189,10 @@ stmt: stmtoneliner // statements // end repeat // - | repeatwhile expr stmtlist end tENDREPEAT { + | repeatwhile expr end stmtlist end tENDREPEAT { inst body = 0, end = 0; WRITE_UINT32(&body, $3 - $1); - WRITE_UINT32(&end, $4 - $1); + WRITE_UINT32(&end, $5 - $1); (*g_lingo->_currentScript)[$1 + 1] = body; /* body of loop */ (*g_lingo->_currentScript)[$1 + 2] = end; } /* end, if cond fails */ ; @@ -241,9 +241,9 @@ stmt: stmtoneliner } ; -ifstmt: if expr tTHEN begin stmtlist end elseifstmtlist end tENDIF { +ifstmt: if expr end tTHEN stmtlist end elseifstmtlist end tENDIF { inst then = 0, else1 = 0, end = 0; - WRITE_UINT32(&then, $4 - $1); + WRITE_UINT32(&then, $3 - $1); WRITE_UINT32(&else1, $6 - $1); WRITE_UINT32(&end, $8 - $1); (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ @@ -251,9 +251,9 @@ ifstmt: if expr tTHEN begin stmtlist end elseifstmtlist end tENDIF { (*g_lingo->_currentScript)[$1 + 3] = end; /* end, if cond fails */ g_lingo->processIf(0, $8 - $1); } - | if expr tTHEN begin stmtlist end elseifstmtlist end tELSE stmtlist end tENDIF { + | if expr end tTHEN stmtlist end elseifstmtlist end tELSE stmtlist end tENDIF { inst then = 0, else1 = 0, end = 0; - WRITE_UINT32(&then, $4 - $1); + WRITE_UINT32(&then, $3 - $1); WRITE_UINT32(&else1, $6 - $1); WRITE_UINT32(&end, $11 - $1); (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ @@ -269,9 +269,9 @@ elseifstmtlist: /* nothing */ | elseifstmt elseifstmtlist ; -elseifstmt: elseif expr tTHEN begin stmtlist end { +elseifstmt: elseif expr end tTHEN stmtlist end { inst then = 0; - WRITE_UINT32(&then, $4 - $1); + WRITE_UINT32(&then, $3 - $1); (*g_lingo->_currentScript)[$1 + 1] = then; /* thenpart */ g_lingo->codeLabel($1); } |