diff options
author | Eugene Sandulenko | 2019-12-31 12:17:10 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2019-12-31 16:27:28 +0100 |
commit | fe9c19db1527eb33756ae8eacd8b011f9cc95ef4 (patch) | |
tree | 28c664bb52ea4818000b9ac1fdb6b781af839f84 | |
parent | 5d2cbc1bfc265db4c970f4120420efd677a0d692 (diff) | |
download | scummvm-rg350-fe9c19db1527eb33756ae8eacd8b011f9cc95ef4.tar.gz scummvm-rg350-fe9c19db1527eb33756ae8eacd8b011f9cc95ef4.tar.bz2 scummvm-rg350-fe9c19db1527eb33756ae8eacd8b011f9cc95ef4.zip |
DIRECTOR: LINGO: Support getting object fields
-rw-r--r-- | engines/director/lingo/lingo-code.cpp | 8 | ||||
-rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 1286 | ||||
-rw-r--r-- | engines/director/lingo/lingo-gr.y | 4 | ||||
-rw-r--r-- | engines/director/lingo/lingo-the.cpp | 9 | ||||
-rw-r--r-- | engines/director/lingo/lingo.h | 2 |
5 files changed, 675 insertions, 634 deletions
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index c571d7cf6e..a18866b465 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -462,6 +462,14 @@ void Lingo::c_theentityassign() { g_lingo->setTheEntity(entity, id, field, d); } +void Lingo::c_objectfieldpush() { + Common::String object(g_lingo->readString()); + int field = g_lingo->readInt(); + + Datum d = g_lingo->getObjectField(object, field); + g_lingo->push(d); +} + void Lingo::c_objectfieldassign() { Common::String object(g_lingo->readString()); int field = g_lingo->readInt(); diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index bab077a4af..c371c4afbc 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -549,18 +549,18 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 125 +#define YYFINAL 126 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1602 +#define YYLAST 1638 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 107 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 41 /* YYNRULES -- Number of rules. */ -#define YYNRULES 159 +#define YYNRULES 160 /* YYNRULES -- Number of states. */ -#define YYNSTATES 342 +#define YYNSTATES 343 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -620,16 +620,17 @@ static const yytype_uint16 yyprhs[] = 110, 122, 126, 133, 138, 148, 161, 162, 165, 172, 184, 192, 195, 199, 201, 203, 204, 205, 206, 209, 212, 216, 218, 220, 222, 224, 226, 228, 230, 232, - 234, 237, 240, 245, 247, 250, 252, 256, 260, 264, - 268, 272, 276, 280, 284, 288, 292, 296, 300, 304, - 307, 311, 315, 319, 323, 326, 329, 333, 337, 342, - 347, 352, 359, 364, 371, 376, 383, 388, 395, 400, - 407, 409, 412, 415, 417, 419, 422, 424, 427, 430, - 433, 435, 438, 441, 443, 446, 451, 454, 458, 460, - 464, 466, 470, 472, 476, 479, 482, 485, 488, 492, - 495, 499, 502, 505, 508, 512, 515, 516, 520, 521, - 530, 533, 534, 542, 551, 558, 561, 562, 564, 568, - 573, 574, 576, 580, 581, 584, 585, 587, 591, 593 + 234, 237, 240, 245, 247, 250, 252, 254, 258, 262, + 266, 270, 274, 278, 282, 286, 290, 294, 298, 302, + 306, 309, 313, 317, 321, 325, 328, 331, 335, 339, + 344, 349, 354, 361, 366, 373, 378, 385, 390, 397, + 402, 409, 411, 414, 417, 419, 421, 424, 426, 429, + 432, 435, 437, 440, 443, 445, 448, 453, 456, 460, + 462, 466, 468, 472, 474, 478, 481, 484, 487, 490, + 494, 497, 501, 504, 507, 510, 514, 517, 518, 522, + 523, 532, 535, 536, 544, 553, 560, 563, 564, 566, + 570, 575, 576, 578, 582, 583, 586, 587, 589, 593, + 595 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -660,41 +661,41 @@ static const yytype_int16 yyrhs[] = 17, -1, 33, -1, 31, -1, 30, -1, 127, -1, 129, -1, 25, -1, 26, 128, -1, 27, 146, -1, 30, 102, 146, 103, -1, 15, -1, 16, 128, -1, - 110, -1, 128, 96, 128, -1, 128, 97, 128, -1, - 128, 98, 128, -1, 128, 99, 128, -1, 128, 73, - 128, -1, 128, 94, 128, -1, 128, 93, 128, -1, - 128, 68, 128, -1, 128, 69, 128, -1, 128, 66, - 128, -1, 128, 67, 128, -1, 128, 70, 128, -1, - 128, 71, 128, -1, 72, 128, -1, 128, 95, 128, - -1, 128, 76, 128, -1, 128, 77, 128, -1, 128, - 78, 128, -1, 96, 128, -1, 97, 128, -1, 102, - 128, 103, -1, 104, 146, 105, -1, 83, 128, 84, - 128, -1, 83, 128, 85, 128, -1, 79, 128, 50, - 128, -1, 79, 128, 56, 128, 50, 128, -1, 80, - 128, 50, 128, -1, 80, 128, 56, 128, 50, 128, - -1, 81, 128, 50, 128, -1, 81, 128, 56, 128, - 50, 128, -1, 82, 128, 50, 128, -1, 82, 128, - 56, 128, 50, 128, -1, 89, 102, 30, 103, -1, - 89, 102, 30, 106, 146, 103, -1, 89, -1, 29, - 127, -1, 52, 128, -1, 134, -1, 136, -1, 41, - 53, -1, 41, -1, 42, 131, -1, 87, 132, -1, - 65, 133, -1, 19, -1, 21, 128, -1, 20, 128, - -1, 20, -1, 22, 146, -1, 62, 128, 58, 128, - -1, 62, 128, -1, 23, 30, 146, -1, 30, -1, - 131, 106, 30, -1, 30, -1, 132, 106, 30, -1, - 30, -1, 133, 106, 30, -1, 43, 46, -1, 43, - 49, -1, 43, 51, -1, 43, 128, -1, 43, 128, - 135, -1, 43, 135, -1, 50, 48, 128, -1, 48, - 128, -1, 63, 64, -1, 63, 128, -1, 63, 128, - 135, -1, 63, 135, -1, -1, 35, 137, 146, -1, - -1, 47, 30, 139, 122, 142, 101, 144, 124, -1, - 61, 30, -1, -1, 36, 140, 122, 142, 101, 144, - 124, -1, 141, 122, 142, 101, 144, 124, 34, 143, - -1, 141, 122, 142, 101, 144, 124, -1, 88, 30, - -1, -1, 30, -1, 142, 106, 30, -1, 142, 101, - 106, 30, -1, -1, 30, -1, 143, 106, 30, -1, - -1, 30, 147, -1, -1, 128, -1, 146, 106, 128, - -1, 128, -1, 147, 106, 128, -1 + 37, -1, 110, -1, 128, 96, 128, -1, 128, 97, + 128, -1, 128, 98, 128, -1, 128, 99, 128, -1, + 128, 73, 128, -1, 128, 94, 128, -1, 128, 93, + 128, -1, 128, 68, 128, -1, 128, 69, 128, -1, + 128, 66, 128, -1, 128, 67, 128, -1, 128, 70, + 128, -1, 128, 71, 128, -1, 72, 128, -1, 128, + 95, 128, -1, 128, 76, 128, -1, 128, 77, 128, + -1, 128, 78, 128, -1, 96, 128, -1, 97, 128, + -1, 102, 128, 103, -1, 104, 146, 105, -1, 83, + 128, 84, 128, -1, 83, 128, 85, 128, -1, 79, + 128, 50, 128, -1, 79, 128, 56, 128, 50, 128, + -1, 80, 128, 50, 128, -1, 80, 128, 56, 128, + 50, 128, -1, 81, 128, 50, 128, -1, 81, 128, + 56, 128, 50, 128, -1, 82, 128, 50, 128, -1, + 82, 128, 56, 128, 50, 128, -1, 89, 102, 30, + 103, -1, 89, 102, 30, 106, 146, 103, -1, 89, + -1, 29, 127, -1, 52, 128, -1, 134, -1, 136, + -1, 41, 53, -1, 41, -1, 42, 131, -1, 87, + 132, -1, 65, 133, -1, 19, -1, 21, 128, -1, + 20, 128, -1, 20, -1, 22, 146, -1, 62, 128, + 58, 128, -1, 62, 128, -1, 23, 30, 146, -1, + 30, -1, 131, 106, 30, -1, 30, -1, 132, 106, + 30, -1, 30, -1, 133, 106, 30, -1, 43, 46, + -1, 43, 49, -1, 43, 51, -1, 43, 128, -1, + 43, 128, 135, -1, 43, 135, -1, 50, 48, 128, + -1, 48, 128, -1, 63, 64, -1, 63, 128, -1, + 63, 128, 135, -1, 63, 135, -1, -1, 35, 137, + 146, -1, -1, 47, 30, 139, 122, 142, 101, 144, + 124, -1, 61, 30, -1, -1, 36, 140, 122, 142, + 101, 144, 124, -1, 141, 122, 142, 101, 144, 124, + 34, 143, -1, 141, 122, 142, 101, 144, 124, -1, + 88, 30, -1, -1, 30, -1, 142, 106, 30, -1, + 142, 101, 106, 30, -1, -1, 30, -1, 143, 106, + 30, -1, -1, 30, 147, -1, -1, 128, -1, 146, + 106, 128, -1, 128, -1, 147, 106, 128, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -706,16 +707,17 @@ static const yytype_uint16 yyrline[] = 242, 254, 259, 261, 266, 276, 288, 289, 292, 300, 310, 323, 326, 333, 340, 348, 351, 354, 355, 356, 359, 365, 369, 372, 375, 378, 381, 387, 388, 389, - 392, 395, 396, 399, 407, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 451, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 467, 470, 473, 477, 478, 479, 480, 483, 484, - 487, 488, 491, 492, 503, 504, 505, 506, 510, 514, - 520, 521, 524, 525, 529, 533, 537, 537, 567, 567, - 573, 574, 574, 580, 588, 595, 597, 598, 599, 600, - 603, 604, 605, 608, 611, 619, 620, 621, 624, 625 + 392, 395, 396, 399, 407, 413, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 455, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 471, 474, 477, 481, 482, 483, 484, 487, + 488, 491, 492, 495, 496, 507, 508, 509, 510, 514, + 518, 524, 525, 528, 529, 533, 537, 541, 541, 571, + 571, 577, 578, 578, 584, 592, 599, 601, 602, 603, + 604, 607, 608, 609, 612, 615, 623, 624, 625, 628, + 629 }; #endif @@ -782,12 +784,13 @@ static const yytype_uint8 yyr1[] = 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 129, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, - 132, 132, 133, 133, 134, 134, 134, 134, 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 + 128, 128, 129, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 131, + 131, 132, 132, 133, 133, 134, 134, 134, 134, 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. */ @@ -799,16 +802,17 @@ static const yytype_uint8 yyr2[] = 11, 3, 6, 4, 9, 12, 0, 2, 6, 11, 7, 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, 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, 4, 6, - 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, - 1, 2, 2, 1, 2, 4, 2, 3, 1, 3, - 1, 3, 1, 3, 2, 2, 2, 2, 3, 2, - 3, 2, 2, 2, 3, 2, 0, 3, 0, 8, - 2, 0, 7, 8, 6, 2, 0, 1, 3, 4, - 0, 1, 3, 0, 2, 0, 1, 3, 1, 3 + 2, 2, 4, 1, 2, 1, 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, 4, + 6, 1, 2, 2, 1, 1, 2, 1, 2, 2, + 2, 1, 2, 2, 1, 2, 4, 2, 3, 1, + 3, 1, 3, 1, 3, 2, 2, 2, 2, 3, + 2, 3, 2, 2, 2, 3, 2, 0, 3, 0, + 8, 2, 0, 7, 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 @@ -816,103 +820,103 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 52, 63, 0, 53, 110, 113, 0, 155, - 0, 59, 0, 155, 0, 56, 55, 54, 136, 141, - 106, 0, 0, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 0, 0, 100, 0, 0, 0, 155, 0, 3, 65, - 26, 7, 27, 0, 0, 0, 0, 0, 57, 20, - 58, 21, 103, 104, 6, 45, 19, 4, 56, 0, - 64, 112, 111, 156, 114, 155, 60, 61, 56, 101, - 155, 158, 154, 155, 45, 105, 118, 107, 124, 0, - 125, 0, 126, 127, 129, 138, 102, 0, 41, 0, - 0, 0, 0, 0, 140, 116, 132, 133, 135, 122, - 109, 79, 0, 0, 0, 0, 0, 120, 108, 145, - 0, 84, 85, 0, 0, 1, 5, 46, 0, 46, - 46, 25, 0, 23, 24, 22, 0, 0, 0, 0, + 0, 0, 52, 63, 0, 53, 111, 114, 0, 156, + 0, 59, 0, 156, 0, 56, 55, 54, 137, 142, + 65, 107, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 146, 155, 0, 0, 117, 156, - 0, 0, 137, 146, 0, 131, 0, 128, 45, 0, - 0, 0, 42, 0, 0, 57, 0, 0, 0, 0, - 50, 0, 134, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 87, 2, 47, - 46, 0, 31, 46, 0, 47, 75, 76, 73, 74, - 77, 78, 70, 81, 82, 83, 72, 71, 80, 66, - 67, 68, 69, 147, 0, 157, 62, 159, 0, 119, - 130, 146, 8, 9, 10, 11, 15, 13, 0, 0, - 14, 12, 18, 115, 123, 90, 0, 92, 0, 94, - 0, 96, 0, 88, 89, 121, 98, 155, 46, 0, - 47, 0, 33, 46, 153, 0, 153, 0, 17, 16, - 0, 0, 0, 0, 0, 48, 49, 0, 0, 0, - 46, 0, 0, 0, 47, 148, 47, 153, 91, 93, - 95, 97, 99, 28, 0, 46, 36, 46, 32, 149, - 144, 142, 47, 46, 47, 44, 46, 36, 0, 0, - 150, 139, 47, 46, 45, 0, 37, 46, 45, 40, - 151, 143, 46, 0, 47, 34, 0, 0, 0, 0, - 29, 46, 47, 46, 152, 30, 0, 46, 0, 35, - 38, 39 + 51, 0, 0, 101, 0, 0, 0, 156, 0, 3, + 66, 26, 7, 27, 0, 0, 0, 0, 0, 57, + 20, 58, 21, 104, 105, 6, 45, 19, 4, 56, + 0, 64, 113, 112, 157, 115, 156, 60, 61, 56, + 102, 156, 159, 155, 156, 45, 106, 119, 108, 125, + 0, 126, 0, 127, 128, 130, 139, 103, 0, 41, + 0, 0, 0, 0, 0, 141, 117, 133, 134, 136, + 123, 110, 80, 0, 0, 0, 0, 0, 121, 109, + 146, 0, 85, 86, 0, 0, 1, 5, 46, 0, + 46, 46, 25, 0, 23, 24, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 156, 0, 0, 118, + 157, 0, 0, 138, 147, 0, 132, 0, 129, 45, + 0, 0, 0, 42, 0, 0, 57, 0, 0, 0, + 0, 50, 0, 135, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 87, 88, 2, + 47, 46, 0, 31, 46, 0, 47, 76, 77, 74, + 75, 78, 79, 71, 82, 83, 84, 73, 72, 81, + 67, 68, 69, 70, 148, 0, 158, 62, 160, 0, + 120, 131, 147, 8, 9, 10, 11, 15, 13, 0, + 0, 14, 12, 18, 116, 124, 91, 0, 93, 0, + 95, 0, 97, 0, 89, 90, 122, 99, 156, 46, + 0, 47, 0, 33, 46, 154, 0, 154, 0, 17, + 16, 0, 0, 0, 0, 0, 48, 49, 0, 0, + 0, 46, 0, 0, 0, 47, 149, 47, 154, 92, + 94, 96, 98, 100, 28, 0, 46, 36, 46, 32, + 150, 145, 143, 47, 46, 47, 44, 46, 36, 0, + 0, 151, 140, 47, 46, 45, 0, 37, 46, 45, + 40, 152, 144, 46, 0, 47, 34, 0, 0, 0, + 0, 29, 46, 47, 46, 153, 30, 0, 46, 0, + 35, 38, 39 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 47, 48, 49, 50, 130, 276, 52, 306, 307, - 131, 53, 54, 55, 308, 154, 199, 258, 56, 57, - 58, 59, 60, 61, 87, 118, 110, 62, 94, 63, - 83, 64, 168, 84, 65, 224, 321, 284, 66, 160, - 82 + -1, 48, 49, 50, 51, 131, 277, 53, 307, 308, + 132, 54, 55, 56, 309, 155, 200, 259, 57, 58, + 59, 60, 61, 62, 88, 119, 111, 63, 95, 64, + 84, 65, 169, 85, 66, 225, 322, 285, 67, 161, + 83 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -266 +#define YYPACT_NINF -268 static const yytype_int16 yypact[] = { - 315, -77, -266, -266, 975, -266, -266, 975, 975, 975, - 20, -266, 975, 975, 57, 1008, -266, -266, -266, -266, - 14, 24, 853, -266, 48, 975, 33, 40, 54, 74, - 975, 914, 77, 975, 975, 975, 975, 975, 975, -266, - 81, 82, 11, 975, 975, 975, 975, 7, -266, -266, - -266, -266, -266, 975, 46, 975, 679, 975, -266, 1490, - -266, -266, -266, -266, -266, -266, -266, -266, 13, 975, - 1490, 1490, 1490, 1490, 10, 975, 1490, 10, -266, -266, - 975, 1490, 12, 975, -266, -266, -266, 17, -266, 975, - -266, 69, -266, 1061, -266, -266, 1047, 89, -266, 25, - 975, 27, 64, 70, -266, 144, -266, 1061, -266, -266, - 23, -266, 1097, 1131, 1165, 1199, 1456, -266, 26, -266, - 96, -266, -266, 1418, -5, -266, 406, 1490, 975, 1490, - -266, -266, 975, 1490, -266, -266, 1369, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 100, 975, 1047, 975, 10, 1418, - -86, 975, 10, 100, 101, 1490, 975, -266, -266, 80, - 975, 975, -266, 975, 975, 86, 1405, 975, 975, 975, - -266, 975, -266, 120, 975, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 125, -1, -266, -266, -266, -266, - 1490, 103, -266, 1490, 975, -266, -51, -51, -51, -51, - 1503, 1503, -266, -38, -51, -51, -51, -51, -38, -35, - -35, -266, -266, -266, -78, 1490, -266, 1490, -33, -266, - 1490, 100, -266, -266, 1490, 1490, 1490, -51, 975, 975, - 1490, -51, 1490, 1490, -266, 1490, 1233, 1490, 1267, 1490, - 1301, 1490, 1335, 1490, 1490, -266, -266, 975, 588, -19, - -266, 104, 1490, 588, 50, 130, 50, -7, -51, 1490, - 975, 975, 975, 975, 0, -266, -266, 72, 105, 975, - 588, 770, 73, 134, -266, -266, -266, 50, 1490, 1490, - 1490, 1490, -266, -266, 975, 1490, 128, -266, -266, -266, - 497, 588, -266, 1490, -266, -266, 132, 128, 975, -24, - 142, 588, -266, 588, -266, 107, -266, 1490, -266, -266, - -266, 84, 588, 88, -266, -266, 136, 770, 163, 108, - -266, 588, -266, -266, -266, -266, 111, 588, 113, -266, - -266, -266 + 316, -42, -268, -268, 976, -268, -268, 976, 976, 976, + 21, -268, 976, 976, 57, 1009, -268, -268, -268, -268, + -268, 15, 40, 854, -268, 55, 976, -38, 41, 64, + 71, 976, 915, 80, 976, 976, 976, 976, 976, 976, + -268, 81, 82, 11, 976, 976, 976, 976, 2, -268, + -268, -268, -268, -268, 976, 46, 976, 680, 976, -268, + 1526, -268, -268, -268, -268, -268, -268, -268, -268, 13, + 976, 1526, 1526, 1526, 1526, 10, 976, 1526, 10, -268, + -268, 976, 1526, 12, 976, -268, -268, -268, 14, -268, + 976, -268, 69, -268, 1062, -268, -268, 1048, 89, -268, + -31, 976, 36, 65, 72, -268, 1420, -268, 1062, -268, + -268, 18, -268, 1098, 1132, 1166, 1200, 1492, -268, 20, + -268, 100, -268, -268, 1454, 3, -268, 407, 1526, 976, + 1526, -268, -268, 976, 1526, -268, -268, 1370, 976, 976, + 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, + 976, 976, 976, 976, 976, 101, 976, 1048, 976, 10, + 1454, -27, 976, 10, 101, 102, 1526, 976, -268, -268, + 77, 976, 976, -268, 976, 976, 83, 1406, 976, 976, + 976, -268, 976, -268, 103, 976, 976, 976, 976, 976, + 976, 976, 976, 976, 976, 125, -10, -268, -268, -268, + -268, 1526, 104, -268, 1526, 976, -268, -50, -50, -50, + -50, 1539, 1539, -268, -34, -50, -50, -50, -50, -34, + -15, -15, -268, -268, -268, -77, 1526, -268, 1526, -46, + -268, 1526, 101, -268, -268, 1526, 1526, 1526, -50, 976, + 976, 1526, -50, 1526, 1526, -268, 1526, 1234, 1526, 1268, + 1526, 1302, 1526, 1336, 1526, 1526, -268, -268, 976, 589, + -20, -268, 105, 1526, 589, 50, 127, 50, -6, -50, + 1526, 976, 976, 976, 976, -1, -268, -268, 70, 106, + 976, 589, 771, 73, 134, -268, -268, -268, 50, 1526, + 1526, 1526, 1526, -268, -268, 976, 1526, 126, -268, -268, + -268, 498, 589, -268, 1526, -268, -268, 130, 126, 976, + -23, 142, 589, -268, 589, -268, 90, -268, 1526, -268, + -268, -268, 67, 589, 107, -268, -268, 136, 771, 162, + 108, -268, 589, -268, -268, -268, -268, 110, 589, 112, + -268, -268, -268 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -266, -266, 79, -266, -265, -266, 1, -266, -109, -266, - -266, -266, -266, 150, -266, -82, -8, -108, -266, -266, - -2, -4, 38, 152, -266, -266, -266, -266, -18, -266, - -266, -266, -266, -266, -266, -149, -266, -230, 153, -3, - -266 + -268, -268, 76, -268, -267, -268, 1, -268, -114, -268, + -268, -268, -268, 147, -268, -78, -8, -108, -268, -268, + -2, -4, 37, 149, -268, -268, -268, -268, -19, -268, + -268, -268, -268, -268, -268, -150, -268, -250, 151, -3, + -268 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -922,234 +926,228 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -6 static const yytype_int16 yytable[] = { - 70, 51, 163, 71, 72, 73, 74, 125, 76, 73, - 77, 81, 79, 108, 228, 318, 297, 226, 93, 278, - 157, 96, 143, 264, 67, 144, 105, 107, 265, 111, - 112, 113, 114, 115, 116, 143, 286, 279, 143, 121, - 122, 123, 73, 124, 149, 150, 151, 152, 153, 127, - 75, 129, 133, 136, 86, 99, 100, 302, 150, 151, - 152, 153, 333, 152, 153, 156, 319, 85, 266, 2, - 101, 73, 158, 265, 5, 167, 159, 102, 95, 73, - 162, 173, 267, 177, 103, 165, 231, 78, 16, 182, - 17, 97, 98, 174, 287, 178, 176, 263, 175, 265, - 197, 157, 256, 292, 104, 257, 157, 109, 126, 14, - 232, 117, 119, 120, 128, 155, 157, 166, 161, 172, - 179, 201, 202, 164, 200, 180, 195, 51, 203, 183, - 223, 229, 194, 206, 207, 208, 209, 210, 211, 212, + 71, 52, 126, 72, 73, 74, 75, 164, 77, 74, + 78, 82, 80, 109, 229, 298, 319, 287, 279, 94, + 98, 99, 97, 144, 265, 174, 145, 106, 108, 266, + 112, 113, 114, 115, 116, 117, 280, 175, 303, 144, + 122, 123, 124, 74, 125, 150, 151, 152, 153, 154, + 128, 76, 130, 134, 137, 267, 100, 101, 144, 68, + 266, 334, 151, 152, 153, 154, 157, 320, 86, 2, + 87, 102, 74, 159, 5, 168, 227, 160, 103, 158, + 74, 163, 268, 153, 154, 96, 166, 79, 16, 183, + 17, 232, 178, 257, 104, 288, 258, 177, 264, 176, + 266, 105, 293, 127, 179, 158, 14, 233, 198, 158, + 110, 118, 120, 121, 129, 156, 158, 167, 162, 173, + 165, 180, 202, 203, 184, 201, 195, 181, 52, 204, + 196, 224, 230, 245, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 244, 73, 280, 225, 238, 255, 283, 227, 260, 281, - 285, 294, 230, 293, 299, 298, 234, 235, 305, 236, - 237, 314, 320, 240, 241, 242, 300, 243, 301, 330, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 328, 332, 259, 334, 311, 261, 313, 325, 316, 335, - 262, 339, 181, 341, 322, 198, 132, 233, 134, 135, - 137, 138, 139, 140, 141, 142, 331, 143, 0, 0, - 144, 145, 146, 0, 337, 0, 0, 0, 0, 0, - 0, 0, 324, 0, 268, 269, 327, 147, 148, 149, - 150, 151, 152, 153, 0, 0, 0, 0, 0, 0, - 277, 0, 0, 73, 274, 282, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 288, 289, 290, 291, - 0, 0, 296, 0, 0, 295, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 304, 0, 309, - 303, 0, 0, 0, 0, 312, 0, 0, 315, 0, - 0, 0, 0, 0, 317, 323, 0, 0, 0, 326, - 0, 0, 0, 0, 329, -5, 1, 0, 0, 0, - 0, 0, 0, 336, 0, 338, 0, 2, 0, 340, - 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, - 11, 12, 13, 0, 14, 15, 16, 0, 17, 0, - 18, 19, 0, 0, 0, 0, 20, 21, 22, 23, - 0, 0, 24, 0, 0, 0, 0, 25, 26, 27, - 0, 0, 28, 0, 0, 0, 29, 30, 31, 0, - 32, 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, 0, - 0, 43, 44, 0, 0, 0, -5, 45, 2, 46, - 0, 3, 4, 5, 0, 6, 7, 8, 9, 10, + 223, 239, 74, 281, 226, 256, 284, 286, 228, 261, + 282, 294, 295, 231, 300, 299, 306, 235, 236, 315, + 237, 238, 321, 329, 241, 242, 243, 301, 244, 302, + 326, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 333, 335, 260, 317, 312, 262, 314, 331, 336, + 340, 263, 342, 199, 133, 323, 135, 234, 136, 0, + 0, 0, 0, 0, 0, 0, 0, 332, 0, 0, + 0, 0, 0, 0, 0, 338, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 269, 270, 325, 0, 0, + 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 278, 0, 0, 74, 275, 283, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 289, 290, 291, + 292, 0, 0, 297, 0, 0, 296, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, + 310, 304, 0, 0, 0, 0, 313, 0, 0, 316, + 0, 0, 0, 0, 0, 318, 324, 0, 0, 0, + 327, 0, 0, 0, 0, 330, -5, 1, 0, 0, + 0, 0, 0, 0, 337, 0, 339, 0, 2, 0, + 341, 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, 11, 12, 13, 0, 14, 15, 16, 0, 17, - 0, 18, 19, 0, 0, 0, 0, 20, 21, 22, - 23, 0, 0, 24, 0, 0, 0, 0, 25, 26, - 27, 0, 0, 28, 0, 0, 0, 29, 30, 31, - 0, 32, 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, - 0, 0, 43, 44, 0, 0, 0, 0, 45, 2, - 46, 0, 3, 4, 5, 0, 6, 7, 8, 9, + 0, 18, 19, 20, 0, 0, 0, 21, 22, 23, + 24, 0, 0, 25, 0, 0, 0, 0, 26, 27, + 28, 0, 0, 29, 0, 0, 0, 30, 31, 32, + 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, + 0, 0, 40, 41, 42, 43, 0, 0, 0, 0, + 0, 0, 44, 45, 0, 0, 0, -5, 46, 2, + 47, 0, 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, 11, 12, 13, 0, 14, 15, 16, 0, - 17, 310, 18, 0, 0, 0, 0, 0, 20, 21, - 22, 23, 0, 0, 0, 0, 0, 0, 0, 25, - 26, 27, 0, 0, 28, 0, 0, 0, 0, 30, - 31, 0, 32, 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, 0, 0, 43, 44, 0, 0, 0, 275, 45, - 2, 46, 0, 3, 4, 5, 0, 6, 7, 8, + 17, 0, 18, 19, 20, 0, 0, 0, 21, 22, + 23, 24, 0, 0, 25, 0, 0, 0, 0, 26, + 27, 28, 0, 0, 29, 0, 0, 0, 30, 31, + 32, 0, 33, 0, 0, 0, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 35, 36, 37, 38, + 39, 0, 0, 40, 41, 42, 43, 0, 0, 0, + 0, 0, 0, 44, 45, 0, 0, 0, 0, 46, + 2, 47, 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, 0, 0, 20, - 21, 22, 23, 0, 0, 0, 0, 0, 0, 0, - 25, 26, 27, 0, 0, 28, 0, 0, 0, 0, - 30, 31, 0, 32, 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, 0, 0, 43, 44, 0, 0, 0, 275, - 45, 2, 46, 0, 3, 4, 5, 0, 6, 7, + 0, 17, 311, 18, 0, 20, 0, 0, 0, 21, + 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, + 26, 27, 28, 0, 0, 29, 0, 0, 0, 0, + 31, 32, 0, 33, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 35, 36, 37, + 38, 39, 0, 0, 40, 41, 0, 43, 0, 0, + 0, 0, 0, 0, 44, 45, 0, 0, 0, 276, + 46, 2, 47, 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, 0, 0, - 20, 21, 22, 23, 0, 0, 0, 0, 0, 0, - 0, 25, 0, 27, 0, 0, 0, 0, 0, 0, - 0, 30, 31, 0, 32, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, - 36, 37, 38, 0, 0, 0, 40, 0, 42, 0, - 0, 0, 0, 0, 0, 43, 44, 0, 0, 0, - 0, 45, 2, 46, 0, 3, 4, 5, 0, 6, + 16, 0, 17, 0, 18, 0, 20, 0, 0, 0, + 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, + 0, 26, 27, 28, 0, 0, 29, 0, 0, 0, + 0, 31, 32, 0, 33, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 35, 36, + 37, 38, 39, 0, 0, 40, 41, 0, 43, 0, + 0, 0, 0, 0, 0, 44, 45, 0, 0, 0, + 276, 46, 2, 47, 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, 0, - 0, 20, 21, 22, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 0, 27, 0, 0, 0, 0, 0, - 0, 0, 30, 31, 0, 32, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 37, 38, 0, 0, 0, 40, 0, 42, - 0, 0, 0, 0, 0, 2, 43, 44, 3, 4, - 5, 0, 45, 0, 46, 0, 0, 0, 11, 12, - 13, 0, 14, 68, 16, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, - 0, 89, 90, 91, 92, 69, 0, 27, 0, 0, + 15, 16, 0, 17, 0, 18, 0, 20, 0, 0, + 0, 21, 22, 23, 24, 0, 0, 0, 0, 0, + 0, 0, 26, 0, 28, 0, 0, 0, 0, 0, + 0, 0, 31, 32, 0, 33, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 35, + 36, 37, 38, 39, 0, 0, 0, 41, 0, 43, + 0, 0, 0, 0, 0, 0, 44, 45, 0, 0, + 0, 0, 46, 2, 47, 0, 3, 4, 5, 0, + 6, 7, 8, 9, 10, 0, 11, 12, 13, 0, + 14, 15, 16, 0, 17, 0, 18, 0, 20, 0, + 0, 0, 21, 22, 23, 0, 0, 0, 0, 0, + 0, 0, 0, 26, 0, 28, 0, 0, 0, 0, + 0, 0, 0, 31, 32, 0, 33, 0, 0, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 35, 36, 37, 38, 39, 0, 0, 0, 41, 0, + 43, 0, 0, 0, 0, 0, 2, 44, 45, 3, + 4, 5, 0, 46, 0, 47, 0, 0, 0, 11, + 12, 13, 0, 14, 69, 16, 0, 17, 0, 0, + 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, + 89, 0, 90, 91, 92, 93, 70, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 2, 0, 0, 3, - 4, 5, 34, 35, 36, 37, 38, 0, 0, 11, - 12, 13, 42, 14, 68, 16, 0, 17, 0, 43, - 44, 0, 0, 0, 0, 45, 0, 46, 0, 0, - 0, 0, 89, 0, 91, 0, 69, 0, 27, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, - 0, 0, 0, 0, 0, 0, 33, 2, 0, 0, - 3, 4, 5, 34, 35, 36, 37, 38, 0, 0, - 11, 12, 13, 42, 14, 68, 16, 0, 17, 0, - 43, 44, 0, 0, 0, 0, 45, 0, 46, 0, - 2, 0, 0, 3, 4, 5, 0, 69, 0, 27, - 0, 0, 0, 11, 12, 13, 0, 14, 68, 16, - 0, 17, 0, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, - 69, 0, 27, 0, 42, 0, 0, 0, 0, 0, - 0, 43, 44, 0, 0, 0, 0, 45, 0, 46, - 33, 0, 0, 0, 0, 0, 0, 34, 35, 36, - 37, 38, 169, 0, 0, 0, 0, 42, 0, 0, - 0, 0, 0, 0, 43, 44, 0, 0, 0, 89, - 80, 91, 46, 137, 138, 139, 140, 141, 142, 0, - 143, 170, 171, 144, 145, 146, 0, 137, 138, 139, - 140, 141, 142, 0, 143, 0, 0, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 184, 0, 0, - 0, 0, 0, 185, 147, 148, 149, 150, 151, 152, - 153, 0, 0, 137, 138, 139, 140, 141, 142, 0, - 143, 0, 0, 144, 145, 146, 0, 0, 0, 0, - 0, 186, 0, 0, 0, 0, 0, 187, 0, 0, - 147, 148, 149, 150, 151, 152, 153, 137, 138, 139, - 140, 141, 142, 0, 143, 0, 0, 144, 145, 146, - 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, - 0, 189, 0, 0, 147, 148, 149, 150, 151, 152, - 153, 137, 138, 139, 140, 141, 142, 0, 143, 0, - 0, 144, 145, 146, 0, 0, 0, 0, 0, 190, - 0, 0, 0, 0, 0, 191, 0, 0, 147, 148, - 149, 150, 151, 152, 153, 137, 138, 139, 140, 141, - 142, 0, 143, 0, 0, 144, 145, 146, 0, 0, - 0, 0, 0, 270, 0, 0, 0, 0, 0, 0, - 0, 0, 147, 148, 149, 150, 151, 152, 153, 137, - 138, 139, 140, 141, 142, 0, 143, 0, 0, 144, - 145, 146, 0, 0, 0, 0, 0, 271, 0, 0, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 150, - 151, 152, 153, 137, 138, 139, 140, 141, 142, 0, - 143, 0, 0, 144, 145, 146, 0, 0, 0, 0, - 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, - 147, 148, 149, 150, 151, 152, 153, 137, 138, 139, - 140, 141, 142, 0, 143, 0, 0, 144, 145, 146, - 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, - 0, 0, 0, 0, 147, 148, 149, 150, 151, 152, - 153, 137, 138, 139, 140, 141, 142, 0, 143, 0, - 0, 144, 145, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 204, 0, 0, 147, 148, - 149, 150, 151, 152, 153, 137, 138, 139, 140, 141, - 142, 0, 143, 0, 0, 144, 145, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 2, 0, 0, + 3, 4, 5, 35, 36, 37, 38, 39, 0, 0, + 11, 12, 13, 43, 14, 69, 16, 0, 17, 0, + 44, 45, 20, 0, 0, 0, 46, 0, 47, 0, + 0, 0, 0, 90, 0, 92, 0, 70, 0, 28, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, + 0, 0, 0, 0, 0, 0, 0, 34, 2, 0, + 0, 3, 4, 5, 35, 36, 37, 38, 39, 0, + 0, 11, 12, 13, 43, 14, 69, 16, 0, 17, + 0, 44, 45, 20, 0, 0, 0, 46, 0, 47, + 0, 2, 0, 0, 3, 4, 5, 0, 70, 0, + 28, 0, 0, 0, 11, 12, 13, 0, 14, 69, + 16, 0, 17, 0, 0, 0, 20, 0, 34, 0, + 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, + 0, 70, 0, 28, 0, 43, 0, 0, 0, 0, + 0, 0, 44, 45, 0, 0, 0, 0, 46, 0, + 47, 34, 0, 0, 0, 0, 0, 0, 35, 36, + 37, 38, 39, 170, 0, 0, 0, 0, 43, 0, + 0, 0, 0, 0, 0, 44, 45, 0, 0, 0, + 90, 81, 92, 47, 138, 139, 140, 141, 142, 143, + 0, 144, 171, 172, 145, 146, 147, 0, 138, 139, + 140, 141, 142, 143, 0, 144, 0, 0, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 185, 0, + 0, 0, 0, 0, 186, 148, 149, 150, 151, 152, + 153, 154, 0, 0, 138, 139, 140, 141, 142, 143, + 0, 144, 0, 0, 145, 146, 147, 0, 0, 0, + 0, 0, 187, 0, 0, 0, 0, 0, 188, 0, + 0, 148, 149, 150, 151, 152, 153, 154, 138, 139, + 140, 141, 142, 143, 0, 144, 0, 0, 145, 146, + 147, 0, 0, 0, 0, 0, 189, 0, 0, 0, + 0, 0, 190, 0, 0, 148, 149, 150, 151, 152, + 153, 154, 138, 139, 140, 141, 142, 143, 0, 144, + 0, 0, 145, 146, 147, 0, 0, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 192, 0, 0, 148, + 149, 150, 151, 152, 153, 154, 138, 139, 140, 141, + 142, 143, 0, 144, 0, 0, 145, 146, 147, 0, + 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 149, 150, 151, 152, 153, 154, + 138, 139, 140, 141, 142, 143, 0, 144, 0, 0, + 145, 146, 147, 0, 0, 0, 0, 0, 272, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 149, 150, + 151, 152, 153, 154, 138, 139, 140, 141, 142, 143, + 0, 144, 0, 0, 145, 146, 147, 0, 0, 0, + 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, + 0, 148, 149, 150, 151, 152, 153, 154, 138, 139, + 140, 141, 142, 143, 0, 144, 0, 0, 145, 146, + 147, 0, 0, 0, 0, 0, 274, 0, 0, 0, + 0, 0, 0, 0, 0, 148, 149, 150, 151, 152, + 153, 154, 138, 139, 140, 141, 142, 143, 0, 144, + 0, 0, 145, 146, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 205, 0, 0, 148, + 149, 150, 151, 152, 153, 154, 138, 139, 140, 141, + 142, 143, 0, 144, 0, 0, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 239, 147, 148, 149, 150, 151, 152, 153, 0, - 205, 137, 138, 139, 140, 141, 142, 0, 143, 0, - 0, 144, 145, 146, 137, 138, 139, 140, 141, 142, - 0, 143, 0, 0, 144, 145, 146, 0, 147, 148, - 149, 150, 151, 152, 153, 0, 0, 0, 0, 0, - 0, 147, 148, 149, 150, 151, 152, 153, 0, 0, - 0, 196, 137, 138, 139, 140, 141, 142, 0, 143, - 0, 0, 144, 145, 146, 0, 0, 0, 0, 0, - 192, 193, 0, 0, 0, 0, 0, 0, 0, 147, - 148, 149, 150, 151, 152, 153, 137, 138, 139, 140, - 141, 142, 0, 143, 0, 0, 144, 145, 146, 137, - 138, 139, 140, 0, 0, 0, 143, 0, 0, 144, - 145, 146, 0, 147, 148, 149, 150, 151, 152, 153, - 0, 0, 0, 0, 0, 0, 147, 148, 149, 150, - 151, 152, 153 + 0, 0, 240, 148, 149, 150, 151, 152, 153, 154, + 0, 206, 138, 139, 140, 141, 142, 143, 182, 144, + 0, 0, 145, 146, 147, 0, 138, 139, 140, 141, + 142, 143, 0, 144, 0, 0, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 0, 148, 149, 150, 151, 152, 153, 154, + 138, 139, 140, 141, 142, 143, 0, 144, 0, 0, + 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 149, 150, + 151, 152, 153, 154, 0, 0, 0, 197, 138, 139, + 140, 141, 142, 143, 0, 144, 0, 0, 145, 146, + 147, 0, 0, 0, 0, 0, 193, 194, 0, 0, + 0, 0, 0, 0, 0, 148, 149, 150, 151, 152, + 153, 154, 138, 139, 140, 141, 142, 143, 0, 144, + 0, 0, 145, 146, 147, 138, 139, 140, 141, 0, + 0, 0, 144, 0, 0, 145, 146, 147, 0, 148, + 149, 150, 151, 152, 153, 154, 0, 0, 0, 0, + 0, 0, 148, 149, 150, 151, 152, 153, 154 }; static const yytype_int16 yycheck[] = { - 4, 0, 84, 7, 8, 9, 9, 0, 12, 13, - 13, 15, 14, 31, 163, 39, 281, 103, 22, 38, - 106, 25, 73, 101, 101, 76, 30, 31, 106, 33, - 34, 35, 36, 37, 38, 73, 266, 56, 73, 43, - 44, 45, 46, 46, 95, 96, 97, 98, 99, 53, - 30, 55, 56, 57, 30, 15, 16, 287, 96, 97, - 98, 99, 327, 98, 99, 69, 90, 53, 101, 12, - 30, 75, 75, 106, 17, 93, 80, 37, 30, 83, - 83, 56, 231, 56, 30, 89, 168, 30, 31, 107, - 33, 58, 59, 68, 101, 68, 100, 205, 100, 106, - 105, 106, 103, 103, 30, 106, 106, 30, 101, 29, + 4, 0, 0, 7, 8, 9, 9, 85, 12, 13, + 13, 15, 14, 32, 164, 282, 39, 267, 38, 23, + 58, 59, 26, 73, 101, 56, 76, 31, 32, 106, + 34, 35, 36, 37, 38, 39, 56, 68, 288, 73, + 44, 45, 46, 47, 47, 95, 96, 97, 98, 99, + 54, 30, 56, 57, 58, 101, 15, 16, 73, 101, + 106, 328, 96, 97, 98, 99, 70, 90, 53, 12, + 30, 30, 76, 76, 17, 94, 103, 81, 37, 106, + 84, 84, 232, 98, 99, 30, 90, 30, 31, 108, + 33, 169, 56, 103, 30, 101, 106, 101, 206, 101, + 106, 30, 103, 101, 68, 106, 29, 30, 105, 106, 30, 30, 30, 102, 68, 102, 106, 48, 106, 30, - 56, 129, 130, 106, 128, 55, 30, 126, 132, 106, - 30, 30, 106, 137, 138, 139, 140, 141, 142, 143, + 106, 56, 130, 131, 106, 129, 106, 55, 127, 133, + 30, 30, 30, 30, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 30, 155, 260, 157, 68, 30, 106, 161, 55, 55, - 30, 56, 166, 91, 30, 92, 170, 171, 40, 173, - 174, 39, 30, 177, 178, 179, 284, 181, 286, 91, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 106, 55, 200, 30, 302, 203, 304, 90, 307, 91, - 204, 90, 58, 90, 312, 126, 56, 169, 56, 56, - 66, 67, 68, 69, 70, 71, 324, 73, -1, -1, - 76, 77, 78, -1, 332, -1, -1, -1, -1, -1, - -1, -1, 314, -1, 238, 239, 318, 93, 94, 95, - 96, 97, 98, 99, -1, -1, -1, -1, -1, -1, - 258, -1, -1, 257, 257, 263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, - -1, -1, 280, -1, -1, 279, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 295, -1, 297, - 294, -1, -1, -1, -1, 303, -1, -1, 306, -1, - -1, -1, -1, -1, 308, 313, -1, -1, -1, 317, - -1, -1, -1, -1, 322, 0, 1, -1, -1, -1, - -1, -1, -1, 331, -1, 333, -1, 12, -1, 337, - 15, 16, 17, -1, 19, 20, 21, 22, 23, -1, - 25, 26, 27, -1, 29, 30, 31, -1, 33, -1, - 35, 36, -1, -1, -1, -1, 41, 42, 43, 44, - -1, -1, 47, -1, -1, -1, -1, 52, 53, 54, - -1, -1, 57, -1, -1, -1, 61, 62, 63, -1, - 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, - -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, - -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, - -1, 96, 97, -1, -1, -1, 101, 102, 12, 104, - -1, 15, 16, 17, -1, 19, 20, 21, 22, 23, + 154, 68, 156, 261, 158, 30, 106, 30, 162, 55, + 55, 91, 56, 167, 30, 92, 40, 171, 172, 39, + 174, 175, 30, 106, 178, 179, 180, 285, 182, 287, + 90, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 55, 30, 201, 308, 303, 204, 305, 91, 91, + 90, 205, 90, 127, 57, 313, 57, 170, 57, -1, + -1, -1, -1, -1, -1, -1, -1, 325, -1, -1, + -1, -1, -1, -1, -1, 333, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 239, 240, 315, -1, -1, + -1, 319, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 259, -1, -1, 258, 258, 264, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, + 274, -1, -1, 281, -1, -1, 280, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, + 298, 295, -1, -1, -1, -1, 304, -1, -1, 307, + -1, -1, -1, -1, -1, 309, 314, -1, -1, -1, + 318, -1, -1, -1, -1, 323, 0, 1, -1, -1, + -1, -1, -1, -1, 332, -1, 334, -1, 12, -1, + 338, 15, 16, 17, -1, 19, 20, 21, 22, 23, -1, 25, 26, 27, -1, 29, 30, 31, -1, 33, - -1, 35, 36, -1, -1, -1, -1, 41, 42, 43, + -1, 35, 36, 37, -1, -1, -1, 41, 42, 43, 44, -1, -1, 47, -1, -1, -1, -1, 52, 53, 54, -1, -1, 57, -1, -1, -1, 61, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, - -1, -1, 96, 97, -1, -1, -1, -1, 102, 12, + -1, -1, 96, 97, -1, -1, -1, 101, 102, 12, 104, -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, -1, -1, 41, 42, - 43, 44, -1, -1, -1, -1, -1, -1, -1, 52, - 53, 54, -1, -1, 57, -1, -1, -1, -1, 62, + 33, -1, 35, 36, 37, -1, -1, -1, 41, 42, + 43, 44, -1, -1, 47, -1, -1, -1, -1, 52, + 53, 54, -1, -1, 57, -1, -1, -1, 61, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, - 83, -1, -1, 86, 87, -1, 89, -1, -1, -1, - -1, -1, -1, 96, 97, -1, -1, -1, 101, 102, + 83, -1, -1, 86, 87, 88, 89, -1, -1, -1, + -1, -1, -1, 96, 97, -1, -1, -1, -1, 102, 12, 104, -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, -1, -1, 41, + -1, 33, 34, 35, -1, 37, -1, -1, -1, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, -1, -1, 57, -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, @@ -1158,96 +1156,108 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 96, 97, -1, -1, -1, 101, 102, 12, 104, -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, -1, -1, + 31, -1, 33, -1, 35, -1, 37, -1, -1, -1, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, - -1, 52, -1, 54, -1, -1, -1, -1, -1, -1, + -1, 52, 53, 54, -1, -1, 57, -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, - 81, 82, 83, -1, -1, -1, 87, -1, 89, -1, + 81, 82, 83, -1, -1, 86, 87, -1, 89, -1, -1, -1, -1, -1, -1, 96, 97, -1, -1, -1, - -1, 102, 12, 104, -1, 15, 16, 17, -1, 19, + 101, 102, 12, 104, -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, -1, - -1, 41, 42, 43, -1, -1, -1, -1, -1, -1, + 30, 31, -1, 33, -1, 35, -1, 37, -1, -1, + -1, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, 52, -1, 54, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, -1, -1, 87, -1, 89, - -1, -1, -1, -1, -1, 12, 96, 97, 15, 16, - 17, -1, 102, -1, 104, -1, -1, -1, 25, 26, - 27, -1, 29, 30, 31, -1, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, - -1, 48, 49, 50, 51, 52, -1, 54, -1, -1, + -1, -1, -1, -1, -1, -1, 96, 97, -1, -1, + -1, -1, 102, 12, 104, -1, 15, 16, 17, -1, + 19, 20, 21, 22, 23, -1, 25, 26, 27, -1, + 29, 30, 31, -1, 33, -1, 35, -1, 37, -1, + -1, -1, 41, 42, 43, -1, -1, -1, -1, -1, + -1, -1, -1, 52, -1, 54, -1, -1, -1, -1, + -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, + -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, + 79, 80, 81, 82, 83, -1, -1, -1, 87, -1, + 89, -1, -1, -1, -1, -1, 12, 96, 97, 15, + 16, 17, -1, 102, -1, 104, -1, -1, -1, 25, + 26, 27, -1, 29, 30, 31, -1, 33, -1, -1, + -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, + 46, -1, 48, 49, 50, 51, 52, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 72, 12, -1, -1, 15, - 16, 17, 79, 80, 81, 82, 83, -1, -1, 25, - 26, 27, 89, 29, 30, 31, -1, 33, -1, 96, - 97, -1, -1, -1, -1, 102, -1, 104, -1, -1, - -1, -1, 48, -1, 50, -1, 52, -1, 54, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, 72, 12, -1, -1, 15, 16, 17, 79, 80, 81, 82, 83, -1, -1, 25, 26, 27, 89, 29, 30, 31, -1, 33, -1, - 96, 97, -1, -1, -1, -1, 102, -1, 104, -1, - 12, -1, -1, 15, 16, 17, -1, 52, -1, 54, - -1, -1, -1, 25, 26, 27, -1, 29, 30, 31, - -1, 33, -1, -1, -1, -1, -1, 72, -1, -1, - -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, - 52, -1, 54, -1, 89, -1, -1, -1, -1, -1, - -1, 96, 97, -1, -1, -1, -1, 102, -1, 104, - 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, - 82, 83, 45, -1, -1, -1, -1, 89, -1, -1, - -1, -1, -1, -1, 96, 97, -1, -1, -1, 48, - 102, 50, 104, 66, 67, 68, 69, 70, 71, -1, - 73, 74, 75, 76, 77, 78, -1, 66, 67, 68, - 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, - 93, 94, 95, 96, 97, 98, 99, 50, -1, -1, - -1, -1, -1, 56, 93, 94, 95, 96, 97, 98, - 99, -1, -1, 66, 67, 68, 69, 70, 71, -1, - 73, -1, -1, 76, 77, 78, -1, -1, -1, -1, - -1, 50, -1, -1, -1, -1, -1, 56, -1, -1, - 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, - 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, - -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, - -1, 56, -1, -1, 93, 94, 95, 96, 97, 98, - 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, - -1, 76, 77, 78, -1, -1, -1, -1, -1, 50, - -1, -1, -1, -1, -1, 56, -1, -1, 93, 94, - 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, - 71, -1, 73, -1, -1, 76, 77, 78, -1, -1, - -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, - -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, - 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, - 77, 78, -1, -1, -1, -1, -1, 50, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, - 73, -1, -1, 76, 77, 78, -1, -1, -1, -1, - -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, - 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, - 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, - -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, - 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, - -1, 76, 77, 78, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 56, -1, -1, 93, 94, - 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, - 71, -1, 73, -1, -1, 76, 77, 78, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 56, 93, 94, 95, 96, 97, 98, 99, -1, - 101, 66, 67, 68, 69, 70, 71, -1, 73, -1, - -1, 76, 77, 78, 66, 67, 68, 69, 70, 71, - -1, 73, -1, -1, 76, 77, 78, -1, 93, 94, - 95, 96, 97, 98, 99, -1, -1, -1, -1, -1, - -1, 93, 94, 95, 96, 97, 98, 99, -1, -1, - -1, 103, 66, 67, 68, 69, 70, 71, -1, 73, + 96, 97, 37, -1, -1, -1, 102, -1, 104, -1, + -1, -1, -1, 48, -1, 50, -1, 52, -1, 54, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, + -1, -1, -1, -1, -1, -1, -1, 72, 12, -1, + -1, 15, 16, 17, 79, 80, 81, 82, 83, -1, + -1, 25, 26, 27, 89, 29, 30, 31, -1, 33, + -1, 96, 97, 37, -1, -1, -1, 102, -1, 104, + -1, 12, -1, -1, 15, 16, 17, -1, 52, -1, + 54, -1, -1, -1, 25, 26, 27, -1, 29, 30, + 31, -1, 33, -1, -1, -1, 37, -1, 72, -1, + -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, + -1, 52, -1, 54, -1, 89, -1, -1, -1, -1, + -1, -1, 96, 97, -1, -1, -1, -1, 102, -1, + 104, 72, -1, -1, -1, -1, -1, -1, 79, 80, + 81, 82, 83, 45, -1, -1, -1, -1, 89, -1, + -1, -1, -1, -1, -1, 96, 97, -1, -1, -1, + 48, 102, 50, 104, 66, 67, 68, 69, 70, 71, + -1, 73, 74, 75, 76, 77, 78, -1, 66, 67, + 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, + 78, 93, 94, 95, 96, 97, 98, 99, 50, -1, + -1, -1, -1, -1, 56, 93, 94, 95, 96, 97, + 98, 99, -1, -1, 66, 67, 68, 69, 70, 71, + -1, 73, -1, -1, 76, 77, 78, -1, -1, -1, + -1, -1, 50, -1, -1, -1, -1, -1, 56, -1, + -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, + 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, + 78, -1, -1, -1, -1, -1, 50, -1, -1, -1, + -1, -1, 56, -1, -1, 93, 94, 95, 96, 97, + 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, -1, -1, -1, -1, -1, - 84, 85, -1, -1, -1, -1, -1, -1, -1, 93, + 50, -1, -1, -1, -1, -1, 56, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, - 70, 71, -1, 73, -1, -1, 76, 77, 78, 66, - 67, 68, 69, -1, -1, -1, 73, -1, -1, 76, - 77, 78, -1, 93, 94, 95, 96, 97, 98, 99, - -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, 98, 99 + 70, 71, -1, 73, -1, -1, 76, 77, 78, -1, + -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, + -1, -1, -1, 93, 94, 95, 96, 97, 98, 99, + 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, + 76, 77, 78, -1, -1, -1, -1, -1, 50, -1, + -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, + -1, 73, -1, -1, 76, 77, 78, -1, -1, -1, + -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, + -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, + 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, + 78, -1, -1, -1, -1, -1, 50, -1, -1, -1, + -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, + 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, + -1, -1, 76, 77, 78, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 56, -1, -1, 93, + 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, + 70, 71, -1, 73, -1, -1, 76, 77, 78, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 56, 93, 94, 95, 96, 97, 98, 99, + -1, 101, 66, 67, 68, 69, 70, 71, 58, 73, + -1, -1, 76, 77, 78, -1, 66, 67, 68, 69, + 70, 71, -1, 73, -1, -1, 76, 77, 78, 93, + 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, + -1, -1, -1, 93, 94, 95, 96, 97, 98, 99, + 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, + 76, 77, 78, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 96, 97, 98, 99, -1, -1, -1, 103, 66, 67, + 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, + 78, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, + 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, + -1, -1, 76, 77, 78, 66, 67, 68, 69, -1, + -1, -1, 73, -1, -1, 76, 77, 78, -1, 93, + 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, + -1, -1, 93, 94, 95, 96, 97, 98, 99 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1256,39 +1266,39 @@ static const yytype_uint8 yystos[] = { 0, 1, 12, 15, 16, 17, 19, 20, 21, 22, 23, 25, 26, 27, 29, 30, 31, 33, 35, 36, - 41, 42, 43, 44, 47, 52, 53, 54, 57, 61, - 62, 63, 65, 72, 79, 80, 81, 82, 83, 86, - 87, 88, 89, 96, 97, 102, 104, 108, 109, 110, - 111, 113, 114, 118, 119, 120, 125, 126, 127, 128, - 129, 130, 134, 136, 138, 141, 145, 101, 30, 52, - 128, 128, 128, 128, 146, 30, 128, 146, 30, 127, - 102, 128, 147, 137, 140, 53, 30, 131, 46, 48, - 49, 50, 51, 128, 135, 30, 128, 58, 59, 15, - 16, 30, 37, 30, 30, 128, 64, 128, 135, 30, - 133, 128, 128, 128, 128, 128, 128, 30, 132, 30, - 102, 128, 128, 128, 146, 0, 101, 128, 68, 128, - 112, 117, 120, 128, 130, 145, 128, 66, 67, 68, - 69, 70, 71, 73, 76, 77, 78, 93, 94, 95, - 96, 97, 98, 99, 122, 102, 128, 106, 146, 128, - 146, 106, 146, 122, 106, 128, 48, 135, 139, 45, - 74, 75, 30, 56, 68, 127, 128, 56, 68, 56, - 55, 58, 135, 106, 50, 56, 50, 56, 50, 56, - 50, 56, 84, 85, 106, 30, 103, 105, 109, 123, - 128, 123, 123, 128, 56, 101, 128, 128, 128, 128, + 37, 41, 42, 43, 44, 47, 52, 53, 54, 57, + 61, 62, 63, 65, 72, 79, 80, 81, 82, 83, + 86, 87, 88, 89, 96, 97, 102, 104, 108, 109, + 110, 111, 113, 114, 118, 119, 120, 125, 126, 127, + 128, 129, 130, 134, 136, 138, 141, 145, 101, 30, + 52, 128, 128, 128, 128, 146, 30, 128, 146, 30, + 127, 102, 128, 147, 137, 140, 53, 30, 131, 46, + 48, 49, 50, 51, 128, 135, 30, 128, 58, 59, + 15, 16, 30, 37, 30, 30, 128, 64, 128, 135, + 30, 133, 128, 128, 128, 128, 128, 128, 30, 132, + 30, 102, 128, 128, 128, 146, 0, 101, 128, 68, + 128, 112, 117, 120, 128, 130, 145, 128, 66, 67, + 68, 69, 70, 71, 73, 76, 77, 78, 93, 94, + 95, 96, 97, 98, 99, 122, 102, 128, 106, 146, + 128, 146, 106, 146, 122, 106, 128, 48, 135, 139, + 45, 74, 75, 30, 56, 68, 127, 128, 56, 68, + 56, 55, 58, 135, 106, 50, 56, 50, 56, 50, + 56, 50, 56, 84, 85, 106, 30, 103, 105, 109, + 123, 128, 123, 123, 128, 56, 101, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 30, 142, 128, 103, 128, 142, 30, - 128, 122, 30, 129, 128, 128, 128, 128, 68, 56, - 128, 128, 128, 128, 30, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 30, 103, 106, 124, 123, - 55, 123, 128, 124, 101, 106, 101, 142, 128, 128, - 50, 50, 50, 50, 146, 101, 113, 123, 38, 56, - 124, 55, 123, 106, 144, 30, 144, 101, 128, 128, - 128, 128, 103, 91, 56, 128, 123, 111, 92, 30, - 124, 124, 144, 128, 123, 40, 115, 116, 121, 123, - 34, 124, 123, 124, 39, 123, 115, 128, 39, 90, - 30, 143, 124, 123, 122, 90, 123, 122, 106, 123, - 91, 124, 55, 111, 30, 91, 123, 124, 123, 90, - 123, 90 + 128, 128, 128, 128, 30, 142, 128, 103, 128, 142, + 30, 128, 122, 30, 129, 128, 128, 128, 128, 68, + 56, 128, 128, 128, 128, 30, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 30, 103, 106, 124, + 123, 55, 123, 128, 124, 101, 106, 101, 142, 128, + 128, 50, 50, 50, 50, 146, 101, 113, 123, 38, + 56, 124, 55, 123, 106, 144, 30, 144, 101, 128, + 128, 128, 128, 103, 91, 56, 128, 123, 111, 92, + 30, 124, 124, 144, 128, 123, 40, 115, 116, 121, + 123, 34, 124, 123, 124, 39, 123, 115, 128, 39, + 90, 30, 143, 124, 123, 122, 90, 123, 122, 106, + 123, 91, 124, 55, 111, 30, 91, 123, 124, 123, + 90, 123, 90 }; #define yyerrok (yyerrstatus = 0) @@ -2488,369 +2498,377 @@ yyreduce: g_lingo->code2(e, f); ;} break; - case 66: -#line 414 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_add); ;} + case 65: +#line 413 "engines/director/lingo/lingo-gr.y" + { + g_lingo->code1(g_lingo->c_objectfieldpush); + g_lingo->codeString((yyvsp[(1) - (1)].objectfield).s->c_str()); + g_lingo->codeInt((yyvsp[(1) - (1)].objectfield).e); ;} break; case 67: -#line 415 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_sub); ;} +#line 418 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_add); ;} break; case 68: -#line 416 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_mul); ;} +#line 419 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_sub); ;} break; case 69: -#line 417 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_div); ;} +#line 420 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_mul); ;} break; case 70: -#line 418 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_mod); ;} +#line 421 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_div); ;} break; case 71: -#line 419 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_gt); ;} +#line 422 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_mod); ;} break; case 72: -#line 420 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_lt); ;} +#line 423 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_gt); ;} break; case 73: -#line 421 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_eq); ;} +#line 424 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_lt); ;} break; case 74: -#line 422 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_neq); ;} +#line 425 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_eq); ;} break; case 75: -#line 423 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_ge); ;} +#line 426 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_neq); ;} break; case 76: -#line 424 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_le); ;} +#line 427 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_ge); ;} break; case 77: -#line 425 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_and); ;} +#line 428 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_le); ;} break; case 78: -#line 426 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_or); ;} +#line 429 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_and); ;} break; case 79: -#line 427 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_not); ;} +#line 430 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_or); ;} break; case 80: -#line 428 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_ampersand); ;} +#line 431 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_not); ;} break; case 81: -#line 429 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_concat); ;} +#line 432 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_ampersand); ;} break; case 82: -#line 430 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_contains); ;} +#line 433 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_concat); ;} break; case 83: -#line 431 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_starts); ;} +#line 434 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_contains); ;} break; case 84: -#line 432 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = (yyvsp[(2) - (2)].code); ;} +#line 435 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_starts); ;} break; case 85: -#line 433 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;} +#line 436 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = (yyvsp[(2) - (2)].code); ;} break; case 86: -#line 434 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = (yyvsp[(2) - (3)].code); ;} +#line 437 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;} break; case 87: -#line 435 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;} +#line 438 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = (yyvsp[(2) - (3)].code); ;} break; case 88: -#line 436 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_intersects); ;} +#line 439 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;} break; case 89: -#line 437 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_within); ;} +#line 440 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_intersects); ;} break; case 90: -#line 438 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_charOf); ;} +#line 441 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_within); ;} break; case 91: -#line 439 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_charToOf); ;} +#line 442 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_charOf); ;} break; case 92: -#line 440 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_itemOf); ;} +#line 443 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_charToOf); ;} break; case 93: -#line 441 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_itemToOf); ;} +#line 444 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_itemOf); ;} break; case 94: -#line 442 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_lineOf); ;} +#line 445 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_itemToOf); ;} break; case 95: -#line 443 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_lineToOf); ;} +#line 446 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_lineOf); ;} break; case 96: -#line 444 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_wordOf); ;} +#line 447 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_lineToOf); ;} break; case 97: -#line 445 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_wordToOf); ;} +#line 448 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_wordOf); ;} break; case 98: -#line 446 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;} +#line 449 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_wordToOf); ;} break; case 99: -#line 447 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;} +#line 450 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;} break; case 100: -#line 448 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeMe(nullptr, 0); ;} +#line 451 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;} break; case 101: -#line 451 "engines/director/lingo/lingo-gr.y" +#line 452 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeMe(nullptr, 0); ;} + break; + + case 102: +#line 455 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1); delete (yyvsp[(1) - (2)].s); ;} break; - case 102: -#line 456 "engines/director/lingo/lingo-gr.y" + case 103: +#line 460 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_printtop); ;} break; - case 105: -#line 459 "engines/director/lingo/lingo-gr.y" + case 106: +#line 463 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_exitRepeat); ;} break; - case 106: -#line 460 "engines/director/lingo/lingo-gr.y" + case 107: +#line 464 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_procret); ;} break; - case 110: -#line 464 "engines/director/lingo/lingo-gr.y" + case 111: +#line 468 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0); delete (yyvsp[(1) - (1)].s); ;} break; - case 111: -#line 467 "engines/director/lingo/lingo-gr.y" + case 112: +#line 471 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1); delete (yyvsp[(1) - (2)].s); ;} break; - case 112: -#line 470 "engines/director/lingo/lingo-gr.y" + case 113: +#line 474 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1); delete (yyvsp[(1) - (2)].s); ;} break; - case 113: -#line 473 "engines/director/lingo/lingo-gr.y" + case 114: +#line 477 "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 114: -#line 477 "engines/director/lingo/lingo-gr.y" + case 115: +#line 481 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;} break; - case 115: -#line 478 "engines/director/lingo/lingo-gr.y" + case 116: +#line 482 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_open); ;} break; - case 116: -#line 479 "engines/director/lingo/lingo-gr.y" + case 117: +#line 483 "engines/director/lingo/lingo-gr.y" { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;} break; - case 117: -#line 480 "engines/director/lingo/lingo-gr.y" + case 118: +#line 484 "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 118: -#line 483 "engines/director/lingo/lingo-gr.y" + case 119: +#line 487 "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 119: -#line 484 "engines/director/lingo/lingo-gr.y" + case 120: +#line 488 "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 120: -#line 487 "engines/director/lingo/lingo-gr.y" + case 121: +#line 491 "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 121: -#line 488 "engines/director/lingo/lingo-gr.y" + case 122: +#line 492 "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 122: -#line 491 "engines/director/lingo/lingo-gr.y" + case 123: +#line 495 "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 123: -#line 492 "engines/director/lingo/lingo-gr.y" + case 124: +#line 496 "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 124: -#line 503 "engines/director/lingo/lingo-gr.y" + case 125: +#line 507 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_gotoloop); ;} break; - case 125: -#line 504 "engines/director/lingo/lingo-gr.y" + case 126: +#line 508 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_gotonext); ;} break; - case 126: -#line 505 "engines/director/lingo/lingo-gr.y" + case 127: +#line 509 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_gotoprevious); ;} break; - case 127: -#line 506 "engines/director/lingo/lingo-gr.y" + case 128: +#line 510 "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 128: -#line 510 "engines/director/lingo/lingo-gr.y" + case 129: +#line 514 "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 129: -#line 514 "engines/director/lingo/lingo-gr.y" + case 130: +#line 518 "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 132: -#line 524 "engines/director/lingo/lingo-gr.y" + case 133: +#line 528 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_playdone); ;} break; - case 133: -#line 525 "engines/director/lingo/lingo-gr.y" + case 134: +#line 529 "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 134: -#line 529 "engines/director/lingo/lingo-gr.y" + case 135: +#line 533 "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 135: -#line 533 "engines/director/lingo/lingo-gr.y" + case 136: +#line 537 "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 136: -#line 537 "engines/director/lingo/lingo-gr.y" + case 137: +#line 541 "engines/director/lingo/lingo-gr.y" { g_lingo->codeSetImmediate(true); ;} break; - case 137: -#line 537 "engines/director/lingo/lingo-gr.y" + case 138: +#line 541 "engines/director/lingo/lingo-gr.y" { g_lingo->codeSetImmediate(false); g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;} break; - case 138: -#line 567 "engines/director/lingo/lingo-gr.y" + case 139: +#line 571 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); ;} break; - case 139: -#line 568 "engines/director/lingo/lingo-gr.y" + case 140: +#line 572 "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)); @@ -2858,18 +2876,18 @@ yyreduce: g_lingo->_indef = kStateNone; ;} break; - case 140: -#line 573 "engines/director/lingo/lingo-gr.y" + case 141: +#line 577 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFactory(*(yyvsp[(2) - (2)].s)); ;} break; - case 141: -#line 574 "engines/director/lingo/lingo-gr.y" + case 142: +#line 578 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = kStateInArgs; ;} break; - case 142: -#line 575 "engines/director/lingo/lingo-gr.y" + case 143: +#line 579 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_procret); g_lingo->define(*(yyvsp[(1) - (7)].s), (yyvsp[(3) - (7)].code), (yyvsp[(4) - (7)].narg) + 1, &g_lingo->_currentFactory); @@ -2877,8 +2895,8 @@ yyreduce: g_lingo->_indef = kStateNone; ;} break; - case 143: -#line 580 "engines/director/lingo/lingo-gr.y" + case 144: +#line 584 "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)); @@ -2889,8 +2907,8 @@ yyreduce: checkEnd((yyvsp[(7) - (8)].s), (yyvsp[(1) - (8)].s)->c_str(), false); ;} break; - case 144: -#line 588 "engines/director/lingo/lingo-gr.y" + case 145: +#line 592 "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)); @@ -2899,38 +2917,38 @@ yyreduce: g_lingo->_ignoreMe = false; ;} break; - case 145: -#line 595 "engines/director/lingo/lingo-gr.y" + case 146: +#line 599 "engines/director/lingo/lingo-gr.y" { (yyval.s) = (yyvsp[(2) - (2)].s); g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; ;} break; - case 146: -#line 597 "engines/director/lingo/lingo-gr.y" + case 147: +#line 601 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 0; ;} break; - case 147: -#line 598 "engines/director/lingo/lingo-gr.y" + case 148: +#line 602 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;} break; - case 148: -#line 599 "engines/director/lingo/lingo-gr.y" + case 149: +#line 603 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; - case 149: -#line 600 "engines/director/lingo/lingo-gr.y" + case 150: +#line 604 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;} break; - case 153: -#line 608 "engines/director/lingo/lingo-gr.y" + case 154: +#line 612 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArgStore(); g_lingo->_indef = kStateInDef; ;} break; - case 154: -#line 611 "engines/director/lingo/lingo-gr.y" + case 155: +#line 615 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_call); g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str()); @@ -2939,34 +2957,34 @@ yyreduce: g_lingo->code1(numpar); ;} break; - case 155: -#line 619 "engines/director/lingo/lingo-gr.y" + case 156: +#line 623 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 0; ;} break; - case 156: -#line 620 "engines/director/lingo/lingo-gr.y" + case 157: +#line 624 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 1; ;} break; - case 157: -#line 621 "engines/director/lingo/lingo-gr.y" + case 158: +#line 625 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; - case 158: -#line 624 "engines/director/lingo/lingo-gr.y" + case 159: +#line 628 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 1; ;} break; - case 159: -#line 625 "engines/director/lingo/lingo-gr.y" + case 160: +#line 629 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; /* Line 1267 of yacc.c. */ -#line 2970 "engines/director/lingo/lingo-gr.cpp" +#line 2988 "engines/director/lingo/lingo-gr.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3180,6 +3198,6 @@ yyreturn: } -#line 628 "engines/director/lingo/lingo-gr.y" +#line 632 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index a3591bb86b..e8b667d67c 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -410,6 +410,10 @@ expr: simpleexpr { $$ = $1; } WRITE_UINT32(&e, $1[0]); WRITE_UINT32(&f, $1[1]); g_lingo->code2(e, f); } + | THEOBJECTFIELD { + g_lingo->code1(g_lingo->c_objectfieldpush); + g_lingo->codeString($1.s->c_str()); + g_lingo->codeInt($1.e); } | asgn | expr '+' expr { g_lingo->code1(g_lingo->c_add); } | expr '-' expr { g_lingo->code1(g_lingo->c_sub); } diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index d6c48896eb..22c9b8a6a1 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -842,6 +842,15 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) { } } +Datum Lingo::getObjectField(Common::String &obj, int field) { + warning("STUB: getObjectField(\"%s\", %d)", obj.c_str(), field); + + Datum d; + d.type = VOID; + + return d; +} + void Lingo::setObjectField(Common::String &obj, int field, Datum &d) { warning("STUB: setObjectField(\"%s\", %d, ...)", obj.c_str(), field); } diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index 2c218b8dfe..510aa3fe8b 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -322,6 +322,7 @@ public: static void c_theentitypush(); static void c_theentityassign(); + static void c_objectfieldpush(); static void c_objectfieldassign(); static void c_repeatwhilecode(); @@ -573,6 +574,7 @@ public: Datum getTheEntity(int entity, Datum &id, int field); Datum getTheSprite(Datum &id, int field); Datum getTheCast(Datum &id, int field); + Datum getObjectField(Common::String &obj, int field); void setObjectField(Common::String &obj, int field, Datum &d); public: |