[Scummvm-git-logs] scummvm master -> 1214433874f57c749b5ca8062daacbbcc4a9eb2a
sev-
sev at scummvm.org
Sun Jan 12 18:49:35 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1214433874 DIRECTOR: LINGO: Added compilation support for D4 property arrays
Commit: 1214433874f57c749b5ca8062daacbbcc4a9eb2a
https://github.com/scummvm/scummvm/commit/1214433874f57c749b5ca8062daacbbcc4a9eb2a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-01-12T19:49:07+01:00
Commit Message:
DIRECTOR: LINGO: Added compilation support for D4 property arrays
Changed paths:
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-code.h
engines/director/lingo/lingo-codegen.cpp
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index a10e131..80c1ce8 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -63,6 +63,7 @@ static struct FuncDescr {
{ LC::c_argcpush, "c_argcpush", "i" },
{ LC::c_argcnoretpush, "c_argcnoretpush", "i" },
{ LC::c_arraypush, "c_arraypush", "i" },
+ { LC::c_proparraypush, "c_proparraypush", "i" },
{ LC::c_printtop, "c_printtop", "" },
{ LC::c_intpush, "c_intpush", "i" },
{ LC::c_voidpush, "c_voidpush", "" },
@@ -293,6 +294,20 @@ void LC::c_arraypush() {
g_lingo->push(d);
}
+void LC::c_proparraypush() {
+ Datum d;
+ int arraySize = g_lingo->readInt();
+
+ warning("STUB: c_proparraypush()");
+
+ for (int i = 0; i < arraySize * 2; i++)
+ g_lingo->pop();
+
+ d.u.i = arraySize;
+ d.type = INT;
+ g_lingo->push(d);
+}
+
void LC::c_varpush() {
Common::String name(g_lingo->readString());
Datum d;
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index 05bfbfb..db3521b 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -69,6 +69,7 @@ namespace LC {
void c_argcpush();
void c_argcnoretpush();
void c_arraypush();
+ void c_proparraypush();
void c_assign();
bool verify(Symbol *s);
void c_eval();
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 4d15f96..8c1126b 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -333,14 +333,6 @@ int Lingo::codeInt(int val) {
return _currentScript->size();
}
-int Lingo::codeArray(int arraySize) {
- inst i = 0;
- WRITE_UINT32(&i, arraySize);
- g_lingo->code1(i);
-
- return _currentScript->size();
-}
-
bool Lingo::isInArgStack(Common::String *s) {
for (uint i = 0; i < _argstack.size(); i++)
if (_argstack[i]->equalsIgnoreCase(*s))
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 0eaeab1..3996f68 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -550,18 +550,18 @@ union yyalloc
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 126
+#define YYFINAL 133
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1598
+#define YYLAST 1637
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 107
+#define YYNTOKENS 108
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 41
+#define YYNNTS 46
/* YYNRULES -- Number of rules. */
-#define YYNRULES 160
+#define YYNRULES 170
/* YYNRULES -- Number of states. */
-#define YYNSTATES 342
+#define YYNSTATES 355
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -577,12 +577,12 @@ static const yytype_uint8 yytranslate[] =
101, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 100, 95, 2,
- 102, 103, 98, 96, 106, 97, 2, 99, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 102, 103, 98, 96, 104, 97, 2, 99, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 107, 2,
93, 2, 94, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 104, 2, 105, 2, 2, 2, 2, 2, 2,
+ 2, 105, 2, 106, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -621,82 +621,86 @@ 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, 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
+ 234, 236, 239, 242, 247, 249, 252, 254, 256, 260,
+ 264, 268, 272, 276, 280, 284, 288, 292, 296, 300,
+ 304, 308, 311, 315, 319, 323, 327, 330, 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, 597, 601, 602, 604, 606, 608, 610, 614, 616,
+ 620
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 108, 0, -1, 108, 101, 109, -1, 109, -1, 1,
- 101, -1, -1, 138, -1, 113, -1, 52, 128, 45,
- 30, -1, 52, 128, 45, 129, -1, 52, 128, 74,
- 128, -1, 52, 128, 75, 128, -1, 54, 30, 68,
- 128, -1, 54, 15, 68, 128, -1, 54, 30, 56,
- 128, -1, 54, 15, 56, 128, -1, 54, 16, 127,
- 56, 128, -1, 54, 16, 127, 68, 128, -1, 54,
- 37, 56, 128, -1, 145, -1, 128, -1, 130, -1,
- 145, -1, 128, -1, 130, -1, 117, -1, 111, -1,
- 114, -1, 118, 128, 123, 124, 123, 91, -1, 119,
- 68, 128, 123, 56, 128, 123, 124, 123, 91, -1,
- 119, 68, 128, 123, 38, 56, 128, 123, 124, 123,
- 91, -1, 125, 112, 123, -1, 126, 128, 101, 124,
- 123, 92, -1, 126, 128, 56, 128, -1, 120, 128,
- 123, 55, 124, 123, 115, 123, 90, -1, 120, 128,
- 123, 55, 124, 123, 115, 39, 122, 124, 123, 90,
- -1, -1, 116, 115, -1, 121, 128, 123, 55, 124,
- 123, -1, 120, 128, 123, 55, 111, 123, 39, 122,
- 111, 123, 90, -1, 120, 128, 123, 55, 111, 123,
+ 109, 0, -1, 109, 101, 110, -1, 110, -1, 1,
+ 101, -1, -1, 139, -1, 114, -1, 52, 129, 45,
+ 30, -1, 52, 129, 45, 130, -1, 52, 129, 74,
+ 129, -1, 52, 129, 75, 129, -1, 54, 30, 68,
+ 129, -1, 54, 15, 68, 129, -1, 54, 30, 56,
+ 129, -1, 54, 15, 56, 129, -1, 54, 16, 128,
+ 56, 129, -1, 54, 16, 128, 68, 129, -1, 54,
+ 37, 56, 129, -1, 146, -1, 129, -1, 131, -1,
+ 146, -1, 129, -1, 131, -1, 118, -1, 112, -1,
+ 115, -1, 119, 129, 124, 125, 124, 91, -1, 120,
+ 68, 129, 124, 56, 129, 124, 125, 124, 91, -1,
+ 120, 68, 129, 124, 38, 56, 129, 124, 125, 124,
+ 91, -1, 126, 113, 124, -1, 127, 129, 101, 125,
+ 124, 92, -1, 127, 129, 56, 129, -1, 121, 129,
+ 124, 55, 125, 124, 116, 124, 90, -1, 121, 129,
+ 124, 55, 125, 124, 116, 39, 123, 125, 124, 90,
+ -1, -1, 116, 117, -1, 122, 129, 124, 55, 125,
+ 124, -1, 121, 129, 124, 55, 112, 124, 39, 123,
+ 112, 124, 90, -1, 121, 129, 124, 55, 112, 124,
90, -1, 53, 59, -1, 53, 58, 30, -1, 44,
- -1, 40, -1, -1, -1, -1, 124, 101, -1, 124,
- 113, -1, 57, 30, 55, -1, 86, -1, 12, -1,
- 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, 127, -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
+ -1, 40, -1, -1, -1, -1, 125, 101, -1, 125,
+ 114, -1, 57, 30, 55, -1, 86, -1, 12, -1,
+ 17, -1, 33, -1, 31, -1, 30, -1, 149, -1,
+ 128, -1, 130, -1, 25, -1, 26, 129, -1, 27,
+ 147, -1, 30, 102, 147, 103, -1, 15, -1, 16,
+ 128, -1, 37, -1, 111, -1, 129, 96, 129, -1,
+ 129, 97, 129, -1, 129, 98, 129, -1, 129, 99,
+ 129, -1, 129, 73, 129, -1, 129, 94, 129, -1,
+ 129, 93, 129, -1, 129, 68, 129, -1, 129, 69,
+ 129, -1, 129, 66, 129, -1, 129, 67, 129, -1,
+ 129, 70, 129, -1, 129, 71, 129, -1, 72, 129,
+ -1, 129, 95, 129, -1, 129, 76, 129, -1, 129,
+ 77, 129, -1, 129, 78, 129, -1, 96, 129, -1,
+ 97, 129, -1, 102, 129, 103, -1, 83, 129, 84,
+ 129, -1, 83, 129, 85, 129, -1, 79, 129, 50,
+ 129, -1, 79, 129, 56, 129, 50, 129, -1, 80,
+ 129, 50, 129, -1, 80, 129, 56, 129, 50, 129,
+ -1, 81, 129, 50, 129, -1, 81, 129, 56, 129,
+ 50, 129, -1, 82, 129, 50, 129, -1, 82, 129,
+ 56, 129, 50, 129, -1, 89, 102, 30, 103, -1,
+ 89, 102, 30, 104, 147, 103, -1, 89, -1, 29,
+ 128, -1, 52, 129, -1, 135, -1, 137, -1, 41,
+ 53, -1, 41, -1, 42, 132, -1, 87, 133, -1,
+ 65, 134, -1, 19, -1, 21, 129, -1, 20, 129,
+ -1, 20, -1, 22, 147, -1, 62, 129, 58, 129,
+ -1, 62, 129, -1, 23, 30, 147, -1, 30, -1,
+ 132, 104, 30, -1, 30, -1, 133, 104, 30, -1,
+ 30, -1, 134, 104, 30, -1, 43, 46, -1, 43,
+ 49, -1, 43, 51, -1, 43, 129, -1, 43, 129,
+ 136, -1, 43, 136, -1, 50, 48, 129, -1, 48,
+ 129, -1, 63, 64, -1, 63, 129, -1, 63, 129,
+ 136, -1, 63, 136, -1, -1, 35, 138, 147, -1,
+ -1, 47, 30, 140, 123, 143, 101, 145, 125, -1,
+ 61, 30, -1, -1, 36, 141, 123, 143, 101, 145,
+ 125, -1, 142, 123, 143, 101, 145, 125, 34, 144,
+ -1, 142, 123, 143, 101, 145, 125, -1, 88, 30,
+ -1, -1, 30, -1, 143, 104, 30, -1, 143, 101,
+ 104, 30, -1, -1, 30, -1, 144, 104, 30, -1,
+ -1, 30, 148, -1, -1, 129, -1, 147, 104, 129,
+ -1, 129, -1, 148, 104, 129, -1, 105, 150, 106,
+ -1, -1, 107, -1, 151, -1, 152, -1, 128, -1,
+ 151, 104, 128, -1, 153, -1, 152, 104, 153, -1,
+ 33, 107, 128, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -707,8 +711,8 @@ static const yytype_uint16 yyrline[] =
199, 200, 203, 204, 205, 206, 209, 210, 215, 226,
243, 255, 260, 262, 267, 277, 289, 290, 293, 301,
311, 324, 327, 334, 341, 349, 352, 355, 356, 357,
- 360, 366, 370, 373, 376, 379, 382, 388, 389, 390,
- 393, 396, 397, 400, 408, 414, 418, 419, 420, 421,
+ 360, 366, 370, 373, 376, 379, 382, 386, 389, 390,
+ 391, 394, 397, 398, 401, 409, 415, 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,
@@ -718,7 +722,8 @@ static const yytype_uint16 yyrline[] =
519, 525, 526, 529, 530, 534, 538, 542, 542, 572,
572, 578, 579, 579, 585, 593, 600, 602, 603, 604,
605, 608, 609, 610, 613, 616, 624, 625, 626, 629,
- 630
+ 630, 633, 636, 637, 638, 639, 642, 643, 646, 647,
+ 650
};
#endif
@@ -742,14 +747,15 @@ static const char *const yytname[] =
"tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE",
"tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tME", "tENDIF",
"tENDREPEAT", "tENDTELL", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'",
- "'/'", "'%'", "'\\n'", "'('", "')'", "'['", "']'", "','", "$accept",
- "program", "programline", "asgn", "stmtoneliner", "stmtonelinerwithif",
- "stmt", "ifstmt", "elseifstmtlist", "elseifstmt", "ifoneliner",
- "repeatwhile", "repeatwith", "if", "elseif", "begin", "end", "stmtlist",
- "when", "tell", "simpleexpr", "expr", "reference", "proc", "globallist",
- "propertylist", "instancelist", "gotofunc", "gotomovie", "playfunc",
- "@1", "defn", "@2", "@3", "on", "argdef", "endargdef", "argstore",
- "macro", "arglist", "nonemptyarglist", 0
+ "'/'", "'%'", "'\\n'", "'('", "')'", "','", "'['", "']'", "':'",
+ "$accept", "program", "programline", "asgn", "stmtoneliner",
+ "stmtonelinerwithif", "stmt", "ifstmt", "elseifstmtlist", "elseifstmt",
+ "ifoneliner", "repeatwhile", "repeatwith", "if", "elseif", "begin",
+ "end", "stmtlist", "when", "tell", "simpleexpr", "expr", "reference",
+ "proc", "globallist", "propertylist", "instancelist", "gotofunc",
+ "gotomovie", "playfunc", "@1", "defn", "@2", "@3", "on", "argdef",
+ "endargdef", "argstore", "macro", "arglist", "nonemptyarglist", "list",
+ "valuelist", "linearlist", "proplist", "proppair", 0
};
#endif
@@ -768,30 +774,31 @@ static const yytype_uint16 yytoknum[] =
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 60, 62, 38, 43, 45, 42, 47,
- 37, 10, 40, 41, 91, 93, 44
+ 37, 10, 40, 41, 44, 91, 93, 58
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 107, 108, 108, 108, 109, 109, 109, 110, 110,
- 110, 110, 110, 110, 110, 110, 110, 110, 110, 111,
- 111, 111, 112, 112, 112, 112, 113, 113, 113, 113,
- 113, 113, 113, 113, 114, 114, 115, 115, 116, 117,
- 117, 118, 119, 120, 121, 122, 123, 124, 124, 124,
- 125, 126, 127, 127, 127, 127, 127, 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, 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
+ 0, 108, 109, 109, 109, 110, 110, 110, 111, 111,
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 112,
+ 112, 112, 113, 113, 113, 113, 114, 114, 114, 114,
+ 114, 114, 114, 114, 115, 115, 116, 116, 117, 118,
+ 118, 119, 120, 121, 122, 123, 124, 125, 125, 125,
+ 126, 127, 128, 128, 128, 128, 128, 128, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 130, 131, 131, 131, 131, 131, 131, 131,
+ 131, 131, 131, 131, 131, 131, 131, 131, 131, 132,
+ 132, 133, 133, 134, 134, 135, 135, 135, 135, 135,
+ 135, 136, 136, 137, 137, 137, 137, 138, 137, 140,
+ 139, 139, 141, 139, 139, 139, 142, 143, 143, 143,
+ 143, 144, 144, 144, 145, 146, 147, 147, 147, 148,
+ 148, 149, 150, 150, 150, 150, 151, 151, 152, 152,
+ 153
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -803,9 +810,9 @@ 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, 1, 3, 3, 3,
+ 1, 2, 2, 4, 1, 2, 1, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 2, 3, 3, 3, 3, 2, 2, 3, 3, 4,
+ 3, 2, 3, 3, 3, 3, 2, 2, 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,
@@ -813,6 +820,7 @@ static const yytype_uint8 yyr2[] =
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, 3, 0, 1, 1, 1, 1, 3, 1, 3,
3
};
@@ -821,103 +829,105 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 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, 52, 64, 0, 53, 111, 114, 0, 156,
+ 0, 60, 0, 156, 0, 56, 55, 54, 137, 142,
+ 66, 107, 0, 0, 43, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 51, 0, 0, 101, 0, 0, 0, 162, 0, 3,
+ 67, 26, 7, 27, 0, 0, 0, 0, 0, 58,
+ 20, 59, 21, 104, 105, 6, 45, 19, 57, 4,
+ 56, 65, 56, 0, 113, 112, 157, 115, 156, 61,
+ 62, 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, 81, 0, 0, 0, 0, 0, 121,
+ 109, 146, 0, 86, 87, 0, 54, 163, 166, 0,
+ 164, 165, 168, 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,
- 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,
- 64, 56, 0, 113, 112, 157, 115, 156, 60, 61,
- 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, 147, 156, 0, 0, 118, 157, 0, 0,
+ 138, 147, 0, 132, 0, 129, 45, 0, 0, 0,
+ 42, 0, 0, 0, 0, 0, 0, 50, 0, 135,
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, 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,
+ 0, 0, 0, 88, 0, 161, 0, 0, 2, 47,
+ 46, 0, 31, 46, 0, 47, 77, 78, 75, 76,
+ 79, 80, 72, 83, 84, 85, 74, 73, 82, 68,
+ 69, 70, 71, 148, 0, 158, 63, 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, 16, 17,
- 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
+ 0, 97, 0, 89, 90, 122, 99, 156, 170, 167,
+ 0, 169, 46, 0, 47, 0, 33, 46, 154, 0,
+ 154, 0, 16, 17, 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, 46,
+ 0, 151, 140, 47, 46, 45, 44, 37, 0, 0,
+ 45, 40, 152, 144, 46, 0, 47, 46, 34, 0,
+ 0, 0, 29, 46, 0, 46, 153, 30, 0, 47,
+ 0, 35, 46, 39, 38
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 48, 49, 50, 51, 131, 276, 53, 306, 307,
- 132, 54, 55, 56, 308, 155, 199, 258, 57, 58,
- 59, 60, 61, 62, 88, 119, 111, 63, 95, 64,
- 84, 65, 169, 85, 66, 224, 321, 284, 67, 161,
- 83
+ -1, 48, 49, 50, 51, 138, 290, 53, 319, 327,
+ 139, 54, 55, 56, 328, 162, 209, 272, 57, 58,
+ 59, 60, 61, 62, 89, 120, 112, 63, 96, 64,
+ 85, 65, 176, 86, 66, 234, 333, 298, 67, 168,
+ 84, 68, 129, 130, 131, 132
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -268
+#define YYPACT_NINF -283
static const yytype_int16 yypact[] =
{
- 312, -79, -268, -268, 73, -268, -268, 972, 972, 972,
- 5, -268, 972, 972, 73, 1005, -268, -268, -268, -268,
- -268, -36, 46, 850, -268, 62, 972, -13, 65, 71,
- 79, 972, 911, 81, 972, 972, 972, 972, 972, 972,
- -268, 82, 83, -76, 972, 972, 972, 972, 9, -268,
- -268, -268, -268, -268, 972, 47, 972, 676, 972, -268,
- 1486, -268, -268, -268, -268, -268, -268, -268, -268, -268,
- -268, 12, 972, 1486, 1486, 1486, 10, 972, 1486, 10,
- -268, 972, 1486, 11, 972, -268, -268, -268, 17, -268,
- 972, -268, 76, -268, 1058, -268, -268, 1044, 88, -268,
- -14, 73, 7, 69, 72, -268, 1380, -268, 1058, -268,
- -268, 22, -268, 1094, 1128, 1162, 1196, 1452, -268, 23,
- -268, 100, -268, -268, 1414, -44, -268, 403, 1486, 972,
- 1486, -268, -268, 972, 1486, -268, -268, 1366, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 120, 972, 1044, 972, 10,
- 1414, -88, 972, 10, 120, 122, 1486, 972, -268, -268,
- 70, 972, 972, -268, 972, 972, 26, 972, 972, 972,
- -268, 972, -268, 123, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 124, -10, -268, -268, -268, -268,
- 1486, 101, -268, 1486, 972, -268, -40, -40, -40, -40,
- 1499, 1499, -268, -30, -40, -40, -40, -40, -30, -1,
- -1, -268, -268, -268, -53, 1486, -268, 1486, -17, -268,
- 1486, 120, -268, -268, 1486, 1486, 1486, -40, 972, 972,
- 1486, -40, 1486, 1486, -268, 1486, 1230, 1486, 1264, 1486,
- 1298, 1486, 1332, 1486, 1486, -268, -268, 972, 585, -4,
- -268, 102, 1486, 585, 52, 129, 52, -15, 1486, -40,
- 972, 972, 972, 972, 2, -268, -268, 75, 105, 972,
- 585, 767, 77, 132, -268, -268, -268, 52, 1486, 1486,
- 1486, 1486, -268, -268, 972, 1486, 133, -268, -268, -268,
- 494, 585, -268, 1486, -268, -268, 136, 133, 972, -26,
- 157, 585, -268, 585, -268, 98, -268, 1486, -268, -268,
- -268, 57, 585, 99, -268, -268, 138, 767, 161, 103,
- -268, 585, -268, -268, -268, -268, 106, 585, 108, -268,
- -268, -268
+ 336, -86, -283, -283, 29, -283, -283, 996, 996, 996,
+ 15, -283, 996, 996, 29, 1030, -283, -283, -283, -283,
+ -283, -17, 22, 874, -283, 26, 996, 33, 18, 31,
+ 35, 996, 935, 37, 996, 996, 996, 996, 996, 996,
+ -283, 51, 79, 16, 996, 996, 996, 52, 9, -283,
+ -283, -283, -283, -283, 996, 53, 996, 700, 996, -283,
+ 1525, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+ -283, -283, 17, 996, 1525, 1525, 1525, 19, 996, 1525,
+ 19, -283, 996, 1525, 20, 996, -283, -283, -283, 23,
+ -283, 996, -283, 72, -283, 1083, -283, -283, 1070, 92,
+ -283, -14, 29, 2, 69, 71, -283, 1419, -283, 1083,
+ -283, -283, 24, -283, 1133, 1167, 1201, 1235, 1491, -283,
+ 27, -283, 100, -283, -283, 1453, 25, -283, -283, 54,
+ 57, 59, -283, -283, 427, 1525, 996, 1525, -283, -283,
+ 996, 1525, -283, -283, 1405, 996, 996, 996, 996, 996,
+ 996, 996, 996, 996, 996, 996, 996, 996, 996, 996,
+ 996, 996, 107, 996, 1070, 996, 19, 1453, 1, 996,
+ 19, 107, 134, 1525, 996, -283, -283, 77, 996, 996,
+ -283, 996, 996, 12, 996, 996, 996, -283, 996, -283,
+ 135, 996, 996, 996, 996, 996, 996, 996, 996, 996,
+ 996, 136, 8, -283, 29, -283, 29, 137, -283, -283,
+ 1525, 113, -283, 1525, 996, -283, 0, 0, 0, 0,
+ 1538, 1538, -283, 4, 0, 0, 0, 0, 4, -55,
+ -55, -283, -283, -283, -78, 1525, -283, 1525, -15, -283,
+ 1525, 107, -283, -283, 1525, 1525, 1525, 0, 996, 996,
+ 1525, 0, 1525, 1525, -283, 1525, 1269, 1525, 1303, 1525,
+ 1337, 1525, 1371, 1525, 1525, -283, -283, 996, -283, -283,
+ 25, -283, 609, -16, -283, 114, 1525, 609, 78, 143,
+ 78, -11, 1525, 0, 996, 996, 996, 996, 10, -283,
+ -283, 89, 127, 996, 609, 791, 102, 165, -283, -283,
+ -283, 78, 1525, 1525, 1525, 1525, -283, -283, 996, 1525,
+ -283, -283, -283, -283, 518, 609, -283, 1525, -283, 76,
+ -27, 166, 609, -283, 609, -283, -283, -283, 996, 108,
+ -283, -283, -283, 93, 609, 110, -283, 1525, -283, 791,
+ 169, 112, -283, 609, 149, -283, -283, -283, 115, -283,
+ 116, -283, 609, -283, -283
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -268, -268, 68, -268, -267, -268, 21, -268, -108, -268,
- -268, -268, -268, 144, -268, -81, -11, -84, -268, -268,
- 6, -7, 33, 147, -268, -268, -268, -268, -21, -268,
- -268, -268, -268, -268, -268, -152, -268, -243, 148, -6,
- -268
+ -283, -283, 75, -283, -282, -283, 21, -283, -283, -283,
+ -283, -283, -283, 156, -283, -82, -2, -98, -283, -283,
+ 6, -7, 38, 157, -283, -283, -283, -283, -21, -283,
+ -283, -283, -283, -283, -283, -154, -283, -266, 159, -6,
+ -283, -283, -283, -283, -283, 14
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -927,330 +937,338 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -6
static const yytype_int16 yytable[] =
{
- 73, 74, 75, 76, 164, 78, 75, 79, 82, 126,
- 70, 109, 228, 318, 297, 226, 94, 86, 158, 97,
- 80, 52, 68, 286, 106, 108, 121, 112, 113, 114,
- 115, 116, 117, 144, 278, 77, 145, 122, 123, 124,
- 75, 125, 174, 144, 302, 98, 99, 128, 264, 130,
- 134, 137, 279, 265, 175, 150, 151, 152, 153, 154,
- 333, 197, 158, 177, 319, 157, 151, 152, 153, 154,
- 75, 159, 144, 168, 160, 178, 87, 75, 163, 267,
- 100, 101, 238, 166, 266, 2, 287, 182, 231, 265,
- 5, 265, 96, 256, 239, 102, 257, 153, 154, 14,
- 232, 104, 103, 69, 16, 292, 17, 176, 158, 105,
- 127, 110, 118, 120, 156, 129, 158, 162, 173, 201,
- 202, 263, 200, 165, 167, 179, 203, 180, 183, 194,
- 195, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 52, 75,
- 223, 225, 229, 244, 255, 227, 260, 281, 283, 285,
- 230, 294, 299, 328, 234, 235, 293, 236, 237, 298,
- 240, 241, 242, 305, 243, 314, 280, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 320, 325, 259,
- 330, 334, 261, 332, 335, 198, 339, 262, 341, 316,
- 300, 133, 301, 233, 135, 136, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 311, 0,
- 313, 0, 0, 0, 0, 0, 0, 0, 322, 0,
- 0, 268, 269, 324, 0, 0, 0, 327, 0, 0,
- 331, 0, 0, 0, 0, 0, 0, 277, 337, 0,
- 75, 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, 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, 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, 310, 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, 275, 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, 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, 275, 46, 2, 47,
- 0, 3, 4, 5, 0, 6, 7, 8, 9, 10,
+ 74, 75, 76, 77, 171, 79, 76, 80, 83, 133,
+ 71, 110, 330, 311, 300, 69, 95, 238, 151, 98,
+ 81, 52, 292, 278, 107, 109, 279, 113, 114, 115,
+ 116, 117, 118, 101, 102, 316, 87, 123, 124, 125,
+ 293, 2, 181, 160, 161, 78, 5, 135, 103, 137,
+ 141, 144, 88, 128, 182, 104, 97, 345, 184, 70,
+ 16, 105, 17, 331, 2, 106, 164, 111, 248, 5,
+ 185, 76, 166, 151, 175, 167, 152, 151, 76, 170,
+ 249, 119, 70, 16, 173, 126, 280, 281, 189, 279,
+ 301, 99, 100, 279, 241, 157, 158, 159, 160, 161,
+ 158, 159, 160, 161, 236, 165, 14, 242, 183, 121,
+ 134, 266, 267, 306, 165, 325, 326, 277, 122, 163,
+ 174, 136, 180, 165, 169, 186, 187, 172, 190, 210,
+ 202, 201, 204, 213, 47, 211, 212, 233, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
+ 228, 229, 230, 231, 232, 52, 76, 47, 235, 127,
+ 205, 206, 237, 207, 239, 254, 265, 240, 274, 295,
+ 270, 244, 245, 299, 246, 247, 294, 250, 251, 252,
+ 307, 253, 297, 308, 255, 256, 257, 258, 259, 260,
+ 261, 262, 263, 264, 312, 313, 332, 340, 338, 346,
+ 314, 342, 315, 347, 349, 351, 353, 276, 273, 208,
+ 268, 275, 269, 140, 142, 243, 143, 0, 322, 0,
+ 324, 271, 0, 0, 0, 334, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 343, 0,
+ 0, 282, 283, 336, 0, 0, 0, 0, 339, 0,
+ 0, 352, 0, 0, 0, 0, 0, 0, 0, 0,
+ 76, 288, 0, 0, 0, 0, 0, 0, 0, 0,
+ 291, 0, 0, 0, 0, 296, 0, 302, 303, 304,
+ 305, 0, 0, 0, 0, 0, 309, 0, 0, 0,
+ 0, 0, 310, 0, 0, 0, 0, 0, 0, 0,
+ 0, 317, 0, 0, 0, 0, 0, 318, 0, 320,
+ 0, 0, 0, 0, 0, 323, 0, 329, 0, 0,
+ 0, 337, 335, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 341, 0, 0, 344, -5, 1, 0, 0,
+ 0, 348, 0, 350, 0, 0, 0, 0, 2, 0,
+ 354, 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,
- 24, 0, 0, 0, 0, 0, 0, 0, 26, 0,
- 28, 0, 0, 0, 0, 0, 0, 0, 31, 32,
+ 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, 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,
+ 0, 0, 40, 41, 42, 43, 0, 0, 0, 0,
+ 0, 0, 44, 45, 0, 0, 0, -5, 46, 2,
+ 0, 47, 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,
+ 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, 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,
- 71, 16, 0, 17, 0, 0, 0, 20, 0, 0,
- 0, 0, 0, 0, 0, 0, 89, 0, 90, 91,
- 92, 93, 72, 0, 28, 0, 0, 0, 0, 0,
+ 39, 0, 0, 40, 41, 42, 43, 0, 0, 0,
+ 0, 0, 0, 44, 45, 0, 0, 0, 0, 46,
+ 2, 0, 47, 3, 4, 5, 0, 6, 7, 8,
+ 9, 10, 0, 11, 12, 13, 0, 14, 15, 16,
+ 0, 17, 321, 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, 289,
+ 46, 2, 0, 47, 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, 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,
+ 289, 46, 2, 0, 47, 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, 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, 0, 47, 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, 0, 47, 0, 0, 11,
+ 12, 13, 0, 14, 72, 16, 0, 17, 0, 0,
+ 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,
+ 90, 0, 91, 92, 93, 94, 73, 0, 28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 16, 0, 17, 0,
+ 44, 45, 20, 0, 0, 0, 46, 0, 0, 47,
+ 0, 0, 0, 91, 0, 93, 0, 73, 0, 28,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
+ 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, 72, 16, 0, 17,
+ 0, 44, 45, 20, 0, 0, 0, 46, 0, 0,
+ 47, 0, 2, 0, 0, 3, 4, 5, 73, 0,
+ 28, 0, 0, 0, 0, 11, 12, 13, 0, 14,
+ 72, 16, 0, 17, 0, 0, 0, 20, 34, 0,
+ 0, 0, 0, 0, 0, 35, 36, 37, 38, 39,
+ 0, 0, 73, 0, 28, 43, 0, 0, 0, 0,
+ 0, 0, 44, 45, 0, 0, 0, 0, 46, 0,
+ 0, 47, 34, 0, 0, 0, 0, 0, 0, 35,
+ 36, 37, 38, 39, 0, 177, 0, 0, 0, 43,
+ 0, 0, 0, 0, 0, 0, 44, 45, 0, 0,
+ 0, 91, 82, 93, 0, 47, 145, 146, 147, 148,
+ 149, 150, 0, 151, 178, 179, 152, 153, 154, 145,
+ 146, 147, 148, 149, 150, 0, 151, 0, 0, 152,
+ 153, 154, 0, 155, 156, 157, 158, 159, 160, 161,
+ 0, 0, 0, 0, 0, 0, 155, 156, 157, 158,
+ 159, 160, 161, 191, 0, 0, 0, 0, 0, 192,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
+ 146, 147, 148, 149, 150, 0, 151, 0, 0, 152,
+ 153, 154, 0, 0, 0, 0, 0, 193, 0, 0,
+ 0, 0, 0, 194, 0, 0, 155, 156, 157, 158,
+ 159, 160, 161, 145, 146, 147, 148, 149, 150, 0,
+ 151, 0, 0, 152, 153, 154, 0, 0, 0, 0,
+ 0, 195, 0, 0, 0, 0, 0, 196, 0, 0,
+ 155, 156, 157, 158, 159, 160, 161, 145, 146, 147,
+ 148, 149, 150, 0, 151, 0, 0, 152, 153, 154,
+ 0, 0, 0, 0, 0, 197, 0, 0, 0, 0,
+ 0, 198, 0, 0, 155, 156, 157, 158, 159, 160,
+ 161, 145, 146, 147, 148, 149, 150, 0, 151, 0,
+ 0, 152, 153, 154, 0, 0, 0, 0, 0, 284,
+ 0, 0, 0, 0, 0, 0, 0, 0, 155, 156,
+ 157, 158, 159, 160, 161, 145, 146, 147, 148, 149,
+ 150, 0, 151, 0, 0, 152, 153, 154, 0, 0,
+ 0, 0, 0, 285, 0, 0, 0, 0, 0, 0,
+ 0, 0, 155, 156, 157, 158, 159, 160, 161, 145,
+ 146, 147, 148, 149, 150, 0, 151, 0, 0, 152,
+ 153, 154, 0, 0, 0, 0, 0, 286, 0, 0,
+ 0, 0, 0, 0, 0, 0, 155, 156, 157, 158,
+ 159, 160, 161, 145, 146, 147, 148, 149, 150, 0,
+ 151, 0, 0, 152, 153, 154, 0, 0, 0, 0,
+ 0, 287, 0, 0, 0, 0, 0, 0, 0, 0,
+ 155, 156, 157, 158, 159, 160, 161, 145, 146, 147,
+ 148, 149, 150, 0, 151, 0, 0, 152, 153, 154,
0, 0, 0, 0, 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, 71, 16, 0, 17, 0, 44, 45, 20, 0,
- 0, 0, 46, 0, 47, 0, 0, 0, 0, 90,
- 0, 92, 0, 72, 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, 71, 16, 0, 17, 0, 44, 45, 20,
- 0, 0, 0, 46, 0, 47, 0, 2, 0, 0,
- 3, 4, 5, 0, 72, 0, 28, 0, 0, 0,
- 11, 12, 13, 0, 14, 71, 16, 0, 17, 0,
- 0, 0, 20, 0, 34, 0, 0, 0, 0, 0,
- 0, 35, 36, 37, 38, 39, 0, 72, 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, 184, 0, 0, 0, 0, 0,
- 185, 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, 186, 0,
- 0, 0, 0, 0, 187, 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, 188, 0, 0, 0, 0, 0, 189, 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, 190, 0, 0, 0,
- 0, 0, 191, 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,
- 270, 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, 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, 0, 0, 0, 0,
- 0, 0, 204, 0, 0, 148, 149, 150, 151, 152,
- 153, 154, 138, 139, 140, 141, 142, 143, 181, 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, 205, 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, 196, 138, 139,
- 140, 141, 142, 143, 0, 144, 0, 0, 145, 146,
- 147, 0, 0, 0, 0, 0, 192, 193, 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
+ 0, 214, 0, 0, 155, 156, 157, 158, 159, 160,
+ 161, 145, 146, 147, 148, 149, 150, 188, 151, 0,
+ 0, 152, 153, 154, 0, 145, 146, 147, 148, 149,
+ 150, 0, 151, 0, 0, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, 161, 0, 215, 0, 0, 0,
+ 0, 0, 155, 156, 157, 158, 159, 160, 161, 145,
+ 146, 147, 148, 149, 150, 0, 151, 0, 0, 152,
+ 153, 154, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 155, 156, 157, 158,
+ 159, 160, 161, 0, 0, 0, 203, 145, 146, 147,
+ 148, 149, 150, 0, 151, 0, 0, 152, 153, 154,
+ 0, 0, 0, 0, 0, 199, 200, 0, 0, 0,
+ 0, 0, 0, 0, 155, 156, 157, 158, 159, 160,
+ 161, 145, 146, 147, 148, 149, 150, 0, 151, 0,
+ 0, 152, 153, 154, 145, 146, 147, 148, 0, 0,
+ 0, 151, 0, 0, 152, 153, 154, 0, 155, 156,
+ 157, 158, 159, 160, 161, 0, 0, 0, 0, 0,
+ 0, 155, 156, 157, 158, 159, 160, 161
};
static const yytype_int16 yycheck[] =
{
- 7, 8, 9, 9, 85, 12, 13, 13, 15, 0,
- 4, 32, 164, 39, 281, 103, 23, 53, 106, 26,
- 14, 0, 101, 266, 31, 32, 102, 34, 35, 36,
- 37, 38, 39, 73, 38, 30, 76, 44, 45, 46,
- 47, 47, 56, 73, 287, 58, 59, 54, 101, 56,
- 57, 58, 56, 106, 68, 95, 96, 97, 98, 99,
- 327, 105, 106, 56, 90, 72, 96, 97, 98, 99,
- 77, 77, 73, 94, 81, 68, 30, 84, 84, 231,
- 15, 16, 56, 90, 101, 12, 101, 108, 169, 106,
- 17, 106, 30, 103, 68, 30, 106, 98, 99, 29,
- 30, 30, 37, 30, 31, 103, 33, 101, 106, 30,
- 101, 30, 30, 30, 102, 68, 106, 106, 30, 130,
- 131, 205, 129, 106, 48, 56, 133, 55, 106, 106,
- 30, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 127, 156,
- 30, 158, 30, 30, 30, 162, 55, 55, 106, 30,
- 167, 56, 30, 106, 171, 172, 91, 174, 175, 92,
- 177, 178, 179, 40, 181, 39, 260, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 30, 90, 200,
- 91, 30, 203, 55, 91, 127, 90, 204, 90, 307,
- 284, 57, 286, 170, 57, 57, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 302, -1,
- 304, -1, -1, -1, -1, -1, -1, -1, 312, -1,
- -1, 238, 239, 314, -1, -1, -1, 318, -1, -1,
- 324, -1, -1, -1, -1, -1, -1, 258, 332, -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, 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, 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, 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, 104, -1, 15,
- 16, 17, -1, 19, 20, 21, 22, 23, -1, 25,
- 26, 27, -1, 29, 30, 31, -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, 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, 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, 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, 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, 12, 104,
- -1, 15, 16, 17, -1, 19, 20, 21, 22, 23,
+ 7, 8, 9, 9, 86, 12, 13, 13, 15, 0,
+ 4, 32, 39, 295, 280, 101, 23, 171, 73, 26,
+ 14, 0, 38, 101, 31, 32, 104, 34, 35, 36,
+ 37, 38, 39, 15, 16, 301, 53, 44, 45, 46,
+ 56, 12, 56, 98, 99, 30, 17, 54, 30, 56,
+ 57, 58, 30, 47, 68, 37, 30, 339, 56, 30,
+ 31, 30, 33, 90, 12, 30, 73, 30, 56, 17,
+ 68, 78, 78, 73, 95, 82, 76, 73, 85, 85,
+ 68, 30, 30, 31, 91, 33, 101, 241, 109, 104,
+ 101, 58, 59, 104, 176, 95, 96, 97, 98, 99,
+ 96, 97, 98, 99, 103, 104, 29, 30, 102, 30,
+ 101, 103, 104, 103, 104, 39, 40, 215, 102, 102,
+ 48, 68, 30, 104, 104, 56, 55, 104, 104, 136,
+ 30, 104, 107, 140, 105, 137, 138, 30, 145, 146,
+ 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
+ 157, 158, 159, 160, 161, 134, 163, 105, 165, 107,
+ 106, 104, 169, 104, 30, 30, 30, 174, 55, 55,
+ 33, 178, 179, 30, 181, 182, 274, 184, 185, 186,
+ 91, 188, 104, 56, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 92, 30, 30, 104, 90, 30,
+ 298, 91, 300, 91, 55, 90, 90, 214, 210, 134,
+ 204, 213, 206, 57, 57, 177, 57, -1, 316, -1,
+ 318, 207, -1, -1, -1, 323, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 336, -1,
+ -1, 248, 249, 325, -1, -1, -1, -1, 330, -1,
+ -1, 349, -1, -1, -1, -1, -1, -1, -1, -1,
+ 267, 267, -1, -1, -1, -1, -1, -1, -1, -1,
+ 272, -1, -1, -1, -1, 277, -1, 284, 285, 286,
+ 287, -1, -1, -1, -1, -1, 293, -1, -1, -1,
+ -1, -1, 294, -1, -1, -1, -1, -1, -1, -1,
+ -1, 308, -1, -1, -1, -1, -1, 309, -1, 311,
+ -1, -1, -1, -1, -1, 317, -1, 319, -1, -1,
+ -1, 328, 324, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 334, -1, -1, 337, 0, 1, -1, -1,
+ -1, 343, -1, 345, -1, -1, -1, -1, 12, -1,
+ 352, 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,
- 44, -1, -1, -1, -1, -1, -1, -1, 52, -1,
- 54, -1, -1, -1, -1, -1, -1, -1, 62, 63,
+ -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, -1, 87, -1, 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,
+ -1, -1, 86, 87, 88, 89, -1, -1, -1, -1,
+ -1, -1, 96, 97, -1, -1, -1, 101, 102, 12,
+ -1, 105, 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,
+ 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, -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,
+ 83, -1, -1, 86, 87, 88, 89, -1, -1, -1,
+ -1, -1, -1, 96, 97, -1, -1, -1, -1, 102,
+ 12, -1, 105, 15, 16, 17, -1, 19, 20, 21,
+ 22, 23, -1, 25, 26, 27, -1, 29, 30, 31,
+ -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,
+ 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, 12, -1, 105, 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, 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, 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, 12, -1, 105, 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, 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, -1, 96, 97, -1, -1,
+ -1, -1, 102, 12, -1, 105, 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, -1, 105, -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, -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, -1, 105,
+ -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, -1,
+ 105, -1, 12, -1, -1, 15, 16, 17, 52, -1,
+ 54, -1, -1, -1, -1, 25, 26, 27, -1, 29,
+ 30, 31, -1, 33, -1, -1, -1, 37, 72, -1,
+ -1, -1, -1, -1, -1, 79, 80, 81, 82, 83,
+ -1, -1, 52, -1, 54, 89, -1, -1, -1, -1,
+ -1, -1, 96, 97, -1, -1, -1, -1, 102, -1,
+ -1, 105, 72, -1, -1, -1, -1, -1, -1, 79,
+ 80, 81, 82, 83, -1, 45, -1, -1, -1, 89,
+ -1, -1, -1, -1, -1, -1, 96, 97, -1, -1,
+ -1, 48, 102, 50, -1, 105, 66, 67, 68, 69,
+ 70, 71, -1, 73, 74, 75, 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, 50, -1, -1, -1, -1, -1, 56,
+ -1, -1, -1, -1, -1, -1, -1, -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, -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, -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, 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, 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, 101, -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
+ -1, 56, -1, -1, 93, 94, 95, 96, 97, 98,
+ 99, 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, 101, -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
@@ -1261,37 +1279,38 @@ static const yytype_uint8 yystos[] =
23, 25, 26, 27, 29, 30, 31, 33, 35, 36,
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,
- 127, 30, 52, 128, 128, 128, 146, 30, 128, 146,
- 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, 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, 128, 30, 142, 128, 103, 128, 142, 30,
- 128, 122, 30, 129, 128, 128, 128, 128, 56, 68,
- 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
+ 86, 87, 88, 89, 96, 97, 102, 105, 109, 110,
+ 111, 112, 114, 115, 119, 120, 121, 126, 127, 128,
+ 129, 130, 131, 135, 137, 139, 142, 146, 149, 101,
+ 30, 128, 30, 52, 129, 129, 129, 147, 30, 129,
+ 147, 128, 102, 129, 148, 138, 141, 53, 30, 132,
+ 46, 48, 49, 50, 51, 129, 136, 30, 129, 58,
+ 59, 15, 16, 30, 37, 30, 30, 129, 64, 129,
+ 136, 30, 134, 129, 129, 129, 129, 129, 129, 30,
+ 133, 30, 102, 129, 129, 129, 33, 107, 128, 150,
+ 151, 152, 153, 0, 101, 129, 68, 129, 113, 118,
+ 121, 129, 131, 146, 129, 66, 67, 68, 69, 70,
+ 71, 73, 76, 77, 78, 93, 94, 95, 96, 97,
+ 98, 99, 123, 102, 129, 104, 147, 129, 147, 104,
+ 147, 123, 104, 129, 48, 136, 140, 45, 74, 75,
+ 30, 56, 68, 128, 56, 68, 56, 55, 58, 136,
+ 104, 50, 56, 50, 56, 50, 56, 50, 56, 84,
+ 85, 104, 30, 103, 107, 106, 104, 104, 110, 124,
+ 129, 124, 124, 129, 56, 101, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 30, 143, 129, 103, 129, 143, 30,
+ 129, 123, 30, 130, 129, 129, 129, 129, 56, 68,
+ 129, 129, 129, 129, 30, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 30, 103, 104, 128, 128,
+ 33, 153, 125, 124, 55, 124, 129, 125, 101, 104,
+ 101, 143, 129, 129, 50, 50, 50, 50, 147, 101,
+ 114, 124, 38, 56, 125, 55, 124, 104, 145, 30,
+ 145, 101, 129, 129, 129, 129, 103, 91, 56, 129,
+ 124, 112, 92, 30, 125, 125, 145, 129, 124, 116,
+ 124, 34, 125, 124, 125, 39, 40, 117, 122, 124,
+ 39, 90, 30, 144, 125, 124, 123, 129, 90, 123,
+ 104, 124, 91, 125, 124, 112, 30, 91, 124, 55,
+ 124, 90, 125, 90, 124
};
#define yyerrok (yyerrstatus = 0)
@@ -2438,39 +2457,39 @@ yyreduce:
delete (yyvsp[(1) - (1)].s); ;}
break;
- case 57:
-#line 388 "engines/director/lingo/lingo-gr.y"
+ case 58:
+#line 389 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[(1) - (1)].code); ;}
break;
- case 59:
-#line 390 "engines/director/lingo/lingo-gr.y"
+ case 60:
+#line 391 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
delete (yyvsp[(1) - (1)].s); ;}
break;
- case 60:
-#line 393 "engines/director/lingo/lingo-gr.y"
+ case 61:
+#line 394 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
delete (yyvsp[(1) - (2)].s); ;}
break;
- case 61:
-#line 396 "engines/director/lingo/lingo-gr.y"
+ case 62:
+#line 397 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
break;
- case 62:
-#line 397 "engines/director/lingo/lingo-gr.y"
+ case 63:
+#line 398 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg));
delete (yyvsp[(1) - (4)].s); ;}
break;
- case 63:
-#line 400 "engines/director/lingo/lingo-gr.y"
+ case 64:
+#line 401 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2481,8 +2500,8 @@ yyreduce:
g_lingo->code2(e, f); ;}
break;
- case 64:
-#line 408 "engines/director/lingo/lingo-gr.y"
+ case 65:
+#line 409 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_theentitypush);
inst e = 0, f = 0;
@@ -2491,122 +2510,117 @@ yyreduce:
g_lingo->code2(e, f); ;}
break;
- case 65:
-#line 414 "engines/director/lingo/lingo-gr.y"
+ case 66:
+#line 415 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_objectfieldpush);
g_lingo->codeString((yyvsp[(1) - (1)].objectfield).s->c_str());
g_lingo->codeInt((yyvsp[(1) - (1)].objectfield).e); ;}
break;
- case 67:
-#line 419 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_add); ;}
- break;
-
case 68:
#line 420 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_sub); ;}
+ { g_lingo->code1(LC::c_add); ;}
break;
case 69:
#line 421 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_mul); ;}
+ { g_lingo->code1(LC::c_sub); ;}
break;
case 70:
#line 422 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_div); ;}
+ { g_lingo->code1(LC::c_mul); ;}
break;
case 71:
#line 423 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_mod); ;}
+ { g_lingo->code1(LC::c_div); ;}
break;
case 72:
#line 424 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_gt); ;}
+ { g_lingo->code1(LC::c_mod); ;}
break;
case 73:
#line 425 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_lt); ;}
+ { g_lingo->code1(LC::c_gt); ;}
break;
case 74:
#line 426 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_eq); ;}
+ { g_lingo->code1(LC::c_lt); ;}
break;
case 75:
#line 427 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_neq); ;}
+ { g_lingo->code1(LC::c_eq); ;}
break;
case 76:
#line 428 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_ge); ;}
+ { g_lingo->code1(LC::c_neq); ;}
break;
case 77:
#line 429 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_le); ;}
+ { g_lingo->code1(LC::c_ge); ;}
break;
case 78:
#line 430 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_and); ;}
+ { g_lingo->code1(LC::c_le); ;}
break;
case 79:
#line 431 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_or); ;}
+ { g_lingo->code1(LC::c_and); ;}
break;
case 80:
#line 432 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_not); ;}
+ { g_lingo->code1(LC::c_or); ;}
break;
case 81:
#line 433 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_ampersand); ;}
+ { g_lingo->code1(LC::c_not); ;}
break;
case 82:
#line 434 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_concat); ;}
+ { g_lingo->code1(LC::c_ampersand); ;}
break;
case 83:
#line 435 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_contains); ;}
+ { g_lingo->code1(LC::c_concat); ;}
break;
case 84:
#line 436 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_starts); ;}
+ { g_lingo->code1(LC::c_contains); ;}
break;
case 85:
#line 437 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = (yyvsp[(2) - (2)].code); ;}
+ { g_lingo->code1(LC::c_starts); ;}
break;
case 86:
#line 438 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(LC::c_negate); ;}
+ { (yyval.code) = (yyvsp[(2) - (2)].code); ;}
break;
case 87:
#line 439 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = (yyvsp[(2) - (3)].code); ;}
+ { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(LC::c_negate); ;}
break;
case 88:
#line 440 "engines/director/lingo/lingo-gr.y"
- { (yyval.code) = g_lingo->code1(LC::c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;}
+ { (yyval.code) = (yyvsp[(2) - (3)].code); ;}
break;
case 89:
@@ -2975,9 +2989,61 @@ yyreduce:
{ (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
break;
+ case 161:
+#line 633 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = (yyvsp[(2) - (3)].code); ;}
+ break;
+
+ case 162:
+#line 636 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); ;}
+ break;
+
+ case 163:
+#line 637 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); ;}
+ break;
+
+ case 164:
+#line 638 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[(1) - (1)].narg)); ;}
+ break;
+
+ case 165:
+#line 639 "engines/director/lingo/lingo-gr.y"
+ { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[(1) - (1)].narg)); ;}
+ break;
+
+ case 166:
+#line 642 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = 1; ;}
+ break;
+
+ case 167:
+#line 643 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
+ break;
+
+ case 168:
+#line 646 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = 1; ;}
+ break;
+
+ case 169:
+#line 647 "engines/director/lingo/lingo-gr.y"
+ { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
+ break;
+
+ case 170:
+#line 650 "engines/director/lingo/lingo-gr.y"
+ {
+ g_lingo->code1(LC::c_symbolpush);
+ g_lingo->codeString((yyvsp[(1) - (3)].s)->c_str()); ;}
+ break;
+
/* Line 1267 of yacc.c. */
-#line 2981 "engines/director/lingo/lingo-gr.cpp"
+#line 3047 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3191,6 +3257,6 @@ yyreturn:
}
-#line 633 "engines/director/lingo/lingo-gr.y"
+#line 656 "engines/director/lingo/lingo-gr.y"
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 668c52f..b4d8486 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -116,8 +116,8 @@ void checkEnd(Common::String *token, const char *expect, bool required) {
%token tON tME tENDIF tENDREPEAT tENDTELL
%type<code> asgn begin elseif end expr if when repeatwhile
-%type<code> repeatwith stmtlist tell reference simpleexpr
-%type<narg> argdef arglist nonemptyarglist
+%type<code> repeatwith stmtlist tell reference simpleexpr list valuelist
+%type<narg> argdef arglist nonemptyarglist linearlist proplist
%type<s> on
%left tAND tOR
@@ -287,7 +287,7 @@ ifstmt: if expr end tTHEN stmtlist end elseifstmtlist end tENDIF {
;
elseifstmtlist: /* nothing */
- | elseifstmt elseifstmtlist
+ | elseifstmtlist elseifstmt
;
elseifstmt: elseif expr end tTHEN stmtlist end {
@@ -383,6 +383,7 @@ simpleexpr: INT {
$$ = g_lingo->code1(LC::c_eval);
g_lingo->codeString($1->c_str());
delete $1; }
+ | list
;
expr: simpleexpr { $$ = $1; }
@@ -437,7 +438,6 @@ expr: simpleexpr { $$ = $1; }
| '+' expr %prec UNARY { $$ = $2; }
| '-' expr %prec UNARY { $$ = $2; g_lingo->code1(LC::c_negate); }
| '(' expr ')' { $$ = $2; }
- | '[' arglist ']' { $$ = g_lingo->code1(LC::c_arraypush); g_lingo->codeArray($2); }
| tSPRITE expr tINTERSECTS expr { g_lingo->code1(LC::c_intersects); }
| tSPRITE expr tWITHIN expr { g_lingo->code1(LC::c_within); }
| tCHAR expr tOF expr { g_lingo->code1(LC::c_charOf); }
@@ -630,4 +630,27 @@ nonemptyarglist: expr { $$ = 1; }
| nonemptyarglist ',' expr { $$ = $1 + 1; }
;
+list: '[' valuelist ']' { $$ = $2; }
+ ;
+
+valuelist: /* nothing */ { $$ = g_lingo->code2(LC::c_arraypush, 0); }
+ | ':' { $$ = g_lingo->code2(LC::c_proparraypush, 0); }
+ | linearlist { $$ = g_lingo->code1(LC::c_arraypush); $$ = g_lingo->codeInt($1); }
+ | proplist { $$ = g_lingo->code1(LC::c_proparraypush); $$ = g_lingo->codeInt($1); }
+ ;
+
+linearlist: simpleexpr { $$ = 1; }
+ | linearlist ',' simpleexpr { $$ = $1 + 1; }
+ ;
+
+proplist: proppair { $$ = 1; }
+ | proplist ',' proppair { $$ = $1 + 1; }
+ ;
+
+proppair: SYMBOL ':' simpleexpr {
+ g_lingo->code1(LC::c_symbolpush);
+ g_lingo->codeString($1->c_str()); }
+ ;
+
+
%%
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index b67fafe..bd81c4c 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -205,7 +205,6 @@ public:
int codeString(const char *s);
void codeLabel(int label);
int codeInt(int val);
- int codeArray(int arraySize);
int calcStringAlignment(const char *s) {
return calcCodeAlignment(strlen(s) + 1);
More information about the Scummvm-git-logs
mailing list