[Scummvm-git-logs] scummvm master -> 1e476e144647b0bcc37e1cd19a303581b6edc130
djsrv
dservilla at gmail.com
Fri Aug 21 04:22:20 UTC 2020
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
07034e3b71 DIRECTOR: LINGO: Remove factoryCall declaration
20e54db2ae DIRECTOR: LINGO: Implement errors
74bb24c2e5 DIRECTOR: LINGO: Error on missing cast member
1e476e1446 DIRECTOR: LINGO: Assert cast member error in tests
Commit: 07034e3b711042317389100b05ad3206dbd5da6e
https://github.com/scummvm/scummvm/commit/07034e3b711042317389100b05ad3206dbd5da6e
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T00:14:06-04:00
Commit Message:
DIRECTOR: LINGO: Remove factoryCall declaration
Was unused.
Changed paths:
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 524a0502b4..08eab3ac1c 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -320,8 +320,6 @@ public:
void dropStack(int nargs);
void drop(uint num);
- void factoryCall(const Common::String &name, int nargs);
-
void func_mci(const Common::String &name);
void func_mciwait(const Common::String &name);
void func_beep(int repeats);
Commit: 20e54db2aedfa3b84a9462a553277c076b16edf7
https://github.com/scummvm/scummvm/commit/20e54db2aedfa3b84a9462a553277c076b16edf7
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T00:20:22-04:00
Commit Message:
DIRECTOR: LINGO: Implement errors
Changed paths:
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-code.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.h
engines/director/lingo/lingo-gr.y
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 27eff974b0..d80f3bb2ce 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -66,6 +66,8 @@ static struct FuncDescr {
const char *args;
} funcDescr[] = {
{ 0, "STOP", "" },
+ { LC::c_asserterror, "c_asserterror", "" },
+ { LC::c_asserterrordone,"c_asserterrordone","" },
{ LC::c_add, "c_add", "" },
{ LC::c_putafter, "c_putafter", "" }, // D3
{ LC::c_ampersand, "c_ampersand", "" },
@@ -1639,4 +1641,16 @@ void LC::c_hilite() {
cast_id.u.i);
}
+void LC::c_asserterror() {
+ g_lingo->_expectError = true;
+ g_lingo->_caughtError = false;
+}
+
+void LC::c_asserterrordone() {
+ if (!g_lingo->_caughtError) {
+ warning("BUILDBOT: c_asserterrordone: did not catch error");
+ }
+ g_lingo->_expectError = false;
+}
+
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index 3b3916ba7d..461ccc1a92 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -132,6 +132,10 @@ void c_play();
void c_open();
void c_hilite();
+// custom instructions for testing
+void c_asserterror();
+void c_asserterrordone();
+
// stubs for unknown instructions
void cb_unk();
void cb_unk1();
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index b9f6de8dc0..643a7b5a44 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -309,83 +309,85 @@ enum yysymbol_kind_t
YYSYMBOL_tENDIF = 85, /* tENDIF */
YYSYMBOL_tENDREPEAT = 86, /* tENDREPEAT */
YYSYMBOL_tENDTELL = 87, /* tENDTELL */
- YYSYMBOL_88_ = 88, /* '<' */
- YYSYMBOL_89_ = 89, /* '>' */
- YYSYMBOL_90_ = 90, /* '&' */
- YYSYMBOL_91_ = 91, /* '+' */
- YYSYMBOL_92_ = 92, /* '-' */
- YYSYMBOL_93_ = 93, /* '*' */
- YYSYMBOL_94_ = 94, /* '/' */
- YYSYMBOL_95_ = 95, /* '%' */
- YYSYMBOL_96_n_ = 96, /* '\n' */
- YYSYMBOL_97_ = 97, /* '(' */
- YYSYMBOL_98_ = 98, /* ')' */
- YYSYMBOL_99_ = 99, /* ',' */
- YYSYMBOL_100_ = 100, /* '[' */
- YYSYMBOL_101_ = 101, /* ']' */
- YYSYMBOL_102_ = 102, /* ':' */
- YYSYMBOL_YYACCEPT = 103, /* $accept */
- YYSYMBOL_program = 104, /* program */
- YYSYMBOL_programline = 105, /* programline */
- YYSYMBOL_ID = 106, /* ID */
- YYSYMBOL_asgn = 107, /* asgn */
- YYSYMBOL_stmtoneliner = 108, /* stmtoneliner */
- YYSYMBOL_stmt = 109, /* stmt */
- YYSYMBOL_110_1 = 110, /* $@1 */
- YYSYMBOL_111_2 = 111, /* $@2 */
- YYSYMBOL_112_3 = 112, /* $@3 */
- YYSYMBOL_113_4 = 113, /* $@4 */
- YYSYMBOL_114_5 = 114, /* $@5 */
- YYSYMBOL_115_6 = 115, /* $@6 */
- YYSYMBOL_116_7 = 116, /* $@7 */
- YYSYMBOL_117_8 = 117, /* $@8 */
- YYSYMBOL_118_9 = 118, /* $@9 */
- YYSYMBOL_startrepeat = 119, /* startrepeat */
- YYSYMBOL_tellstart = 120, /* tellstart */
- YYSYMBOL_ifstmt = 121, /* ifstmt */
- YYSYMBOL_elseifstmtlist = 122, /* elseifstmtlist */
- YYSYMBOL_elseifstmt = 123, /* elseifstmt */
- YYSYMBOL_jumpifz = 124, /* jumpifz */
- YYSYMBOL_jump = 125, /* jump */
- YYSYMBOL_varassign = 126, /* varassign */
- YYSYMBOL_if = 127, /* if */
- YYSYMBOL_lbl = 128, /* lbl */
- YYSYMBOL_stmtlist = 129, /* stmtlist */
- YYSYMBOL_stmtlistline = 130, /* stmtlistline */
- YYSYMBOL_simpleexprnoparens = 131, /* simpleexprnoparens */
- YYSYMBOL_132_10 = 132, /* $@10 */
- YYSYMBOL_simpleexpr = 133, /* simpleexpr */
- YYSYMBOL_expr = 134, /* expr */
- YYSYMBOL_chunkexpr = 135, /* chunkexpr */
- YYSYMBOL_reference = 136, /* reference */
- YYSYMBOL_proc = 137, /* proc */
- YYSYMBOL_138_11 = 138, /* $@11 */
- YYSYMBOL_139_12 = 139, /* $@12 */
- YYSYMBOL_140_13 = 140, /* $@13 */
- YYSYMBOL_141_14 = 141, /* $@14 */
- YYSYMBOL_globallist = 142, /* globallist */
- YYSYMBOL_propertylist = 143, /* propertylist */
- YYSYMBOL_instancelist = 144, /* instancelist */
- YYSYMBOL_gotofunc = 145, /* gotofunc */
- YYSYMBOL_gotomovie = 146, /* gotomovie */
- YYSYMBOL_playfunc = 147, /* playfunc */
- YYSYMBOL_148_15 = 148, /* $@15 */
- YYSYMBOL_defn = 149, /* defn */
- YYSYMBOL_150_16 = 150, /* $@16 */
- YYSYMBOL_151_17 = 151, /* $@17 */
- YYSYMBOL_on = 152, /* on */
- YYSYMBOL_153_18 = 153, /* $@18 */
- YYSYMBOL_argname = 154, /* argname */
- YYSYMBOL_argdef = 155, /* argdef */
- YYSYMBOL_endargdef = 156, /* endargdef */
- YYSYMBOL_argstore = 157, /* argstore */
- YYSYMBOL_arglist = 158, /* arglist */
- YYSYMBOL_nonemptyarglist = 159, /* nonemptyarglist */
- YYSYMBOL_list = 160, /* list */
- YYSYMBOL_valuelist = 161, /* valuelist */
- YYSYMBOL_linearlist = 162, /* linearlist */
- YYSYMBOL_proplist = 163, /* proplist */
- YYSYMBOL_proppair = 164 /* proppair */
+ YYSYMBOL_tASSERTERROR = 88, /* tASSERTERROR */
+ YYSYMBOL_89_ = 89, /* '<' */
+ YYSYMBOL_90_ = 90, /* '>' */
+ YYSYMBOL_91_ = 91, /* '&' */
+ YYSYMBOL_92_ = 92, /* '+' */
+ YYSYMBOL_93_ = 93, /* '-' */
+ YYSYMBOL_94_ = 94, /* '*' */
+ YYSYMBOL_95_ = 95, /* '/' */
+ YYSYMBOL_96_ = 96, /* '%' */
+ YYSYMBOL_97_n_ = 97, /* '\n' */
+ YYSYMBOL_98_ = 98, /* '(' */
+ YYSYMBOL_99_ = 99, /* ')' */
+ YYSYMBOL_100_ = 100, /* ',' */
+ YYSYMBOL_101_ = 101, /* '[' */
+ YYSYMBOL_102_ = 102, /* ']' */
+ YYSYMBOL_103_ = 103, /* ':' */
+ YYSYMBOL_YYACCEPT = 104, /* $accept */
+ YYSYMBOL_program = 105, /* program */
+ YYSYMBOL_programline = 106, /* programline */
+ YYSYMBOL_ID = 107, /* ID */
+ YYSYMBOL_asgn = 108, /* asgn */
+ YYSYMBOL_stmtoneliner = 109, /* stmtoneliner */
+ YYSYMBOL_stmt = 110, /* stmt */
+ YYSYMBOL_111_1 = 111, /* $@1 */
+ YYSYMBOL_112_2 = 112, /* $@2 */
+ YYSYMBOL_113_3 = 113, /* $@3 */
+ YYSYMBOL_114_4 = 114, /* $@4 */
+ YYSYMBOL_115_5 = 115, /* $@5 */
+ YYSYMBOL_116_6 = 116, /* $@6 */
+ YYSYMBOL_117_7 = 117, /* $@7 */
+ YYSYMBOL_118_8 = 118, /* $@8 */
+ YYSYMBOL_119_9 = 119, /* $@9 */
+ YYSYMBOL_startrepeat = 120, /* startrepeat */
+ YYSYMBOL_tellstart = 121, /* tellstart */
+ YYSYMBOL_asserterrorstart = 122, /* asserterrorstart */
+ YYSYMBOL_ifstmt = 123, /* ifstmt */
+ YYSYMBOL_elseifstmtlist = 124, /* elseifstmtlist */
+ YYSYMBOL_elseifstmt = 125, /* elseifstmt */
+ YYSYMBOL_jumpifz = 126, /* jumpifz */
+ YYSYMBOL_jump = 127, /* jump */
+ YYSYMBOL_varassign = 128, /* varassign */
+ YYSYMBOL_if = 129, /* if */
+ YYSYMBOL_lbl = 130, /* lbl */
+ YYSYMBOL_stmtlist = 131, /* stmtlist */
+ YYSYMBOL_stmtlistline = 132, /* stmtlistline */
+ YYSYMBOL_simpleexprnoparens = 133, /* simpleexprnoparens */
+ YYSYMBOL_134_10 = 134, /* $@10 */
+ YYSYMBOL_simpleexpr = 135, /* simpleexpr */
+ YYSYMBOL_expr = 136, /* expr */
+ YYSYMBOL_chunkexpr = 137, /* chunkexpr */
+ YYSYMBOL_reference = 138, /* reference */
+ YYSYMBOL_proc = 139, /* proc */
+ YYSYMBOL_140_11 = 140, /* $@11 */
+ YYSYMBOL_141_12 = 141, /* $@12 */
+ YYSYMBOL_142_13 = 142, /* $@13 */
+ YYSYMBOL_143_14 = 143, /* $@14 */
+ YYSYMBOL_globallist = 144, /* globallist */
+ YYSYMBOL_propertylist = 145, /* propertylist */
+ YYSYMBOL_instancelist = 146, /* instancelist */
+ YYSYMBOL_gotofunc = 147, /* gotofunc */
+ YYSYMBOL_gotomovie = 148, /* gotomovie */
+ YYSYMBOL_playfunc = 149, /* playfunc */
+ YYSYMBOL_150_15 = 150, /* $@15 */
+ YYSYMBOL_defn = 151, /* defn */
+ YYSYMBOL_152_16 = 152, /* $@16 */
+ YYSYMBOL_153_17 = 153, /* $@17 */
+ YYSYMBOL_on = 154, /* on */
+ YYSYMBOL_155_18 = 155, /* $@18 */
+ YYSYMBOL_argname = 156, /* argname */
+ YYSYMBOL_argdef = 157, /* argdef */
+ YYSYMBOL_endargdef = 158, /* endargdef */
+ YYSYMBOL_argstore = 159, /* argstore */
+ YYSYMBOL_arglist = 160, /* arglist */
+ YYSYMBOL_nonemptyarglist = 161, /* nonemptyarglist */
+ YYSYMBOL_list = 162, /* list */
+ YYSYMBOL_valuelist = 163, /* valuelist */
+ YYSYMBOL_linearlist = 164, /* linearlist */
+ YYSYMBOL_proplist = 165, /* proplist */
+ YYSYMBOL_proppair = 166 /* proppair */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -693,21 +695,21 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 100
+#define YYFINAL 102
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1886
+#define YYLAST 1980
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 103
+#define YYNTOKENS 104
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 62
+#define YYNNTS 63
/* YYNRULES -- Number of rules. */
-#define YYNRULES 195
+#define YYNRULES 197
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 391
+#define YYNSTATES 394
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 342
+#define YYMAXUTOK 343
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -722,15 +724,15 @@ union yyalloc
static const yytype_int8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 96, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 97, 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, 95, 90, 2,
- 97, 98, 93, 91, 99, 92, 2, 94, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 102, 2,
- 88, 2, 89, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 96, 91, 2,
+ 98, 99, 94, 92, 100, 93, 2, 95, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 103, 2,
+ 89, 2, 90, 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, 100, 2, 101, 2, 2, 2, 2, 2, 2,
+ 2, 101, 2, 102, 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,
@@ -755,33 +757,33 @@ static const yytype_int8 yytranslate[] =
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87
+ 85, 86, 87, 88
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 235, 235, 236, 238, 239, 240, 242, 243, 244,
- 245, 246, 248, 255, 259, 270, 277, 280, 287, 290,
- 297, 304, 311, 318, 324, 331, 342, 353, 360, 368,
- 369, 371, 372, 377, 390, 394, 397, 389, 424, 428,
- 431, 423, 458, 465, 471, 457, 501, 509, 512, 513,
- 514, 516, 518, 520, 527, 535, 536, 538, 544, 548,
- 552, 556, 559, 561, 562, 564, 565, 567, 570, 573,
- 577, 581, 582, 583, 584, 585, 593, 599, 602, 605,
- 611, 612, 613, 614, 620, 620, 625, 628, 637, 638,
- 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
- 650, 651, 652, 653, 654, 655, 656, 657, 659, 662,
- 665, 666, 667, 668, 669, 670, 671, 672, 674, 675,
- 678, 682, 685, 686, 687, 695, 696, 696, 697, 697,
- 698, 698, 699, 702, 705, 711, 711, 716, 719, 723,
- 724, 727, 731, 732, 735, 739, 740, 743, 754, 755,
- 756, 757, 761, 765, 770, 771, 773, 777, 781, 785,
- 785, 815, 815, 821, 822, 822, 832, 840, 846, 846,
- 848, 850, 851, 852, 854, 855, 856, 858, 860, 861,
- 862, 864, 865, 866, 868, 870, 871, 872, 873, 875,
- 876, 878, 879, 881, 885, 889
+ 0, 236, 236, 237, 239, 240, 241, 243, 244, 245,
+ 246, 247, 249, 256, 260, 271, 278, 281, 288, 291,
+ 298, 305, 312, 319, 325, 332, 343, 354, 361, 369,
+ 370, 372, 373, 378, 391, 395, 398, 390, 425, 429,
+ 432, 424, 459, 466, 472, 458, 502, 510, 513, 514,
+ 515, 516, 518, 520, 522, 524, 531, 539, 540, 542,
+ 548, 552, 556, 560, 563, 565, 566, 568, 569, 571,
+ 574, 577, 581, 585, 586, 587, 588, 589, 597, 603,
+ 606, 609, 615, 616, 617, 618, 624, 624, 629, 632,
+ 641, 642, 644, 645, 646, 647, 648, 649, 650, 651,
+ 652, 653, 654, 655, 656, 657, 658, 659, 660, 661,
+ 663, 666, 669, 670, 671, 672, 673, 674, 675, 676,
+ 678, 679, 682, 686, 689, 690, 691, 699, 700, 700,
+ 701, 701, 702, 702, 703, 706, 709, 715, 715, 720,
+ 723, 727, 728, 731, 735, 736, 739, 743, 744, 747,
+ 758, 759, 760, 761, 765, 769, 774, 775, 777, 781,
+ 785, 789, 789, 819, 819, 825, 826, 826, 836, 844,
+ 850, 850, 852, 854, 855, 856, 858, 859, 860, 862,
+ 864, 865, 866, 868, 869, 870, 872, 874, 875, 876,
+ 877, 879, 880, 882, 883, 885, 889, 893
};
#endif
@@ -811,18 +813,19 @@ yysymbol_name (yysymbol_kind_t yysymbol)
"tAND", "tOR", "tNOT", "tMOD", "tAFTER", "tBEFORE", "tCONCAT",
"tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE",
"tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tENDIF",
- "tENDREPEAT", "tENDTELL", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'",
- "'/'", "'%'", "'\\n'", "'('", "')'", "','", "'['", "']'", "':'",
- "$accept", "program", "programline", "ID", "asgn", "stmtoneliner",
+ "tENDREPEAT", "tENDTELL", "tASSERTERROR", "'<'", "'>'", "'&'", "'+'",
+ "'-'", "'*'", "'/'", "'%'", "'\\n'", "'('", "')'", "','", "'['", "']'",
+ "':'", "$accept", "program", "programline", "ID", "asgn", "stmtoneliner",
"stmt", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9",
- "startrepeat", "tellstart", "ifstmt", "elseifstmtlist", "elseifstmt",
- "jumpifz", "jump", "varassign", "if", "lbl", "stmtlist", "stmtlistline",
- "simpleexprnoparens", "$@10", "simpleexpr", "expr", "chunkexpr",
- "reference", "proc", "$@11", "$@12", "$@13", "$@14", "globallist",
- "propertylist", "instancelist", "gotofunc", "gotomovie", "playfunc",
- "$@15", "defn", "$@16", "$@17", "on", "$@18", "argname", "argdef",
- "endargdef", "argstore", "arglist", "nonemptyarglist", "list",
- "valuelist", "linearlist", "proplist", "proppair", YY_NULLPTR
+ "startrepeat", "tellstart", "asserterrorstart", "ifstmt",
+ "elseifstmtlist", "elseifstmt", "jumpifz", "jump", "varassign", "if",
+ "lbl", "stmtlist", "stmtlistline", "simpleexprnoparens", "$@10",
+ "simpleexpr", "expr", "chunkexpr", "reference", "proc", "$@11", "$@12",
+ "$@13", "$@14", "globallist", "propertylist", "instancelist", "gotofunc",
+ "gotomovie", "playfunc", "$@15", "defn", "$@16", "$@17", "on", "$@18",
+ "argname", "argdef", "endargdef", "argstore", "arglist",
+ "nonemptyarglist", "list", "valuelist", "linearlist", "proplist",
+ "proppair", YY_NULLPTR
};
return yy_sname[yysymbol];
}
@@ -841,18 +844,18 @@ static const yytype_int16 yytoknum[] =
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 60, 62,
- 38, 43, 45, 42, 47, 37, 10, 40, 41, 44,
- 91, 93, 58
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 60,
+ 62, 38, 43, 45, 42, 47, 37, 10, 40, 41,
+ 44, 91, 93, 58
};
#endif
-#define YYPACT_NINF (-357)
+#define YYPACT_NINF (-329)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-66)
+#define YYTABLE_NINF (-68)
#define yytable_value_is_error(Yyn) \
0
@@ -861,46 +864,46 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 362, -82, -357, -357, -357, -357, -357, -357, -357, -34,
- -357, 892, -357, -357, -357, -30, 1012, -14, 188, 55,
- 55, 1038, 931, -357, 1038, -357, -357, 8, -357, 1119,
- -357, -357, -357, -357, 1038, -357, -357, -357, -357, -357,
- -357, 1038, -357, -357, 55, -357, -357, 1038, -357, -12,
- 1038, -357, -357, -357, 1145, 1145, 1145, 1145, 1038, -357,
- 17, -357, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 148, -63, -357, -357, 1230, -357, -357, -357, -357,
- 55, -357, 55, 1197, 55, -357, 5, 1038, 1038, 6,
- 27, 1, -357, 1607, 1230, -357, 55, 1527, 55, 55,
- -357, 362, 1038, 1658, -357, 1779, 55, -357, 55, -9,
- -357, -357, 1038, -357, -357, -357, -357, -357, 1779, 1038,
- -357, 1263, 1296, 1329, 1362, 1746, -357, -357, 1709, 11,
- 12, -357, -87, 1779, 19, 23, 24, -357, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, -357, -357, 1038, -2,
- -2, -2, -31, 1038, 1038, 1038, 1568, 78, 1038, 1038,
- 1038, 1038, 1038, 1038, -357, 29, -357, -357, -357, 35,
- -357, -357, -357, -32, 1620, 9, 1038, 83, -357, 41,
- 46, 48, 55, -357, 1779, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, -357, 1038, 1038, 1038, -357,
- 1038, 204, 59, 47, -45, -45, -45, -45, 1792, 1792,
- -357, -53, -45, -45, -45, -45, -53, -43, -43, -357,
- -357, 55, 103, -357, -357, -357, -357, -357, -357, 1038,
- 1038, 1779, 1779, 1779, 1038, 1038, 55, 1779, 1779, 1779,
- 1779, 1779, 1779, 55, 493, 716, 55, -357, -357, -357,
- -357, 650, 55, -357, -357, -357, -357, 1395, -357, 1428,
- -357, 1461, -357, 1494, -357, -357, 1779, 1779, 1779, 1779,
- 11, 12, 51, -357, -357, -357, -357, 53, 1038, 1779,
- 1164, -357, 1779, 25, 1038, -357, -357, -357, -357, 67,
- -357, 1038, -357, -357, 563, 616, 1038, 1038, 1038, 1038,
- 1038, -357, 1779, -357, -357, -357, 750, 31, -357, 80,
- 455, 1671, 70, -357, 156, -357, -357, -357, -357, -357,
- 86, 616, -357, -357, -357, -357, 1038, 1038, -357, -357,
- 1038, -357, 56, 55, -357, -357, -357, 131, 151, 101,
- 1779, 1779, -357, 816, 1038, -357, 104, -357, 91, -357,
- 1038, 137, -357, -357, 1779, -357, 55, -357, 1779, 1038,
- 113, 146, -357, 750, -357, 1779, -357, 650, 116, -357,
- -357, -357, -357, 750, -357, -357, 117, 750, -357, 118,
- -357
+ 586, -84, -329, -329, -329, -329, -329, -329, -329, -34,
+ -329, 1054, -329, -329, -329, -26, 1175, 21, 262, 156,
+ 156, 1257, 1136, -329, 1257, -329, -329, -329, 5, -329,
+ 1284, -329, -329, -329, -329, 1257, -329, -329, -329, -329,
+ -329, -329, 1257, -329, -329, 156, -329, -329, 1257, -329,
+ -17, 1257, -329, -329, -329, 1366, 1366, 1366, 1366, 1257,
+ -329, -3, -329, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
+ 1257, 1257, 1015, -65, -329, -329, 1357, -329, -329, -329,
+ -329, 156, -329, 156, 508, 156, -329, -38, 1257, 1257,
+ -32, 7, -7, -329, 1714, 1357, -329, 156, 1658, 156,
+ 156, 406, -329, 586, 1257, 1761, -329, 1885, 156, -329,
+ 156, -30, -329, -329, 1257, -329, -329, -329, -329, -329,
+ 1885, 1257, -329, 1406, 1440, 1474, 1508, 1851, -329, -329,
+ 1813, -37, -28, -329, -74, 1885, -29, -8, -2, -329,
+ 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
+ 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, -329, -329,
+ 1257, 160, 160, 160, -20, 1257, 1257, 1257, 1700, 63,
+ 1257, 1257, 1257, 1257, 1257, 1257, -329, 12, -329, -329,
+ -329, 14, -329, -329, -329, -329, -12, 1748, 25, 1257,
+ 73, -329, 32, 37, 39, 156, -329, 1885, 1257, 1257,
+ 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, -329, 1257,
+ 1257, 1257, -329, 1257, 97, -4, 43, -57, -57, -57,
+ -57, 268, 268, -329, -41, -57, -57, -57, -57, -41,
+ -55, -55, -329, -329, 156, 94, -329, -329, -329, -329,
+ -329, -329, 1257, 1257, 1885, 1885, 1885, 1257, 1257, 156,
+ 1885, 1885, 1885, 1885, 1885, 1885, 156, 406, 816, 156,
+ -329, -329, -329, -329, 754, 156, -329, -329, -329, -329,
+ 1542, -329, 1576, -329, 1610, -329, 1644, -329, -329, 1885,
+ 1885, 1885, 1885, -37, -28, 41, -329, -329, -329, -329,
+ 48, 1257, 1885, 134, -329, 1885, 79, 1257, -329, -329,
+ -329, -329, 49, -329, 1257, -329, -329, 648, 701, 1257,
+ 1257, 1257, 1257, 1257, -329, 1885, -329, -329, -329, 877,
+ 20, -329, 62, 479, 1800, 51, -329, 125, -329, -329,
+ -329, -329, -329, 54, 701, -329, -329, -329, -329, 1257,
+ 1257, -329, -329, 1257, -329, 53, 156, -329, -329, -329,
+ 101, 121, 74, 1885, 1885, -329, 938, 1257, -329, 82,
+ -329, 59, -329, 1257, 114, -329, -329, 1885, -329, 156,
+ -329, 1885, 1257, 90, 129, -329, 877, -329, 1885, -329,
+ 754, 92, -329, -329, -329, -329, 877, -329, -329, 116,
+ 877, -329, 118, -329
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -908,70 +911,70 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 0, 7, 159, 164, 8, 9, 10, 11, 125,
- 126, 0, 148, 61, 161, 0, 0, 0, 0, 0,
- 0, 0, 0, 130, 0, 128, 168, 0, 2, 178,
- 29, 31, 6, 32, 0, 30, 122, 123, 5, 62,
- 50, 178, 62, 124, 139, 67, 75, 0, 68, 0,
- 0, 70, 69, 79, 8, 9, 10, 11, 0, 149,
- 0, 150, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 185, 87, 88, 90, 151, 118, 74, 153, 82,
- 0, 46, 0, 121, 0, 62, 0, 0, 0, 0,
- 0, 0, 163, 133, 156, 158, 145, 0, 142, 0,
- 1, 0, 178, 179, 138, 58, 171, 160, 171, 140,
- 127, 76, 0, 77, 109, 108, 119, 120, 155, 0,
- 73, 0, 0, 0, 0, 0, 71, 72, 0, 70,
- 69, 186, 87, 189, 0, 188, 187, 191, 178, 0,
+ 0, 0, 7, 161, 166, 8, 9, 10, 11, 127,
+ 128, 0, 150, 63, 163, 0, 0, 0, 0, 0,
+ 0, 0, 0, 132, 0, 130, 170, 54, 0, 2,
+ 180, 29, 31, 6, 32, 0, 30, 124, 125, 5,
+ 64, 51, 180, 64, 126, 141, 69, 77, 0, 70,
+ 0, 0, 72, 71, 81, 8, 9, 10, 11, 0,
+ 151, 0, 152, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 187, 89, 90, 92, 153, 120, 76, 155,
+ 84, 0, 46, 0, 123, 0, 64, 0, 0, 0,
+ 0, 0, 0, 165, 135, 158, 160, 147, 0, 144,
+ 0, 0, 1, 0, 180, 181, 140, 60, 173, 162,
+ 173, 142, 129, 78, 0, 79, 111, 110, 121, 122,
+ 157, 0, 75, 0, 0, 0, 0, 0, 73, 74,
+ 0, 72, 71, 188, 89, 191, 0, 190, 189, 193,
+ 180, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 154, 64,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 152, 62, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 157, 146, 131, 52, 52, 143,
- 129, 169, 3, 87, 0, 0, 178, 0, 170, 172,
- 0, 0, 139, 78, 154, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 89, 0, 0, 0, 184,
- 0, 0, 87, 0, 100, 101, 98, 99, 102, 103,
- 95, 105, 106, 107, 97, 96, 104, 91, 92, 93,
- 94, 171, 0, 12, 13, 15, 16, 17, 18, 0,
- 0, 58, 22, 20, 0, 0, 0, 27, 28, 21,
- 19, 47, 132, 145, 0, 0, 142, 134, 135, 137,
- 180, 0, 171, 177, 177, 141, 110, 0, 112, 0,
- 114, 0, 116, 0, 80, 81, 194, 193, 195, 190,
- 0, 0, 0, 192, 83, 84, 86, 0, 0, 42,
- 34, 51, 23, 98, 0, 147, 62, 66, 62, 63,
- 144, 0, 59, 173, 0, 0, 0, 0, 0, 0,
- 0, 177, 14, 62, 60, 60, 0, 0, 49, 0,
- 0, 181, 0, 55, 167, 165, 111, 113, 115, 117,
- 0, 0, 43, 35, 39, 59, 0, 0, 48, 64,
- 182, 136, 62, 174, 85, 162, 58, 0, 0, 0,
- 25, 26, 183, 0, 0, 56, 0, 175, 166, 44,
- 0, 0, 33, 62, 58, 53, 0, 51, 36, 0,
- 0, 0, 176, 0, 58, 40, 54, 0, 0, 51,
- 58, 59, 45, 0, 51, 57, 0, 0, 37, 0,
- 41
+ 0, 0, 0, 0, 0, 0, 159, 148, 133, 53,
+ 53, 145, 131, 171, 50, 3, 89, 0, 0, 180,
+ 0, 172, 174, 0, 0, 141, 80, 156, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 91, 0,
+ 0, 0, 186, 0, 0, 89, 0, 102, 103, 100,
+ 101, 104, 105, 97, 107, 108, 109, 99, 98, 106,
+ 93, 94, 95, 96, 173, 0, 12, 13, 15, 16,
+ 17, 18, 0, 0, 60, 22, 20, 0, 0, 0,
+ 27, 28, 21, 19, 47, 134, 147, 0, 0, 144,
+ 136, 137, 139, 182, 0, 173, 179, 179, 143, 112,
+ 0, 114, 0, 116, 0, 118, 0, 82, 83, 196,
+ 195, 197, 192, 0, 0, 0, 194, 85, 86, 88,
+ 0, 0, 42, 34, 52, 23, 100, 0, 149, 64,
+ 68, 64, 65, 146, 0, 61, 175, 0, 0, 0,
+ 0, 0, 0, 0, 179, 14, 64, 62, 62, 0,
+ 0, 49, 0, 0, 183, 0, 57, 169, 167, 113,
+ 115, 117, 119, 0, 0, 43, 35, 39, 61, 0,
+ 0, 48, 66, 184, 138, 64, 176, 87, 164, 60,
+ 0, 0, 0, 25, 26, 185, 0, 0, 58, 0,
+ 177, 168, 44, 0, 0, 33, 64, 60, 55, 0,
+ 52, 36, 0, 0, 0, 178, 0, 60, 40, 56,
+ 0, 0, 52, 60, 61, 45, 0, 52, 59, 0,
+ 0, 37, 0, 41
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -357, -357, 107, 0, -357, -44, 2, -357, -357, -357,
- -357, -357, -357, -357, -357, -357, -356, 36, -357, -357,
- -357, -237, -326, -106, -357, -7, -248, -357, 76, -357,
- 277, 130, 16, -357, -357, -357, -357, -357, -357, 21,
- -41, -20, -357, -17, -357, -357, -357, -357, -357, -357,
- -357, -357, -107, -357, -258, -38, -303, -357, -357, -357,
- -357, 30
+ -329, -329, 102, 0, -329, -100, 6, -329, -329, -329,
+ -329, -329, -329, -329, -329, -329, -320, 29, -329, -329,
+ -329, -329, -242, -328, -108, -329, -39, -243, -329, 2,
+ -329, -21, 250, -44, -329, -329, -329, -329, -329, -329,
+ 16, -47, -43, -329, -13, -329, -329, -329, -329, -329,
+ -329, -329, -329, -107, -329, -259, -35, -302, -329, -329,
+ -329, -329, 1
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 27, 28, 72, 30, 31, 297, 314, 347, 374,
- 315, 348, 380, 313, 346, 367, 316, 254, 33, 342,
- 355, 187, 323, 333, 34, 106, 298, 299, 73, 310,
- 74, 103, 76, 77, 35, 44, 98, 96, 301, 110,
- 180, 176, 36, 78, 37, 41, 38, 80, 42, 39,
- 99, 189, 190, 358, 304, 104, 322, 79, 134, 135,
- 136, 137
+ -1, 28, 29, 73, 31, 32, 300, 317, 350, 377,
+ 318, 351, 383, 316, 349, 370, 319, 257, 101, 34,
+ 345, 358, 190, 326, 336, 35, 108, 301, 302, 74,
+ 313, 75, 105, 77, 78, 36, 45, 99, 97, 304,
+ 112, 182, 178, 37, 79, 38, 42, 39, 81, 43,
+ 40, 100, 192, 193, 361, 307, 106, 325, 80, 136,
+ 137, 138, 139
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -979,388 +982,408 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 29, 191, 32, 107, 291, 95, 305, 330, 100, 349,
- 138, 373, 239, 302, 40, 208, 145, 43, 90, 91,
- 92, 81, 2, 383, 145, -24, 145, 146, 387, 54,
- 55, 7, 8, 240, 138, 108, 112, 352, 152, 153,
- 154, 155, 84, 85, 109, 151, 152, 153, 154, 155,
- 154, 155, -24, 331, 172, 385, 324, 325, 156, 164,
- 168, -24, -24, 119, 185, 138, 257, 258, 335, 165,
- 169, 132, 339, 63, 64, 65, 66, 174, 163, 2,
- 157, 170, 158, 345, 162, 336, 5, 6, 7, 8,
- 192, 171, 353, 354, 145, 337, 175, 146, 179, 181,
- 213, 29, 183, 32, 101, 363, 188, 259, 188, 359,
- -24, -24, -24, 206, 207, 151, 152, 153, 154, 155,
- 209, -24, 210, 211, 287, 378, 246, 371, 253, 381,
- 114, 115, 116, 117, 256, 386, 261, 379, 212, 389,
- 262, 75, 263, 384, 264, 286, 83, 288, 260, 311,
- 231, 93, 94, 208, 97, 303, 138, 284, 285, 233,
- 235, 237, 45, 320, 105, 46, 47, 338, 341, 48,
- 49, 50, 2, 129, 130, 234, 236, 238, 53, 54,
- 55, 56, 57, 343, 344, 360, 361, 362, 118, 365,
- 366, 369, 109, 121, 122, 123, 124, 125, 376, 377,
- 128, 133, 382, 388, 390, 86, 87, 88, 182, 334,
- 296, 282, 2, 265, 255, 300, 62, 166, 89, 5,
- 6, 7, 8, 63, 64, 65, 66, 67, 2, 280,
- 281, 188, 184, 295, 0, 5, 6, 7, 8, 68,
- 69, 283, 0, 0, 0, 70, 294, 0, 71, 194,
- 131, 0, 0, 175, 29, 29, 179, 0, 0, 0,
- 0, 29, 188, 0, 0, 0, 0, 0, 0, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 0, 0, 0, 318,
- 0, 319, 0, 241, 242, 243, 0, 0, 247, 248,
- 249, 250, 251, 252, 29, 29, 332, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 29, 0, 0, 0,
- 29, 0, 0, 0, 111, 0, 267, 113, 269, 0,
- 271, 29, 273, 0, 0, 356, 276, 277, 278, 120,
- 279, 0, 0, 357, 0, 126, 127, 0, 0, 0,
- 0, 0, 0, 29, 0, 0, 370, 0, 0, 0,
- 0, 0, -4, 1, 0, 167, 372, 0, 0, 289,
- 290, 0, 0, 29, 292, 293, 0, 29, 0, 0,
- 0, 0, 0, 29, 0, 0, 2, 29, 0, 193,
- 3, 4, 0, 5, 6, 7, 8, 0, 0, 0,
- 9, 10, 11, 12, 13, 0, 0, 14, 0, 15,
- 0, 0, 16, 17, 18, 0, 0, 19, 312, 0,
- 20, 21, 22, 23, 0, 0, 0, 0, 0, 0,
- 0, 321, 0, 0, 0, 232, 0, 0, 0, 0,
- 321, 0, 0, 0, 24, 25, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, -65, 1, 0, -4, 0,
- 0, 0, 0, 0, 0, 0, 350, 351, 0, 0,
- 321, 0, 266, 0, 268, 0, 270, 0, 272, 2,
- 274, 275, -65, 3, 364, 0, 5, 6, 7, 8,
- 368, -65, -65, 9, 10, 11, 12, 13, 0, 375,
- 0, 0, 15, 0, 0, 16, 17, 18, 0, 0,
- 19, 0, 0, 0, 21, 22, 23, 2, 0, 0,
- 0, 3, 0, 0, 5, 6, 7, 8, 0, 0,
- 0, 9, 10, 11, 12, 0, 0, 24, 25, 0,
- -65, -65, -65, 16, 0, 18, 0, 0, 0, 0,
- 0, -65, 21, 22, 23, 0, 0, 0, 0, 0,
- 0, 0, 0, -65, 1, 0, 0, 0, 0, 0,
- 0, 317, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 0, 326, 327, 328, 329, 2, 0, 0,
- -65, 3, 0, 0, 5, 6, 7, 8, 0, 0,
- 0, 9, 10, 11, 12, 13, 0, 0, 0, 0,
- 15, 0, 0, 16, 17, 18, -65, 1, 19, 0,
- 0, 0, 21, 22, 23, 0, 0, 0, 0, 0,
+ 30, 184, 294, 194, 110, 102, 33, 109, 308, 96,
+ 352, 333, 147, 41, 147, 148, 166, 44, 91, 92,
+ 93, 305, 170, 242, 140, 82, 167, 113, 147, 211,
+ 115, 114, 171, 140, 153, 154, 155, 156, 157, 156,
+ 157, 355, 122, 121, 243, 111, 174, 165, 128, 129,
+ 376, 154, 155, 156, 157, 334, 388, 116, 117, 118,
+ 119, 172, 386, 158, 327, 328, 209, 390, 169, 188,
+ 195, 173, 134, 212, 339, 210, 338, 85, 86, -24,
+ 342, 159, 176, 160, 340, 164, 140, 260, 261, 356,
+ 357, 348, 213, 196, 140, 287, 288, 177, 214, 181,
+ 183, 30, 103, 30, 186, 216, -24, 362, 191, 33,
+ 191, 249, 256, 366, 259, -24, -24, 237, 239, 241,
+ 234, 2, 283, 284, 262, 374, 264, 290, 5, 6,
+ 7, 8, 265, 381, 266, 382, 267, 384, 291, 235,
+ 215, 387, 289, 389, 211, 314, 323, 392, 147, 341,
+ 344, 148, 346, 347, 263, 363, 364, 299, 306, 369,
+ 365, 236, 238, 240, -24, -24, -24, 368, 372, -38,
+ 153, 154, 155, 156, 157, 379, -24, 269, 385, 271,
+ 2, 273, 380, 275, 2, 277, 278, 5, 6, 7,
+ 8, 55, 56, 7, 8, 111, 141, 142, 143, 144,
+ 145, 146, 391, 147, 393, 185, 148, 149, 150, 258,
+ 337, 268, 303, 298, 285, 286, 0, 0, 0, 0,
+ 0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
+ 0, 0, 0, 0, 191, 64, 65, 66, 67, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
+ 0, 0, 0, 0, 0, 0, 177, 30, 30, 181,
+ 321, 76, 322, 0, 30, 191, 84, 0, 0, 0,
+ 0, 94, 95, 0, 98, 0, 320, 335, 0, 87,
+ 88, 89, 0, 0, 0, 107, 2, 0, 329, 330,
+ 331, 332, 90, 5, 6, 7, 8, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 359, 30, 30, 120,
+ 0, 0, 0, 0, 123, 124, 125, 126, 127, 30,
+ 0, 130, 135, 30, 0, 0, 0, 373, 0, 0,
+ 141, 142, 143, 144, 30, 0, 0, 147, 168, 0,
+ 148, 149, 150, 0, 0, 0, 360, 0, 0, 0,
+ 0, 0, 0, 0, 187, 0, 30, 151, 152, 153,
+ 154, 155, 156, 157, 0, 0, 0, 0, 0, 375,
+ 0, 197, 0, 0, 0, 0, 30, 0, 0, 0,
+ 30, 0, 0, 0, 0, 0, 30, 0, 0, 0,
+ 30, 217, 218, 219, 220, 221, 222, 223, 224, 225,
+ 226, 227, 228, 229, 230, 231, 232, 233, 0, 0,
+ 0, 0, 0, 0, 0, 244, 245, 246, 0, 0,
+ 250, 251, 252, 253, 254, 255, 0, 0, 0, 0,
+ 2, 0, 0, 0, 3, 0, 0, 5, 6, 7,
+ 8, 0, 0, 0, 9, 10, 11, 12, 0, 270,
+ 0, 272, 0, 274, 0, 276, 16, 0, 18, 279,
+ 280, 281, 0, 282, 0, 21, 22, 23, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -67,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 25,
+ 0, 0, 292, 293, 0, 0, 0, 295, 296, 0,
+ 0, 0, 0, 2, 0, 0, -67, 3, 0, 0,
+ 5, 6, 7, 8, 0, -67, -67, 9, 10, 11,
+ 12, 13, 0, 0, 0, 0, 15, 0, 0, 16,
+ 17, 18, 0, 0, 19, 0, 0, 0, 21, 22,
+ 23, 315, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 161, 0, 324, 0, 0, 0, 0, 0,
+ 0, 24, 25, 324, -67, -67, -67, 27, 0, 0,
+ 141, 142, 143, 144, 145, 146, -67, 147, 162, 163,
+ 148, 149, 150, 0, 0, 0, -4, 1, 0, 353,
+ 354, 0, 0, 324, 0, 0, 0, 151, 152, 153,
+ 154, 155, 156, 157, 0, 0, 0, 367, 0, 0,
+ 2, 0, 0, 371, 3, 4, 0, 5, 6, 7,
+ 8, 0, 378, 0, 9, 10, 11, 12, 13, 0,
+ 0, 14, 0, 15, 0, 0, 16, 17, 18, 0,
+ 0, 19, 0, 0, 20, 21, 22, 23, -67, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 3, 24, 25, 5, 6, 7,
- 8, 1, 0, 0, 9, 10, 11, 12, 13, -65,
- 0, 0, 0, 15, 0, 0, 16, 17, 18, 0,
- 0, 19, 0, 0, 2, 21, 22, 23, 3, 0,
- 0, 5, 6, 7, 8, 0, -65, -65, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 15, 24, 25,
- 16, 17, 18, 0, 0, 19, 0, 0, 0, 21,
- 22, 23, -65, 0, 0, 0, 0, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
+ 26, 0, 2, 0, 27, -67, 3, 0, 0, 5,
+ 6, 7, 8, -4, 0, 0, 9, 10, 11, 12,
+ 13, 0, 0, 0, 0, 15, 0, 0, 16, 17,
+ 18, -67, 1, 19, 0, 0, 0, 21, 22, 23,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 24, 25, 0, -65, 0, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, -65, 5, 6, 7,
- 8, 1, 0, 0, 9, 10, 11, 12, 13, 0,
- 0, 0, 0, 15, 0, 0, 16, 17, 18, 0,
- 0, 19, 0, 0, 2, 21, 22, 23, 3, 0,
- 0, 5, 6, 7, 8, 0, 0, 0, 9, 10,
- 11, 12, 13, 0, 0, 0, 0, 15, 24, 25,
- 16, 17, 18, -65, 0, 19, 0, 0, 0, 21,
- 22, 23, -65, 0, 0, 0, 0, 1, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 3,
+ 24, 25, 5, 6, 7, 8, 27, 0, 0, 9,
+ 10, 11, 12, 13, 0, -67, 0, 0, 15, 0,
+ 0, 16, 17, 18, 0, 1, 19, 0, 0, 0,
+ 21, 22, 23, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
+ 0, 0, 3, 24, 25, 5, 6, 7, 8, 27,
+ -67, -67, 9, 10, 11, 12, 13, 0, -67, 0,
+ 0, 15, 0, 0, 16, 17, 18, 0, 0, 19,
+ 0, 0, 0, 21, 22, 23, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 24, 25, 0, 0, -65, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, -65, 5, 6, 7,
- 8, 0, 0, 0, 9, 10, 11, 12, 13, 0,
+ 0, 0, 0, 0, 0, 0, 24, 25, 0, -67,
+ 2, 0, 27, 0, 3, 0, 0, 5, 6, 7,
+ 8, -67, 0, 0, 9, 10, 11, 12, 13, 0,
0, 0, 0, 15, 0, 0, 16, 17, 18, 0,
- 0, 19, 0, 0, 0, 21, 22, 23, 0, 0,
+ 0, 19, 0, 0, 0, 21, 22, 23, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
- 0, -65, 0, 0, 0, 0, 45, 0, 0, 46,
- 47, 0, -65, 48, 49, 50, 2, 51, 52, 0,
- 0, 0, 53, 54, 55, 56, 57, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 58, 59,
- 60, 61, 0, 0, 0, 45, 0, 0, 46, 47,
- 0, 0, 48, 49, 50, 2, 51, 52, 0, 0,
- 62, 53, 54, 55, 56, 57, 0, 63, 64, 65,
- 66, 67, 0, 0, 0, 0, 0, 58, 0, 60,
- 0, 0, 0, 68, 69, 0, 0, 0, 0, 70,
- 0, 0, 71, 0, 0, 0, 0, 0, 0, 62,
- 0, 0, 0, 0, 0, 0, 63, 64, 65, 66,
- 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 68, 69, 0, 0, 45, 0, 70, 46,
- 47, 71, 82, 48, 49, 50, 2, 51, 52, 0,
- 0, 0, 53, 54, 55, 56, 57, 0, 0, 0,
- 0, 0, 45, 0, 0, 46, 47, 0, 0, 48,
- 49, 50, 2, 51, 52, 0, 0, 0, 53, 54,
- 55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
- 62, 0, 0, 0, 0, 0, 0, 63, 64, 65,
- 66, 67, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 68, 69, 0, 62, 0, 0, 70,
- 0, 0, 71, 63, 64, 65, 66, 67, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,
- 69, 0, 0, 45, 0, 70, 46, 47, 71, 0,
- 48, 49, 50, 2, 51, 52, 0, 0, 0, 53,
- 54, 55, 56, 57, 0, 0, 0, 0, 0, 45,
- 0, 0, 46, 47, 0, 0, 48, 49, 50, 2,
- 51, 52, 0, 0, 0, 53, 54, 55, 56, 57,
- 0, 0, 0, 0, 0, 0, 0, 62, 0, 0,
- 0, 0, 0, 0, 63, 64, 65, 66, 67, -38,
+ 0, 2, 0, -67, 27, 3, 0, 0, 5, 6,
+ 7, 8, 0, -67, 0, 9, 10, 11, 12, 13,
+ 0, 0, 0, 0, 15, 0, 0, 16, 17, 18,
+ 0, 0, 19, 0, 0, 0, 21, 22, 23, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
+ 25, 0, 2, -67, 0, 27, 3, 0, 0, 5,
+ 6, 7, 8, 0, -67, 0, 9, 10, 11, 12,
+ 13, 0, 0, 0, 0, 15, 0, 0, 16, 17,
+ 18, 0, 0, 19, 0, 0, 0, 21, 22, 23,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 69, 0, 62, 0, 0, 102, 0, 0, 71,
- 63, 64, 65, 66, 67, 0, 139, 140, 141, 142,
- 143, 144, 0, 145, 0, 0, 146, 147, 148, 0,
- 0, 159, 0, 0, 0, 71, 0, 0, 0, 0,
- 0, 0, 149, 150, 151, 152, 153, 154, 155, 139,
- 140, 141, 142, 143, 144, 0, 145, 160, 161, 146,
- 147, 148, 0, 0, 0, 0, 58, 0, 60, 0,
- 0, 0, 0, 0, 0, 149, 150, 151, 152, 153,
- 154, 155, 139, 140, 141, 142, 143, 144, 0, 145,
- 0, 0, 146, 147, 148, 0, 0, 0, 0, 0,
- 0, 195, 0, 0, 0, 0, 0, 196, 149, 150,
- 151, 152, 153, 154, 155, 139, 140, 141, 142, 143,
- 144, 0, 145, 0, 0, 146, 147, 148, 0, 0,
- 0, 0, 0, 0, 197, 0, 0, 0, 0, 0,
- 198, 149, 150, 151, 152, 153, 154, 155, 139, 140,
- 141, 142, 143, 144, 0, 145, 0, 0, 146, 147,
- 148, 0, 0, 0, 0, 0, 0, 199, 0, 0,
- 0, 0, 0, 200, 149, 150, 151, 152, 153, 154,
- 155, 139, 140, 141, 142, 143, 144, 0, 145, 0,
- 0, 146, 147, 148, 0, 0, 0, 0, 0, 0,
- 201, 0, 0, 0, 0, 0, 202, 149, 150, 151,
- 152, 153, 154, 155, 139, 140, 141, 142, 143, 144,
- 0, 145, 0, 0, 146, 147, 148, 0, 0, 0,
- 0, 0, 0, 306, 0, 0, 0, 0, 0, 0,
- 149, 150, 151, 152, 153, 154, 155, 139, 140, 141,
- 142, 143, 144, 0, 145, 0, 0, 146, 147, 148,
- 0, 0, 0, 0, 0, 0, 307, 0, 0, 0,
- 0, 0, 0, 149, 150, 151, 152, 153, 154, 155,
- 139, 140, 141, 142, 143, 144, 0, 145, 0, 0,
- 146, 147, 148, 0, 0, 0, 0, 0, 0, 308,
- 0, 0, 0, 0, 0, 0, 149, 150, 151, 152,
- 153, 154, 155, 139, 140, 141, 142, 143, 144, 0,
- 145, 0, 0, 146, 147, 148, 0, 0, 0, 0,
- 0, 0, 309, 0, 0, 0, 0, 0, 0, 149,
- 150, 151, 152, 153, 154, 155, 139, 140, 141, 142,
- 143, 144, 0, 145, 0, 0, 146, 147, 148, 0,
+ 24, 25, 0, -67, 0, 0, 27, 0, 0, 46,
+ 0, 0, 47, 48, 0, -67, 49, 50, 51, 2,
+ 131, 132, 0, 0, 0, 54, 55, 56, 57, 58,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 177, 149, 150, 151, 152, 153, 154, 155, 139,
- 140, 141, 142, 143, 144, 0, 145, 0, 0, 146,
- 147, 148, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 149, 150, 151, 152, 153,
- 154, 155, 244, 178, 0, 0, 0, 0, 0, 0,
- 139, 140, 245, 142, 143, 144, 0, 145, 0, 0,
- 146, 147, 148, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 149, 150, 151, 152,
- 153, 154, 155, 173, 0, 0, 0, 0, 0, 139,
- 140, 141, 142, 143, 144, 0, 145, 0, 0, 146,
- 147, 148, 139, 140, 141, 142, 143, 144, 0, 145,
- 0, 0, 146, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 0, 0, 0, 0, 0, 0, 149, 150,
- 151, 152, 153, 154, 155, 0, 0, 0, 205, 186,
- 139, 140, 141, 142, 143, 144, 0, 145, 0, 0,
- 146, 147, 148, 139, 140, 141, 142, 143, 144, 0,
- 145, 0, 0, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 0, 0, 0, 0, 186, 0, 149,
- 150, 151, 152, 153, 154, 155, 0, 0, 0, 0,
- 340, 139, 140, 141, 142, 143, 144, 0, 145, 0,
- 0, 146, 147, 148, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 149, 150, 151,
- 152, 153, 154, 155, 0, 0, 0, 205, 139, 140,
- 141, 142, 143, 144, 0, 145, 0, 0, 146, 147,
- 148, 0, 0, 0, 0, 0, 203, 204, 0, 0,
- 0, 0, 0, 0, 149, 150, 151, 152, 153, 154,
- 155, 139, 140, 141, 142, 143, 144, 0, 145, 0,
- 0, 146, 147, 148, 139, 140, 141, 142, 0, 0,
- 0, 145, 0, 0, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 0, 0, 0, 0, 0, 0,
- 149, 150, 151, 152, 153, 154, 155
+ 0, 0, 0, 0, 0, 0, 0, 0, 46, 0,
+ 0, 47, 48, 0, 0, 49, 50, 51, 2, 52,
+ 53, 0, 0, 63, 54, 55, 56, 57, 58, 0,
+ 64, 65, 66, 67, 68, 0, 0, 0, 0, 0,
+ 59, 60, 61, 62, 0, 0, 0, 69, 70, 0,
+ 0, 0, 0, 71, 0, 0, 72, 0, 133, 0,
+ 0, 0, 63, 0, 0, 0, 0, 0, 0, 64,
+ 65, 66, 67, 68, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 69, 70, 0, 0,
+ 46, 0, 71, 47, 48, 72, 0, 49, 50, 51,
+ 2, 52, 53, 0, 0, 0, 54, 55, 56, 57,
+ 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 59, 0, 61, 0, 0, 0, 0, 46,
+ 0, 0, 47, 48, 0, 83, 49, 50, 51, 2,
+ 52, 53, 0, 0, 63, 54, 55, 56, 57, 58,
+ 0, 64, 65, 66, 67, 68, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 69, 70,
+ 0, 0, 0, 0, 71, 0, 0, 72, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,
+ 64, 65, 66, 67, 68, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 69, 70, 0,
+ 0, 46, 0, 71, 47, 48, 72, 0, 49, 50,
+ 51, 2, 52, 53, 0, 0, 0, 54, 55, 56,
+ 57, 58, 0, 0, 0, 0, 0, 0, 46, 0,
+ 0, 47, 48, 0, 0, 49, 50, 51, 2, 52,
+ 53, 0, 0, 0, 54, 55, 56, 57, 58, 0,
+ 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
+ 0, 0, 64, 65, 66, 67, 68, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,
+ 70, 0, 63, 0, 0, 71, 0, 0, 72, 64,
+ 65, 66, 67, 68, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 69, 70, 0, 0,
+ 46, 0, 104, 47, 48, 72, 0, 49, 50, 51,
+ 2, 52, 53, 0, 0, 0, 54, 55, 56, 57,
+ 58, 0, 0, 59, 0, 61, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 141,
+ 142, 143, 144, 145, 146, 0, 147, 0, 0, 148,
+ 149, 150, 0, 0, 63, 0, 0, 0, 0, 0,
+ 0, 64, 65, 66, 67, 68, 151, 152, 153, 154,
+ 155, 156, 157, 0, 198, 0, 0, 0, 0, 0,
+ 199, 0, 0, 0, 0, 0, 0, 72, 141, 142,
+ 143, 144, 145, 146, 0, 147, 0, 0, 148, 149,
+ 150, 0, 0, 0, 0, 0, 0, 0, 200, 0,
+ 0, 0, 0, 0, 201, 151, 152, 153, 154, 155,
+ 156, 157, 141, 142, 143, 144, 145, 146, 0, 147,
+ 0, 0, 148, 149, 150, 0, 0, 0, 0, 0,
+ 0, 0, 202, 0, 0, 0, 0, 0, 203, 151,
+ 152, 153, 154, 155, 156, 157, 141, 142, 143, 144,
+ 145, 146, 0, 147, 0, 0, 148, 149, 150, 0,
+ 0, 0, 0, 0, 0, 0, 204, 0, 0, 0,
+ 0, 0, 205, 151, 152, 153, 154, 155, 156, 157,
+ 141, 142, 143, 144, 145, 146, 0, 147, 0, 0,
+ 148, 149, 150, 0, 0, 0, 0, 0, 0, 0,
+ 309, 0, 0, 0, 0, 0, 0, 151, 152, 153,
+ 154, 155, 156, 157, 141, 142, 143, 144, 145, 146,
+ 0, 147, 0, 0, 148, 149, 150, 0, 0, 0,
+ 0, 0, 0, 0, 310, 0, 0, 0, 0, 0,
+ 0, 151, 152, 153, 154, 155, 156, 157, 141, 142,
+ 143, 144, 145, 146, 0, 147, 0, 0, 148, 149,
+ 150, 0, 0, 0, 0, 0, 0, 0, 311, 0,
+ 0, 0, 0, 0, 0, 151, 152, 153, 154, 155,
+ 156, 157, 141, 142, 143, 144, 145, 146, 0, 147,
+ 0, 0, 148, 149, 150, 0, 0, 0, 0, 0,
+ 0, 0, 312, 0, 0, 0, 0, 0, 0, 151,
+ 152, 153, 154, 155, 156, 157, 141, 142, 143, 144,
+ 145, 146, 179, 147, 0, 0, 148, 149, 150, 0,
+ 141, 142, 143, 144, 145, 146, 0, 147, 0, 0,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 0, 0, 0, 0, 0, 0, 0, 151, 152, 153,
+ 154, 155, 156, 157, 247, 180, 0, 0, 0, 0,
+ 0, 0, 141, 142, 248, 144, 145, 146, 0, 147,
+ 175, 0, 148, 149, 150, 0, 141, 142, 143, 144,
+ 145, 146, 0, 147, 0, 0, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 0, 0, 0, 0,
+ 0, 0, 0, 151, 152, 153, 154, 155, 156, 157,
+ 141, 142, 143, 144, 145, 146, 0, 147, 0, 0,
+ 148, 149, 150, 141, 142, 143, 144, 145, 146, 0,
+ 147, 0, 0, 148, 149, 150, 0, 151, 152, 153,
+ 154, 155, 156, 157, 0, 0, 0, 208, 189, 0,
+ 151, 152, 153, 154, 155, 156, 157, 0, 0, 0,
+ 0, 189, 141, 142, 143, 144, 145, 146, 0, 147,
+ 0, 0, 148, 149, 150, 141, 142, 143, 144, 145,
+ 146, 0, 147, 0, 0, 148, 149, 150, 0, 151,
+ 152, 153, 154, 155, 156, 157, 0, 0, 0, 0,
+ 343, 0, 151, 152, 153, 154, 155, 156, 157, 0,
+ 0, 0, 208, 141, 142, 143, 144, 145, 146, 0,
+ 147, 0, 0, 148, 149, 150, 0, 0, 0, 0,
+ 0, 206, 207, 0, 0, 0, 0, 0, 0, 0,
+ 151, 152, 153, 154, 155, 156, 157, 141, 142, 143,
+ 144, 145, 146, 0, 147, 0, 0, 148, 149, 150,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 151, 152, 153, 154, 155, 156,
+ 157
};
static const yytype_int16 yycheck[] =
{
- 0, 108, 0, 41, 241, 22, 264, 310, 0, 335,
- 97, 367, 43, 261, 96, 102, 69, 51, 18, 19,
- 20, 51, 24, 379, 69, 0, 69, 72, 384, 31,
- 32, 33, 34, 64, 97, 42, 48, 340, 91, 92,
- 93, 94, 56, 57, 44, 90, 91, 92, 93, 94,
- 93, 94, 27, 311, 53, 381, 304, 305, 75, 54,
- 54, 36, 37, 46, 102, 97, 98, 99, 316, 64,
- 64, 71, 320, 75, 76, 77, 78, 94, 85, 24,
- 80, 54, 82, 331, 84, 54, 31, 32, 33, 34,
- 99, 64, 36, 37, 69, 64, 96, 72, 98, 99,
- 138, 101, 102, 101, 96, 353, 106, 98, 108, 346,
- 85, 86, 87, 102, 102, 90, 91, 92, 93, 94,
- 101, 96, 99, 99, 231, 373, 48, 364, 99, 377,
- 54, 55, 56, 57, 99, 383, 53, 374, 138, 387,
- 99, 11, 96, 380, 96, 98, 16, 44, 186, 96,
- 157, 21, 22, 102, 24, 262, 97, 98, 99, 159,
- 160, 161, 14, 96, 34, 17, 18, 87, 98, 21,
- 22, 23, 24, 25, 26, 159, 160, 161, 30, 31,
- 32, 33, 34, 27, 98, 54, 35, 86, 58, 85,
- 99, 54, 192, 63, 64, 65, 66, 67, 85, 53,
- 70, 71, 86, 86, 86, 17, 18, 19, 101, 315,
- 254, 211, 24, 192, 178, 256, 68, 87, 30, 31,
- 32, 33, 34, 75, 76, 77, 78, 79, 24, 25,
- 26, 231, 102, 253, -1, 31, 32, 33, 34, 91,
- 92, 211, -1, -1, -1, 97, 246, -1, 100, 119,
- 102, -1, -1, 253, 254, 255, 256, -1, -1, -1,
- -1, 261, 262, -1, -1, -1, -1, -1, -1, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, -1, -1, -1, 296,
- -1, 298, -1, 163, 164, 165, -1, -1, 168, 169,
- 170, 171, 172, 173, 304, 305, 313, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 316, -1, -1, -1,
- 320, -1, -1, -1, 47, -1, 196, 50, 198, -1,
- 200, 331, 202, -1, -1, 342, 206, 207, 208, 62,
- 210, -1, -1, 343, -1, 68, 69, -1, -1, -1,
- -1, -1, -1, 353, -1, -1, 363, -1, -1, -1,
- -1, -1, 0, 1, -1, 88, 366, -1, -1, 239,
- 240, -1, -1, 373, 244, 245, -1, 377, -1, -1,
- -1, -1, -1, 383, -1, -1, 24, 387, -1, 112,
- 28, 29, -1, 31, 32, 33, 34, -1, -1, -1,
- 38, 39, 40, 41, 42, -1, -1, 45, -1, 47,
- -1, -1, 50, 51, 52, -1, -1, 55, 288, -1,
- 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
- -1, 301, -1, -1, -1, 158, -1, -1, -1, -1,
- 310, -1, -1, -1, 82, 83, 84, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, 1, -1, 96, -1,
- -1, -1, -1, -1, -1, -1, 336, 337, -1, -1,
- 340, -1, 195, -1, 197, -1, 199, -1, 201, 24,
- 203, 204, 27, 28, 354, -1, 31, 32, 33, 34,
- 360, 36, 37, 38, 39, 40, 41, 42, -1, 369,
- -1, -1, 47, -1, -1, 50, 51, 52, -1, -1,
- 55, -1, -1, -1, 59, 60, 61, 24, -1, -1,
- -1, 28, -1, -1, 31, 32, 33, 34, -1, -1,
- -1, 38, 39, 40, 41, -1, -1, 82, 83, -1,
- 85, 86, 87, 50, -1, 52, -1, -1, -1, -1,
- -1, 96, 59, 60, 61, -1, -1, -1, -1, -1,
- -1, -1, -1, 0, 1, -1, -1, -1, -1, -1,
- -1, 294, -1, -1, -1, -1, 83, -1, -1, -1,
- -1, -1, -1, 306, 307, 308, 309, 24, -1, -1,
- 27, 28, -1, -1, 31, 32, 33, 34, -1, -1,
- -1, 38, 39, 40, 41, 42, -1, -1, -1, -1,
- 47, -1, -1, 50, 51, 52, 0, 1, 55, -1,
- -1, -1, 59, 60, 61, -1, -1, -1, -1, -1,
+ 0, 101, 244, 110, 43, 0, 0, 42, 267, 22,
+ 338, 313, 69, 97, 69, 72, 54, 51, 18, 19,
+ 20, 264, 54, 43, 98, 51, 64, 48, 69, 103,
+ 51, 48, 64, 98, 91, 92, 93, 94, 95, 94,
+ 95, 343, 63, 46, 64, 45, 53, 86, 69, 70,
+ 370, 92, 93, 94, 95, 314, 384, 55, 56, 57,
+ 58, 54, 382, 76, 307, 308, 103, 387, 89, 104,
+ 100, 64, 72, 102, 54, 103, 319, 56, 57, 0,
+ 323, 81, 95, 83, 64, 85, 98, 99, 100, 36,
+ 37, 334, 100, 114, 98, 99, 100, 97, 100, 99,
+ 100, 101, 97, 103, 104, 140, 27, 349, 108, 103,
+ 110, 48, 100, 356, 100, 36, 37, 161, 162, 163,
+ 159, 24, 25, 26, 99, 367, 53, 234, 31, 32,
+ 33, 34, 100, 376, 97, 377, 97, 380, 44, 160,
+ 140, 383, 99, 386, 103, 97, 97, 390, 69, 87,
+ 99, 72, 27, 99, 189, 54, 35, 257, 265, 100,
+ 86, 161, 162, 163, 85, 86, 87, 85, 54, 35,
+ 91, 92, 93, 94, 95, 85, 97, 198, 86, 200,
+ 24, 202, 53, 204, 24, 206, 207, 31, 32, 33,
+ 34, 31, 32, 33, 34, 195, 62, 63, 64, 65,
+ 66, 67, 86, 69, 86, 103, 72, 73, 74, 180,
+ 318, 195, 259, 256, 214, 214, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, -1, 234, 75, 76, 77, 78, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 249,
+ -1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
+ 299, 11, 301, -1, 264, 265, 16, -1, -1, -1,
+ -1, 21, 22, -1, 24, -1, 297, 316, -1, 17,
+ 18, 19, -1, -1, -1, 35, 24, -1, 309, 310,
+ 311, 312, 30, 31, 32, 33, 34, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 345, 307, 308, 59,
+ -1, -1, -1, -1, 64, 65, 66, 67, 68, 319,
+ -1, 71, 72, 323, -1, -1, -1, 366, -1, -1,
+ 62, 63, 64, 65, 334, -1, -1, 69, 88, -1,
+ 72, 73, 74, -1, -1, -1, 346, -1, -1, -1,
+ -1, -1, -1, -1, 104, -1, 356, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, -1, -1, -1, 369,
+ -1, 121, -1, -1, -1, -1, 376, -1, -1, -1,
+ 380, -1, -1, -1, -1, -1, 386, -1, -1, -1,
+ 390, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, -1, -1,
+ -1, -1, -1, -1, -1, 165, 166, 167, -1, -1,
+ 170, 171, 172, 173, 174, 175, -1, -1, -1, -1,
+ 24, -1, -1, -1, 28, -1, -1, 31, 32, 33,
+ 34, -1, -1, -1, 38, 39, 40, 41, -1, 199,
+ -1, 201, -1, 203, -1, 205, 50, -1, 52, 209,
+ 210, 211, -1, 213, -1, 59, 60, 61, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
+ 1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
+ -1, -1, 242, 243, -1, -1, -1, 247, 248, -1,
+ -1, -1, -1, 24, -1, -1, 27, 28, -1, -1,
+ 31, 32, 33, 34, -1, 36, 37, 38, 39, 40,
+ 41, 42, -1, -1, -1, -1, 47, -1, -1, 50,
+ 51, 52, -1, -1, 55, -1, -1, -1, 59, 60,
+ 61, 291, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 44, -1, 304, -1, -1, -1, -1, -1,
+ -1, 82, 83, 313, 85, 86, 87, 88, -1, -1,
+ 62, 63, 64, 65, 66, 67, 97, 69, 70, 71,
+ 72, 73, 74, -1, -1, -1, 0, 1, -1, 339,
+ 340, -1, -1, 343, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, -1, 357, -1, -1,
+ 24, -1, -1, 363, 28, 29, -1, 31, 32, 33,
+ 34, -1, 372, -1, 38, 39, 40, 41, 42, -1,
+ -1, 45, -1, 47, -1, -1, 50, 51, 52, -1,
+ -1, 55, -1, -1, 58, 59, 60, 61, 0, 1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 24, -1, -1, -1, 28, 82, 83, 31, 32, 33,
- 34, 1, -1, -1, 38, 39, 40, 41, 42, 96,
- -1, -1, -1, 47, -1, -1, 50, 51, 52, -1,
- -1, 55, -1, -1, 24, 59, 60, 61, 28, -1,
- -1, 31, 32, 33, 34, -1, 36, 37, 38, 39,
- 40, 41, 42, -1, -1, -1, -1, 47, 82, 83,
- 50, 51, 52, -1, -1, 55, -1, -1, -1, 59,
- 60, 61, 96, -1, -1, -1, -1, 1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 82, 83,
+ 84, -1, 24, -1, 88, 27, 28, -1, -1, 31,
+ 32, 33, 34, 97, -1, -1, 38, 39, 40, 41,
+ 42, -1, -1, -1, -1, 47, -1, -1, 50, 51,
+ 52, 0, 1, 55, -1, -1, -1, 59, 60, 61,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 82, 83, -1, 85, -1, -1, -1, -1,
- 24, -1, -1, -1, 28, -1, 96, 31, 32, 33,
- 34, 1, -1, -1, 38, 39, 40, 41, 42, -1,
- -1, -1, -1, 47, -1, -1, 50, 51, 52, -1,
- -1, 55, -1, -1, 24, 59, 60, 61, 28, -1,
- -1, 31, 32, 33, 34, -1, -1, -1, 38, 39,
- 40, 41, 42, -1, -1, -1, -1, 47, 82, 83,
- 50, 51, 52, 87, -1, 55, -1, -1, -1, 59,
- 60, 61, 96, -1, -1, -1, -1, 1, -1, -1,
+ -1, -1, -1, -1, -1, 24, -1, -1, -1, 28,
+ 82, 83, 31, 32, 33, 34, 88, -1, -1, 38,
+ 39, 40, 41, 42, -1, 97, -1, -1, 47, -1,
+ -1, 50, 51, 52, -1, 1, 55, -1, -1, -1,
+ 59, 60, 61, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 24, -1,
+ -1, -1, 28, 82, 83, 31, 32, 33, 34, 88,
+ 36, 37, 38, 39, 40, 41, 42, -1, 97, -1,
+ -1, 47, -1, -1, 50, 51, 52, -1, -1, 55,
+ -1, -1, -1, 59, 60, 61, -1, 1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 82, 83, -1, -1, 86, -1, -1, -1,
- 24, -1, -1, -1, 28, -1, 96, 31, 32, 33,
- 34, -1, -1, -1, 38, 39, 40, 41, 42, -1,
+ -1, -1, -1, -1, -1, -1, 82, 83, -1, 85,
+ 24, -1, 88, -1, 28, -1, -1, 31, 32, 33,
+ 34, 97, -1, -1, 38, 39, 40, 41, 42, -1,
-1, -1, -1, 47, -1, -1, 50, 51, 52, -1,
- -1, 55, -1, -1, -1, 59, 60, 61, -1, -1,
+ -1, 55, -1, -1, -1, 59, 60, 61, 1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 82, 83,
- -1, 85, -1, -1, -1, -1, 14, -1, -1, 17,
- 18, -1, 96, 21, 22, 23, 24, 25, 26, -1,
- -1, -1, 30, 31, 32, 33, 34, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 46, 47,
- 48, 49, -1, -1, -1, 14, -1, -1, 17, 18,
- -1, -1, 21, 22, 23, 24, 25, 26, -1, -1,
- 68, 30, 31, 32, 33, 34, -1, 75, 76, 77,
- 78, 79, -1, -1, -1, -1, -1, 46, -1, 48,
- -1, -1, -1, 91, 92, -1, -1, -1, -1, 97,
- -1, -1, 100, -1, -1, -1, -1, -1, -1, 68,
- -1, -1, -1, -1, -1, -1, 75, 76, 77, 78,
- 79, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 91, 92, -1, -1, 14, -1, 97, 17,
- 18, 100, 20, 21, 22, 23, 24, 25, 26, -1,
- -1, -1, 30, 31, 32, 33, 34, -1, -1, -1,
- -1, -1, 14, -1, -1, 17, 18, -1, -1, 21,
- 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
- 32, 33, 34, -1, -1, -1, -1, -1, -1, -1,
- 68, -1, -1, -1, -1, -1, -1, 75, 76, 77,
- 78, 79, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 91, 92, -1, 68, -1, -1, 97,
- -1, -1, 100, 75, 76, 77, 78, 79, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 91,
- 92, -1, -1, 14, -1, 97, 17, 18, 100, -1,
- 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
- 31, 32, 33, 34, -1, -1, -1, -1, -1, 14,
- -1, -1, 17, 18, -1, -1, 21, 22, 23, 24,
+ -1, 24, -1, 87, 88, 28, -1, -1, 31, 32,
+ 33, 34, -1, 97, -1, 38, 39, 40, 41, 42,
+ -1, -1, -1, -1, 47, -1, -1, 50, 51, 52,
+ -1, -1, 55, -1, -1, -1, 59, 60, 61, 1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
+ 83, -1, 24, 86, -1, 88, 28, -1, -1, 31,
+ 32, 33, 34, -1, 97, -1, 38, 39, 40, 41,
+ 42, -1, -1, -1, -1, 47, -1, -1, 50, 51,
+ 52, -1, -1, 55, -1, -1, -1, 59, 60, 61,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 82, 83, -1, 85, -1, -1, 88, -1, -1, 14,
+ -1, -1, 17, 18, -1, 97, 21, 22, 23, 24,
25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
- -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
- -1, -1, -1, -1, 75, 76, 77, 78, 79, 35,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 91, 92, -1, 68, -1, -1, 97, -1, -1, 100,
- 75, 76, 77, 78, 79, -1, 62, 63, 64, 65,
- 66, 67, -1, 69, -1, -1, 72, 73, 74, -1,
- -1, 44, -1, -1, -1, 100, -1, -1, -1, -1,
- -1, -1, 88, 89, 90, 91, 92, 93, 94, 62,
- 63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
- 73, 74, -1, -1, -1, -1, 46, -1, 48, -1,
- -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
- 93, 94, 62, 63, 64, 65, 66, 67, -1, 69,
- -1, -1, 72, 73, 74, -1, -1, -1, -1, -1,
- -1, 48, -1, -1, -1, -1, -1, 54, 88, 89,
- 90, 91, 92, 93, 94, 62, 63, 64, 65, 66,
- 67, -1, 69, -1, -1, 72, 73, 74, -1, -1,
- -1, -1, -1, -1, 48, -1, -1, -1, -1, -1,
- 54, 88, 89, 90, 91, 92, 93, 94, 62, 63,
+ -1, -1, -1, -1, -1, -1, -1, -1, 14, -1,
+ -1, 17, 18, -1, -1, 21, 22, 23, 24, 25,
+ 26, -1, -1, 68, 30, 31, 32, 33, 34, -1,
+ 75, 76, 77, 78, 79, -1, -1, -1, -1, -1,
+ 46, 47, 48, 49, -1, -1, -1, 92, 93, -1,
+ -1, -1, -1, 98, -1, -1, 101, -1, 103, -1,
+ -1, -1, 68, -1, -1, -1, -1, -1, -1, 75,
+ 76, 77, 78, 79, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 92, 93, -1, -1,
+ 14, -1, 98, 17, 18, 101, -1, 21, 22, 23,
+ 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
+ 34, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 46, -1, 48, -1, -1, -1, -1, 14,
+ -1, -1, 17, 18, -1, 20, 21, 22, 23, 24,
+ 25, 26, -1, -1, 68, 30, 31, 32, 33, 34,
+ -1, 75, 76, 77, 78, 79, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 92, 93,
+ -1, -1, -1, -1, 98, -1, -1, 101, -1, -1,
+ -1, -1, -1, 68, -1, -1, -1, -1, -1, -1,
+ 75, 76, 77, 78, 79, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 92, 93, -1,
+ -1, 14, -1, 98, 17, 18, 101, -1, 21, 22,
+ 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
+ 33, 34, -1, -1, -1, -1, -1, -1, 14, -1,
+ -1, 17, 18, -1, -1, 21, 22, 23, 24, 25,
+ 26, -1, -1, -1, 30, 31, 32, 33, 34, -1,
+ -1, -1, -1, -1, -1, 68, -1, -1, -1, -1,
+ -1, -1, 75, 76, 77, 78, 79, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 92,
+ 93, -1, 68, -1, -1, 98, -1, -1, 101, 75,
+ 76, 77, 78, 79, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 92, 93, -1, -1,
+ 14, -1, 98, 17, 18, 101, -1, 21, 22, 23,
+ 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
+ 34, -1, -1, 46, -1, 48, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
+ 63, 64, 65, 66, 67, -1, 69, -1, -1, 72,
+ 73, 74, -1, -1, 68, -1, -1, -1, -1, -1,
+ -1, 75, 76, 77, 78, 79, 89, 90, 91, 92,
+ 93, 94, 95, -1, 48, -1, -1, -1, -1, -1,
+ 54, -1, -1, -1, -1, -1, -1, 101, 62, 63,
64, 65, 66, 67, -1, 69, -1, -1, 72, 73,
- 74, -1, -1, -1, -1, -1, -1, 48, -1, -1,
- -1, -1, -1, 54, 88, 89, 90, 91, 92, 93,
- 94, 62, 63, 64, 65, 66, 67, -1, 69, -1,
- -1, 72, 73, 74, -1, -1, -1, -1, -1, -1,
- 48, -1, -1, -1, -1, -1, 54, 88, 89, 90,
- 91, 92, 93, 94, 62, 63, 64, 65, 66, 67,
- -1, 69, -1, -1, 72, 73, 74, -1, -1, -1,
- -1, -1, -1, 48, -1, -1, -1, -1, -1, -1,
- 88, 89, 90, 91, 92, 93, 94, 62, 63, 64,
- 65, 66, 67, -1, 69, -1, -1, 72, 73, 74,
- -1, -1, -1, -1, -1, -1, 48, -1, -1, -1,
- -1, -1, -1, 88, 89, 90, 91, 92, 93, 94,
- 62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
- 72, 73, 74, -1, -1, -1, -1, -1, -1, 48,
- -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 62, 63, 64, 65, 66, 67, -1,
- 69, -1, -1, 72, 73, 74, -1, -1, -1, -1,
- -1, -1, 48, -1, -1, -1, -1, -1, -1, 88,
- 89, 90, 91, 92, 93, 94, 62, 63, 64, 65,
+ 74, -1, -1, -1, -1, -1, -1, -1, 48, -1,
+ -1, -1, -1, -1, 54, 89, 90, 91, 92, 93,
+ 94, 95, 62, 63, 64, 65, 66, 67, -1, 69,
+ -1, -1, 72, 73, 74, -1, -1, -1, -1, -1,
+ -1, -1, 48, -1, -1, -1, -1, -1, 54, 89,
+ 90, 91, 92, 93, 94, 95, 62, 63, 64, 65,
66, 67, -1, 69, -1, -1, 72, 73, 74, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 54, 88, 89, 90, 91, 92, 93, 94, 62,
- 63, 64, 65, 66, 67, -1, 69, -1, -1, 72,
- 73, 74, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 88, 89, 90, 91, 92,
- 93, 94, 54, 96, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 48, -1, -1, -1,
+ -1, -1, 54, 89, 90, 91, 92, 93, 94, 95,
62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
72, 73, 74, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
- 92, 93, 94, 56, -1, -1, -1, -1, -1, 62,
- 63, 64, 65, 66, 67, -1, 69, -1, -1, 72,
- 73, 74, 62, 63, 64, 65, 66, 67, -1, 69,
- -1, -1, 72, 73, 74, 88, 89, 90, 91, 92,
- 93, 94, -1, -1, -1, -1, -1, -1, 88, 89,
- 90, 91, 92, 93, 94, -1, -1, -1, 98, 99,
+ 48, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, 62, 63, 64, 65, 66, 67,
+ -1, 69, -1, -1, 72, 73, 74, -1, -1, -1,
+ -1, -1, -1, -1, 48, -1, -1, -1, -1, -1,
+ -1, 89, 90, 91, 92, 93, 94, 95, 62, 63,
+ 64, 65, 66, 67, -1, 69, -1, -1, 72, 73,
+ 74, -1, -1, -1, -1, -1, -1, -1, 48, -1,
+ -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
+ 94, 95, 62, 63, 64, 65, 66, 67, -1, 69,
+ -1, -1, 72, 73, 74, -1, -1, -1, -1, -1,
+ -1, -1, 48, -1, -1, -1, -1, -1, -1, 89,
+ 90, 91, 92, 93, 94, 95, 62, 63, 64, 65,
+ 66, 67, 54, 69, -1, -1, 72, 73, 74, -1,
+ 62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
+ 72, 73, 74, 89, 90, 91, 92, 93, 94, 95,
+ -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
+ 92, 93, 94, 95, 54, 97, -1, -1, -1, -1,
+ -1, -1, 62, 63, 64, 65, 66, 67, -1, 69,
+ 56, -1, 72, 73, 74, -1, 62, 63, 64, 65,
+ 66, 67, -1, 69, -1, -1, 72, 73, 74, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
+ -1, -1, -1, 89, 90, 91, 92, 93, 94, 95,
62, 63, 64, 65, 66, 67, -1, 69, -1, -1,
72, 73, 74, 62, 63, 64, 65, 66, 67, -1,
- 69, -1, -1, 72, 73, 74, 88, 89, 90, 91,
- 92, 93, 94, -1, -1, -1, -1, 99, -1, 88,
- 89, 90, 91, 92, 93, 94, -1, -1, -1, -1,
- 99, 62, 63, 64, 65, 66, 67, -1, 69, -1,
- -1, 72, 73, 74, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 88, 89, 90,
- 91, 92, 93, 94, -1, -1, -1, 98, 62, 63,
- 64, 65, 66, 67, -1, 69, -1, -1, 72, 73,
- 74, -1, -1, -1, -1, -1, 80, 81, -1, -1,
- -1, -1, -1, -1, 88, 89, 90, 91, 92, 93,
- 94, 62, 63, 64, 65, 66, 67, -1, 69, -1,
- -1, 72, 73, 74, 62, 63, 64, 65, -1, -1,
- -1, 69, -1, -1, 72, 73, 74, 88, 89, 90,
- 91, 92, 93, 94, -1, -1, -1, -1, -1, -1,
- 88, 89, 90, 91, 92, 93, 94
+ 69, -1, -1, 72, 73, 74, -1, 89, 90, 91,
+ 92, 93, 94, 95, -1, -1, -1, 99, 100, -1,
+ 89, 90, 91, 92, 93, 94, 95, -1, -1, -1,
+ -1, 100, 62, 63, 64, 65, 66, 67, -1, 69,
+ -1, -1, 72, 73, 74, 62, 63, 64, 65, 66,
+ 67, -1, 69, -1, -1, 72, 73, 74, -1, 89,
+ 90, 91, 92, 93, 94, 95, -1, -1, -1, -1,
+ 100, -1, 89, 90, 91, 92, 93, 94, 95, -1,
+ -1, -1, 99, 62, 63, 64, 65, 66, 67, -1,
+ 69, -1, -1, 72, 73, 74, -1, -1, -1, -1,
+ -1, 80, 81, -1, -1, -1, -1, -1, -1, -1,
+ 89, 90, 91, 92, 93, 94, 95, 62, 63, 64,
+ 65, 66, 67, -1, 69, -1, -1, 72, 73, 74,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 89, 90, 91, 92, 93, 94,
+ 95
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1369,69 +1392,69 @@ static const yytype_uint8 yystos[] =
{
0, 1, 24, 28, 29, 31, 32, 33, 34, 38,
39, 40, 41, 42, 45, 47, 50, 51, 52, 55,
- 58, 59, 60, 61, 82, 83, 84, 104, 105, 106,
- 107, 108, 109, 121, 127, 137, 145, 147, 149, 152,
- 96, 148, 151, 51, 138, 14, 17, 18, 21, 22,
- 23, 25, 26, 30, 31, 32, 33, 34, 46, 47,
- 48, 49, 68, 75, 76, 77, 78, 79, 91, 92,
- 97, 100, 106, 131, 133, 134, 135, 136, 146, 160,
- 150, 51, 20, 134, 56, 57, 17, 18, 19, 30,
- 106, 106, 106, 134, 134, 146, 140, 134, 139, 153,
- 0, 96, 97, 134, 158, 134, 128, 158, 128, 106,
- 142, 133, 48, 133, 131, 131, 131, 131, 134, 46,
- 133, 134, 134, 134, 134, 134, 133, 133, 134, 25,
- 26, 102, 106, 134, 161, 162, 163, 164, 97, 62,
- 63, 64, 65, 66, 67, 69, 72, 73, 74, 88,
- 89, 90, 91, 92, 93, 94, 146, 106, 106, 44,
- 70, 71, 106, 128, 54, 64, 134, 133, 54, 64,
- 54, 64, 53, 56, 146, 106, 144, 54, 96, 106,
- 143, 106, 105, 106, 134, 158, 99, 124, 106, 154,
- 155, 155, 99, 133, 134, 48, 54, 48, 54, 48,
- 54, 48, 54, 80, 81, 98, 102, 102, 102, 101,
- 99, 99, 106, 158, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 128, 133, 106, 135, 106, 135, 106, 135, 43,
- 64, 134, 134, 134, 54, 64, 48, 134, 134, 134,
- 134, 134, 134, 99, 120, 120, 99, 98, 99, 98,
- 158, 53, 99, 96, 96, 142, 133, 134, 133, 134,
- 133, 134, 133, 134, 133, 133, 134, 134, 134, 134,
- 25, 26, 106, 164, 98, 99, 98, 155, 44, 134,
- 134, 124, 134, 134, 106, 144, 108, 109, 129, 130,
- 143, 141, 129, 155, 157, 157, 48, 48, 48, 48,
- 132, 96, 134, 116, 110, 113, 119, 133, 128, 128,
- 96, 134, 159, 125, 129, 129, 133, 133, 133, 133,
- 159, 157, 128, 126, 126, 129, 54, 64, 87, 129,
- 99, 98, 122, 27, 98, 129, 117, 111, 114, 125,
- 134, 134, 159, 36, 37, 123, 128, 106, 156, 124,
- 54, 35, 86, 129, 134, 85, 99, 118, 134, 54,
- 128, 124, 106, 119, 112, 134, 85, 53, 129, 124,
- 115, 129, 86, 119, 124, 125, 129, 119, 86, 129,
- 86
+ 58, 59, 60, 61, 82, 83, 84, 88, 105, 106,
+ 107, 108, 109, 110, 123, 129, 139, 147, 149, 151,
+ 154, 97, 150, 153, 51, 140, 14, 17, 18, 21,
+ 22, 23, 25, 26, 30, 31, 32, 33, 34, 46,
+ 47, 48, 49, 68, 75, 76, 77, 78, 79, 92,
+ 93, 98, 101, 107, 133, 135, 136, 137, 138, 148,
+ 162, 152, 51, 20, 136, 56, 57, 17, 18, 19,
+ 30, 107, 107, 107, 136, 136, 148, 142, 136, 141,
+ 155, 122, 0, 97, 98, 136, 160, 136, 130, 160,
+ 130, 107, 144, 135, 48, 135, 133, 133, 133, 133,
+ 136, 46, 135, 136, 136, 136, 136, 136, 135, 135,
+ 136, 25, 26, 103, 107, 136, 163, 164, 165, 166,
+ 98, 62, 63, 64, 65, 66, 67, 69, 72, 73,
+ 74, 89, 90, 91, 92, 93, 94, 95, 148, 107,
+ 107, 44, 70, 71, 107, 130, 54, 64, 136, 135,
+ 54, 64, 54, 64, 53, 56, 148, 107, 146, 54,
+ 97, 107, 145, 107, 109, 106, 107, 136, 160, 100,
+ 126, 107, 156, 157, 157, 100, 135, 136, 48, 54,
+ 48, 54, 48, 54, 48, 54, 80, 81, 99, 103,
+ 103, 103, 102, 100, 100, 107, 160, 136, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 130, 135, 107, 137, 107, 137,
+ 107, 137, 43, 64, 136, 136, 136, 54, 64, 48,
+ 136, 136, 136, 136, 136, 136, 100, 121, 121, 100,
+ 99, 100, 99, 160, 53, 100, 97, 97, 144, 135,
+ 136, 135, 136, 135, 136, 135, 136, 135, 135, 136,
+ 136, 136, 136, 25, 26, 107, 166, 99, 100, 99,
+ 157, 44, 136, 136, 126, 136, 136, 107, 146, 109,
+ 110, 131, 132, 145, 143, 131, 157, 159, 159, 48,
+ 48, 48, 48, 134, 97, 136, 117, 111, 114, 120,
+ 135, 130, 130, 97, 136, 161, 127, 131, 131, 135,
+ 135, 135, 135, 161, 159, 130, 128, 128, 131, 54,
+ 64, 87, 131, 100, 99, 124, 27, 99, 131, 118,
+ 112, 115, 127, 136, 136, 161, 36, 37, 125, 130,
+ 107, 158, 126, 54, 35, 86, 131, 136, 85, 100,
+ 119, 136, 54, 130, 126, 107, 120, 113, 136, 85,
+ 53, 131, 126, 116, 131, 86, 120, 126, 127, 131,
+ 120, 86, 131, 86
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 103, 104, 104, 105, 105, 105, 106, 106, 106,
- 106, 106, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 108,
- 108, 109, 109, 109, 110, 111, 112, 109, 113, 114,
- 115, 109, 116, 117, 118, 109, 109, 109, 109, 109,
- 109, 119, 120, 121, 121, 122, 122, 123, 124, 125,
- 126, 127, 128, 129, 129, 130, 130, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 132, 131, 131, 131, 133, 133,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 136, 136,
- 136, 137, 137, 137, 137, 137, 138, 137, 139, 137,
- 140, 137, 137, 137, 137, 141, 137, 137, 137, 142,
- 142, 142, 143, 143, 143, 144, 144, 144, 145, 145,
- 145, 145, 145, 145, 146, 146, 147, 147, 147, 148,
- 147, 150, 149, 149, 151, 149, 149, 149, 153, 152,
- 154, 155, 155, 155, 156, 156, 156, 157, 158, 158,
- 158, 159, 159, 159, 160, 161, 161, 161, 161, 162,
- 162, 163, 163, 164, 164, 164
+ 0, 104, 105, 105, 106, 106, 106, 107, 107, 107,
+ 107, 107, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 109,
+ 109, 110, 110, 110, 111, 112, 113, 110, 114, 115,
+ 116, 110, 117, 118, 119, 110, 110, 110, 110, 110,
+ 110, 110, 120, 121, 122, 123, 123, 124, 124, 125,
+ 126, 127, 128, 129, 130, 131, 131, 132, 132, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 134, 133, 133, 133,
+ 135, 135, 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 138, 138, 138, 139, 139, 139, 139, 139, 140, 139,
+ 141, 139, 142, 139, 139, 139, 139, 143, 139, 139,
+ 139, 144, 144, 144, 145, 145, 145, 146, 146, 146,
+ 147, 147, 147, 147, 147, 147, 148, 148, 149, 149,
+ 149, 150, 149, 152, 151, 151, 153, 151, 151, 151,
+ 155, 154, 156, 157, 157, 157, 158, 158, 158, 159,
+ 160, 160, 160, 161, 161, 161, 162, 163, 163, 163,
+ 163, 164, 164, 165, 165, 166, 166, 166
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1442,21 +1465,21 @@ static const yytype_int8 yyr2[] =
4, 4, 4, 5, 5, 8, 8, 4, 4, 1,
1, 1, 1, 9, 0, 0, 0, 15, 0, 0,
0, 16, 0, 0, 0, 13, 2, 4, 7, 6,
- 2, 0, 0, 9, 11, 0, 2, 6, 0, 0,
- 0, 1, 0, 1, 3, 0, 1, 1, 1, 1,
- 1, 2, 2, 2, 1, 1, 2, 2, 3, 1,
- 4, 4, 1, 4, 0, 7, 4, 1, 1, 3,
- 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 2, 2,
- 4, 6, 4, 6, 4, 6, 4, 6, 1, 2,
- 2, 2, 1, 1, 2, 1, 0, 3, 0, 3,
- 0, 3, 4, 2, 4, 0, 7, 4, 2, 0,
- 1, 3, 0, 1, 3, 0, 1, 3, 1, 2,
- 2, 2, 3, 2, 3, 2, 2, 3, 2, 0,
- 3, 0, 8, 2, 0, 7, 8, 6, 0, 3,
- 1, 0, 1, 3, 0, 1, 3, 0, 0, 1,
- 3, 1, 2, 3, 3, 0, 1, 1, 1, 1,
- 3, 1, 3, 3, 3, 3
+ 3, 2, 0, 0, 0, 9, 11, 0, 2, 6,
+ 0, 0, 0, 1, 0, 1, 3, 0, 1, 1,
+ 1, 1, 1, 2, 2, 2, 1, 1, 2, 2,
+ 3, 1, 4, 4, 1, 4, 0, 7, 4, 1,
+ 1, 3, 1, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 2, 2, 4, 6, 4, 6, 4, 6, 4, 6,
+ 1, 2, 2, 2, 1, 1, 2, 1, 0, 3,
+ 0, 3, 0, 3, 4, 2, 4, 0, 7, 4,
+ 2, 0, 1, 3, 0, 1, 3, 0, 1, 3,
+ 1, 2, 2, 2, 3, 2, 3, 2, 2, 3,
+ 2, 0, 3, 0, 8, 2, 0, 7, 8, 6,
+ 0, 3, 1, 0, 1, 3, 0, 1, 3, 0,
+ 0, 1, 3, 1, 2, 3, 3, 0, 1, 1,
+ 1, 1, 3, 1, 3, 3, 3, 3
};
@@ -1728,63 +1751,63 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_THEFUNC: /* THEFUNC */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1734 "engines/director/lingo/lingo-gr.cpp"
+#line 1757 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_THEFUNCINOF: /* THEFUNCINOF */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1740 "engines/director/lingo/lingo-gr.cpp"
+#line 1763 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_VARID: /* VARID */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1746 "engines/director/lingo/lingo-gr.cpp"
+#line 1769 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_STRING: /* STRING */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1752 "engines/director/lingo/lingo-gr.cpp"
+#line 1775 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_SYMBOL: /* SYMBOL */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1758 "engines/director/lingo/lingo-gr.cpp"
+#line 1781 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ENDCLAUSE: /* ENDCLAUSE */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1764 "engines/director/lingo/lingo-gr.cpp"
+#line 1787 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tPLAYACCEL: /* tPLAYACCEL */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1770 "engines/director/lingo/lingo-gr.cpp"
+#line 1793 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_tMETHOD: /* tMETHOD */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1776 "engines/director/lingo/lingo-gr.cpp"
+#line 1799 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_ID: /* ID */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1782 "engines/director/lingo/lingo-gr.cpp"
+#line 1805 "engines/director/lingo/lingo-gr.cpp"
break;
case YYSYMBOL_on: /* on */
-#line 231 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
{ delete ((*yyvaluep).s); }
-#line 1788 "engines/director/lingo/lingo-gr.cpp"
+#line 1811 "engines/director/lingo/lingo-gr.cpp"
break;
default:
@@ -2050,31 +2073,31 @@ yyreduce:
switch (yyn)
{
case 8: /* ID: tCAST */
-#line 243 "engines/director/lingo/lingo-gr.y"
+#line 244 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("cast"); }
-#line 2056 "engines/director/lingo/lingo-gr.cpp"
+#line 2079 "engines/director/lingo/lingo-gr.cpp"
break;
case 9: /* ID: tFIELD */
-#line 244 "engines/director/lingo/lingo-gr.y"
+#line 245 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("field"); }
-#line 2062 "engines/director/lingo/lingo-gr.cpp"
+#line 2085 "engines/director/lingo/lingo-gr.cpp"
break;
case 10: /* ID: tSCRIPT */
-#line 245 "engines/director/lingo/lingo-gr.y"
+#line 246 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("script"); }
-#line 2068 "engines/director/lingo/lingo-gr.cpp"
+#line 2091 "engines/director/lingo/lingo-gr.cpp"
break;
case 11: /* ID: tWINDOW */
-#line 246 "engines/director/lingo/lingo-gr.y"
+#line 247 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = new Common::String("window"); }
-#line 2074 "engines/director/lingo/lingo-gr.cpp"
+#line 2097 "engines/director/lingo/lingo-gr.cpp"
break;
case 12: /* asgn: tPUT expr tINTO ID */
-#line 248 "engines/director/lingo/lingo-gr.y"
+#line 249 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
@@ -2082,19 +2105,19 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2086 "engines/director/lingo/lingo-gr.cpp"
+#line 2109 "engines/director/lingo/lingo-gr.cpp"
break;
case 13: /* asgn: tPUT expr tINTO chunkexpr */
-#line 255 "engines/director/lingo/lingo-gr.y"
+#line 256 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[-2].code); }
-#line 2094 "engines/director/lingo/lingo-gr.cpp"
+#line 2117 "engines/director/lingo/lingo-gr.cpp"
break;
case 14: /* asgn: tPUT THEMENUITEMSENTITY ID simpleexpr tINTO expr */
-#line 259 "engines/director/lingo/lingo-gr.y"
+#line 260 "engines/director/lingo/lingo-gr.y"
{
if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
warning("LEXER: keyword 'menu' expected");
@@ -2106,11 +2129,11 @@ yyreduce:
g_lingo->codeInt((yyvsp[-4].e)[1]);
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code); }
-#line 2110 "engines/director/lingo/lingo-gr.cpp"
+#line 2133 "engines/director/lingo/lingo-gr.cpp"
break;
case 15: /* asgn: tPUT expr tAFTER ID */
-#line 270 "engines/director/lingo/lingo-gr.y"
+#line 271 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
@@ -2118,19 +2141,19 @@ yyreduce:
g_lingo->code1(LC::c_putafter);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2122 "engines/director/lingo/lingo-gr.cpp"
+#line 2145 "engines/director/lingo/lingo-gr.cpp"
break;
case 16: /* asgn: tPUT expr tAFTER chunkexpr */
-#line 277 "engines/director/lingo/lingo-gr.y"
+#line 278 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_putafter);
(yyval.code) = (yyvsp[-2].code); }
-#line 2130 "engines/director/lingo/lingo-gr.cpp"
+#line 2153 "engines/director/lingo/lingo-gr.cpp"
break;
case 17: /* asgn: tPUT expr tBEFORE ID */
-#line 280 "engines/director/lingo/lingo-gr.y"
+#line 281 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
@@ -2138,19 +2161,19 @@ yyreduce:
g_lingo->code1(LC::c_putbefore);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
-#line 2142 "engines/director/lingo/lingo-gr.cpp"
+#line 2165 "engines/director/lingo/lingo-gr.cpp"
break;
case 18: /* asgn: tPUT expr tBEFORE chunkexpr */
-#line 287 "engines/director/lingo/lingo-gr.y"
+#line 288 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_putbefore);
(yyval.code) = (yyvsp[-2].code); }
-#line 2150 "engines/director/lingo/lingo-gr.cpp"
+#line 2173 "engines/director/lingo/lingo-gr.cpp"
break;
case 19: /* asgn: tSET ID tEQ expr */
-#line 290 "engines/director/lingo/lingo-gr.y"
+#line 291 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
@@ -2158,11 +2181,11 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code);
delete (yyvsp[-2].s); }
-#line 2162 "engines/director/lingo/lingo-gr.cpp"
+#line 2185 "engines/director/lingo/lingo-gr.cpp"
break;
case 20: /* asgn: tSET THEENTITY tEQ expr */
-#line 297 "engines/director/lingo/lingo-gr.y"
+#line 298 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2170,11 +2193,11 @@ yyreduce:
g_lingo->codeInt((yyvsp[-2].e)[0]);
g_lingo->codeInt((yyvsp[-2].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2174 "engines/director/lingo/lingo-gr.cpp"
+#line 2197 "engines/director/lingo/lingo-gr.cpp"
break;
case 21: /* asgn: tSET ID tTO expr */
-#line 304 "engines/director/lingo/lingo-gr.y"
+#line 305 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
@@ -2182,11 +2205,11 @@ yyreduce:
g_lingo->code1(LC::c_assign);
(yyval.code) = (yyvsp[0].code);
delete (yyvsp[-2].s); }
-#line 2186 "engines/director/lingo/lingo-gr.cpp"
+#line 2209 "engines/director/lingo/lingo-gr.cpp"
break;
case 22: /* asgn: tSET THEENTITY tTO expr */
-#line 311 "engines/director/lingo/lingo-gr.y"
+#line 312 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2194,33 +2217,33 @@ yyreduce:
g_lingo->codeInt((yyvsp[-2].e)[0]);
g_lingo->codeInt((yyvsp[-2].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2198 "engines/director/lingo/lingo-gr.cpp"
+#line 2221 "engines/director/lingo/lingo-gr.cpp"
break;
case 23: /* asgn: tSET THEENTITYWITHID expr tTO expr */
-#line 318 "engines/director/lingo/lingo-gr.y"
+#line 319 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_swap);
g_lingo->code1(LC::c_theentityassign);
g_lingo->codeInt((yyvsp[-3].e)[0]);
g_lingo->codeInt((yyvsp[-3].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2209 "engines/director/lingo/lingo-gr.cpp"
+#line 2232 "engines/director/lingo/lingo-gr.cpp"
break;
case 24: /* asgn: tSET THEENTITYWITHID expr tEQ expr */
-#line 324 "engines/director/lingo/lingo-gr.y"
+#line 325 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_swap);
g_lingo->code1(LC::c_theentityassign);
g_lingo->codeInt((yyvsp[-3].e)[0]);
g_lingo->codeInt((yyvsp[-3].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2220 "engines/director/lingo/lingo-gr.cpp"
+#line 2243 "engines/director/lingo/lingo-gr.cpp"
break;
case 25: /* asgn: tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tTO expr */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 332 "engines/director/lingo/lingo-gr.y"
{
if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
warning("LEXER: keyword 'menu' expected");
@@ -2232,11 +2255,11 @@ yyreduce:
g_lingo->codeInt((yyvsp[-6].e)[0]);
g_lingo->codeInt((yyvsp[-6].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2236 "engines/director/lingo/lingo-gr.cpp"
+#line 2259 "engines/director/lingo/lingo-gr.cpp"
break;
case 26: /* asgn: tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tEQ expr */
-#line 342 "engines/director/lingo/lingo-gr.y"
+#line 343 "engines/director/lingo/lingo-gr.y"
{
if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) {
warning("LEXER: keyword 'menu' expected");
@@ -2248,11 +2271,11 @@ yyreduce:
g_lingo->codeInt((yyvsp[-6].e)[0]);
g_lingo->codeInt((yyvsp[-6].e)[1]);
(yyval.code) = (yyvsp[0].code); }
-#line 2252 "engines/director/lingo/lingo-gr.cpp"
+#line 2275 "engines/director/lingo/lingo-gr.cpp"
break;
case 27: /* asgn: tSET THEOBJECTPROP tTO expr */
-#line 353 "engines/director/lingo/lingo-gr.y"
+#line 354 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_objectpropassign);
g_lingo->codeString((yyvsp[-2].objectprop).obj->c_str());
@@ -2260,11 +2283,11 @@ yyreduce:
delete (yyvsp[-2].objectprop).obj;
delete (yyvsp[-2].objectprop).prop;
(yyval.code) = (yyvsp[0].code); }
-#line 2264 "engines/director/lingo/lingo-gr.cpp"
+#line 2287 "engines/director/lingo/lingo-gr.cpp"
break;
case 28: /* asgn: tSET THEOBJECTPROP tEQ expr */
-#line 360 "engines/director/lingo/lingo-gr.y"
+#line 361 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_objectpropassign);
g_lingo->codeString((yyvsp[-2].objectprop).obj->c_str());
@@ -2272,11 +2295,11 @@ yyreduce:
delete (yyvsp[-2].objectprop).obj;
delete (yyvsp[-2].objectprop).prop;
(yyval.code) = (yyvsp[0].code); }
-#line 2276 "engines/director/lingo/lingo-gr.cpp"
+#line 2299 "engines/director/lingo/lingo-gr.cpp"
break;
case 33: /* stmt: tREPEAT tWHILE lbl expr jumpifz startrepeat stmtlist jump tENDREPEAT */
-#line 377 "engines/director/lingo/lingo-gr.y"
+#line 378 "engines/director/lingo/lingo-gr.y"
{
inst start = 0, end = 0;
WRITE_UINT32(&start, (yyvsp[-6].code) - (yyvsp[-1].code) + 1);
@@ -2284,32 +2307,32 @@ yyreduce:
(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end; /* end, if cond fails */
(*g_lingo->_currentAssembly)[(yyvsp[-1].code)] = start; /* looping back */
endRepeat((yyvsp[-1].code) + 1, (yyvsp[-6].code)); }
-#line 2288 "engines/director/lingo/lingo-gr.cpp"
+#line 2311 "engines/director/lingo/lingo-gr.cpp"
break;
case 34: /* $@1: %empty */
-#line 390 "engines/director/lingo/lingo-gr.y"
+#line 391 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
mVar((yyvsp[-2].s), globalCheck()); }
-#line 2296 "engines/director/lingo/lingo-gr.cpp"
+#line 2319 "engines/director/lingo/lingo-gr.cpp"
break;
case 35: /* $@2: %empty */
-#line 394 "engines/director/lingo/lingo-gr.y"
+#line 395 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eval);
g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2303 "engines/director/lingo/lingo-gr.cpp"
+#line 2326 "engines/director/lingo/lingo-gr.cpp"
break;
case 36: /* $@3: %empty */
-#line 397 "engines/director/lingo/lingo-gr.y"
+#line 398 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_le); }
-#line 2309 "engines/director/lingo/lingo-gr.cpp"
+#line 2332 "engines/director/lingo/lingo-gr.cpp"
break;
case 37: /* stmt: tREPEAT tWITH ID tEQ expr $@1 varassign $@2 tTO expr $@3 jumpifz startrepeat stmtlist tENDREPEAT */
-#line 397 "engines/director/lingo/lingo-gr.y"
+#line 398 "engines/director/lingo/lingo-gr.y"
{
int nextPos = g_lingo->_currentAssembly->size();
@@ -2330,32 +2353,32 @@ yyreduce:
(*g_lingo->_currentAssembly)[pos] = loop; /* final count value */
(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end; /* end, if cond fails */
endRepeat(pos + 1, nextPos); }
-#line 2334 "engines/director/lingo/lingo-gr.cpp"
+#line 2357 "engines/director/lingo/lingo-gr.cpp"
break;
case 38: /* $@4: %empty */
-#line 424 "engines/director/lingo/lingo-gr.y"
+#line 425 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
mVar((yyvsp[-2].s), globalCheck()); }
-#line 2342 "engines/director/lingo/lingo-gr.cpp"
+#line 2365 "engines/director/lingo/lingo-gr.cpp"
break;
case 39: /* $@5: %empty */
-#line 428 "engines/director/lingo/lingo-gr.y"
+#line 429 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eval);
g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2349 "engines/director/lingo/lingo-gr.cpp"
+#line 2372 "engines/director/lingo/lingo-gr.cpp"
break;
case 40: /* $@6: %empty */
-#line 431 "engines/director/lingo/lingo-gr.y"
+#line 432 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ge); }
-#line 2355 "engines/director/lingo/lingo-gr.cpp"
+#line 2378 "engines/director/lingo/lingo-gr.cpp"
break;
case 41: /* stmt: tREPEAT tWITH ID tEQ expr $@4 varassign $@5 tDOWN tTO expr $@6 jumpifz startrepeat stmtlist tENDREPEAT */
-#line 432 "engines/director/lingo/lingo-gr.y"
+#line 433 "engines/director/lingo/lingo-gr.y"
{
int nextPos = g_lingo->_currentAssembly->size();
@@ -2376,32 +2399,32 @@ yyreduce:
(*g_lingo->_currentAssembly)[pos] = loop; /* final count value */
(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end; /* end, if cond fails */
endRepeat(pos + 1, nextPos); }
-#line 2380 "engines/director/lingo/lingo-gr.cpp"
+#line 2403 "engines/director/lingo/lingo-gr.cpp"
break;
case 42: /* $@7: %empty */
-#line 458 "engines/director/lingo/lingo-gr.y"
+#line 459 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_stackpeek);
g_lingo->codeInt(0);
Common::String count("count");
g_lingo->codeFunc(&count, 1);
g_lingo->code1(LC::c_intpush); // start counter
g_lingo->codeInt(1); }
-#line 2391 "engines/director/lingo/lingo-gr.cpp"
+#line 2414 "engines/director/lingo/lingo-gr.cpp"
break;
case 43: /* $@8: %empty */
-#line 465 "engines/director/lingo/lingo-gr.y"
+#line 466 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_stackpeek); // get counter
g_lingo->codeInt(0);
g_lingo->code1(LC::c_stackpeek); // get array size
g_lingo->codeInt(2);
g_lingo->code1(LC::c_le); }
-#line 2401 "engines/director/lingo/lingo-gr.cpp"
+#line 2424 "engines/director/lingo/lingo-gr.cpp"
break;
case 44: /* $@9: %empty */
-#line 471 "engines/director/lingo/lingo-gr.y"
+#line 472 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_stackpeek); // get list
g_lingo->codeInt(2);
g_lingo->code1(LC::c_stackpeek); // get counter
@@ -2412,11 +2435,11 @@ yyreduce:
g_lingo->codeString((yyvsp[-6].s)->c_str());
mVar((yyvsp[-6].s), globalCheck());
g_lingo->code1(LC::c_assign); }
-#line 2416 "engines/director/lingo/lingo-gr.cpp"
+#line 2439 "engines/director/lingo/lingo-gr.cpp"
break;
case 45: /* stmt: tREPEAT tWITH ID tIN expr $@7 lbl $@8 jumpifz $@9 startrepeat stmtlist tENDREPEAT */
-#line 481 "engines/director/lingo/lingo-gr.y"
+#line 482 "engines/director/lingo/lingo-gr.y"
{
int nextPos = g_lingo->_currentAssembly->size();
@@ -2436,11 +2459,11 @@ yyreduce:
(*g_lingo->_currentAssembly)[jump + 1] = loop; /* final count value */
(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end; /* end, if cond fails */
endRepeat(end2, nextPos); }
-#line 2440 "engines/director/lingo/lingo-gr.cpp"
+#line 2463 "engines/director/lingo/lingo-gr.cpp"
break;
case 46: /* stmt: tNEXT tREPEAT */
-#line 501 "engines/director/lingo/lingo-gr.y"
+#line 502 "engines/director/lingo/lingo-gr.y"
{
if (g_lingo->_repeatStack.size()) {
g_lingo->code2(LC::c_jump, 0);
@@ -2449,49 +2472,61 @@ yyreduce:
} else {
warning("# LINGO: next repeat not inside repeat block");
} }
-#line 2453 "engines/director/lingo/lingo-gr.cpp"
+#line 2476 "engines/director/lingo/lingo-gr.cpp"
break;
case 47: /* stmt: tWHEN ID tTHEN expr */
-#line 509 "engines/director/lingo/lingo-gr.y"
+#line 510 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_whencode);
g_lingo->codeString((yyvsp[-2].s)->c_str()); }
-#line 2461 "engines/director/lingo/lingo-gr.cpp"
+#line 2484 "engines/director/lingo/lingo-gr.cpp"
break;
case 48: /* stmt: tTELL expr '\n' tellstart stmtlist lbl tENDTELL */
-#line 512 "engines/director/lingo/lingo-gr.y"
+#line 513 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_telldone); }
-#line 2467 "engines/director/lingo/lingo-gr.cpp"
+#line 2490 "engines/director/lingo/lingo-gr.cpp"
break;
case 49: /* stmt: tTELL expr tTO tellstart stmtoneliner lbl */
-#line 513 "engines/director/lingo/lingo-gr.y"
+#line 514 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_telldone); }
-#line 2473 "engines/director/lingo/lingo-gr.cpp"
+#line 2496 "engines/director/lingo/lingo-gr.cpp"
break;
- case 50: /* stmt: error '\n' */
-#line 514 "engines/director/lingo/lingo-gr.y"
- { yyerrok; }
-#line 2479 "engines/director/lingo/lingo-gr.cpp"
+ case 50: /* stmt: tASSERTERROR asserterrorstart stmtoneliner */
+#line 515 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(LC::c_asserterrordone); }
+#line 2502 "engines/director/lingo/lingo-gr.cpp"
break;
- case 51: /* startrepeat: %empty */
+ case 51: /* stmt: error '\n' */
#line 516 "engines/director/lingo/lingo-gr.y"
- { startRepeat(); }
-#line 2485 "engines/director/lingo/lingo-gr.cpp"
+ { yyerrok; }
+#line 2508 "engines/director/lingo/lingo-gr.cpp"
break;
- case 52: /* tellstart: %empty */
+ case 52: /* startrepeat: %empty */
#line 518 "engines/director/lingo/lingo-gr.y"
- { g_lingo->code1(LC::c_tell); }
-#line 2491 "engines/director/lingo/lingo-gr.cpp"
+ { startRepeat(); }
+#line 2514 "engines/director/lingo/lingo-gr.cpp"
break;
- case 53: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist lbl tENDIF */
+ case 53: /* tellstart: %empty */
#line 520 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(LC::c_tell); }
+#line 2520 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 54: /* asserterrorstart: %empty */
+#line 522 "engines/director/lingo/lingo-gr.y"
+ { g_lingo->code1(LC::c_asserterror); }
+#line 2526 "engines/director/lingo/lingo-gr.cpp"
+ break;
+
+ case 55: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist lbl tENDIF */
+#line 524 "engines/director/lingo/lingo-gr.y"
{
inst else1 = 0, end3 = 0;
WRITE_UINT32(&else1, (yyvsp[-3].code) + 1 - (yyvsp[-6].code) + 1);
@@ -2499,11 +2534,11 @@ yyreduce:
(*g_lingo->_currentAssembly)[(yyvsp[-6].code)] = else1; /* elsepart */
(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end3; /* end, if cond fails */
g_lingo->processIf((yyvsp[-3].code), (yyvsp[-1].code)); }
-#line 2503 "engines/director/lingo/lingo-gr.cpp"
+#line 2538 "engines/director/lingo/lingo-gr.cpp"
break;
- case 54: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist tELSE stmtlist lbl tENDIF */
-#line 527 "engines/director/lingo/lingo-gr.y"
+ case 56: /* ifstmt: if expr jumpifz tTHEN stmtlist jump elseifstmtlist tELSE stmtlist lbl tENDIF */
+#line 531 "engines/director/lingo/lingo-gr.y"
{
inst else1 = 0, end = 0;
WRITE_UINT32(&else1, (yyvsp[-5].code) + 1 - (yyvsp[-8].code) + 1);
@@ -2511,110 +2546,110 @@ yyreduce:
(*g_lingo->_currentAssembly)[(yyvsp[-8].code)] = else1; /* elsepart */
(*g_lingo->_currentAssembly)[(yyvsp[-5].code)] = end; /* end, if cond fails */
g_lingo->processIf((yyvsp[-5].code), (yyvsp[-1].code)); }
-#line 2515 "engines/director/lingo/lingo-gr.cpp"
+#line 2550 "engines/director/lingo/lingo-gr.cpp"
break;
- case 57: /* elseifstmt: tELSIF expr jumpifz tTHEN stmtlist jump */
-#line 538 "engines/director/lingo/lingo-gr.y"
+ case 59: /* elseifstmt: tELSIF expr jumpifz tTHEN stmtlist jump */
+#line 542 "engines/director/lingo/lingo-gr.y"
{
inst else1 = 0;
WRITE_UINT32(&else1, (yyvsp[0].code) + 1 - (yyvsp[-3].code) + 1);
(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = else1; /* end, if cond fails */
g_lingo->codeLabel((yyvsp[0].code)); }
-#line 2525 "engines/director/lingo/lingo-gr.cpp"
+#line 2560 "engines/director/lingo/lingo-gr.cpp"
break;
- case 58: /* jumpifz: %empty */
-#line 544 "engines/director/lingo/lingo-gr.y"
+ case 60: /* jumpifz: %empty */
+#line 548 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code2(LC::c_jumpifz, 0);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2533 "engines/director/lingo/lingo-gr.cpp"
+#line 2568 "engines/director/lingo/lingo-gr.cpp"
break;
- case 59: /* jump: %empty */
-#line 548 "engines/director/lingo/lingo-gr.y"
+ case 61: /* jump: %empty */
+#line 552 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code2(LC::c_jump, 0);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2541 "engines/director/lingo/lingo-gr.cpp"
+#line 2576 "engines/director/lingo/lingo-gr.cpp"
break;
- case 60: /* varassign: %empty */
-#line 552 "engines/director/lingo/lingo-gr.y"
+ case 62: /* varassign: %empty */
+#line 556 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_assign);
(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2549 "engines/director/lingo/lingo-gr.cpp"
+#line 2584 "engines/director/lingo/lingo-gr.cpp"
break;
- case 61: /* if: tIF */
-#line 556 "engines/director/lingo/lingo-gr.y"
+ case 63: /* if: tIF */
+#line 560 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeLabel(0); }
-#line 2556 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
break;
- case 62: /* lbl: %empty */
-#line 559 "engines/director/lingo/lingo-gr.y"
+ case 64: /* lbl: %empty */
+#line 563 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2562 "engines/director/lingo/lingo-gr.cpp"
+#line 2597 "engines/director/lingo/lingo-gr.cpp"
break;
- case 67: /* simpleexprnoparens: INT */
-#line 567 "engines/director/lingo/lingo-gr.y"
+ case 69: /* simpleexprnoparens: INT */
+#line 571 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_intpush);
g_lingo->codeInt((yyvsp[0].i)); }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2605 "engines/director/lingo/lingo-gr.cpp"
break;
- case 68: /* simpleexprnoparens: FLOAT */
-#line 570 "engines/director/lingo/lingo-gr.y"
+ case 70: /* simpleexprnoparens: FLOAT */
+#line 574 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_floatpush);
g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2578 "engines/director/lingo/lingo-gr.cpp"
+#line 2613 "engines/director/lingo/lingo-gr.cpp"
break;
- case 69: /* simpleexprnoparens: SYMBOL */
-#line 573 "engines/director/lingo/lingo-gr.y"
+ case 71: /* simpleexprnoparens: SYMBOL */
+#line 577 "engines/director/lingo/lingo-gr.y"
{ // D3
(yyval.code) = g_lingo->code1(LC::c_symbolpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
delete (yyvsp[0].s); }
-#line 2587 "engines/director/lingo/lingo-gr.cpp"
+#line 2622 "engines/director/lingo/lingo-gr.cpp"
break;
- case 70: /* simpleexprnoparens: STRING */
-#line 577 "engines/director/lingo/lingo-gr.y"
+ case 72: /* simpleexprnoparens: STRING */
+#line 581 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_stringpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
delete (yyvsp[0].s); }
-#line 2596 "engines/director/lingo/lingo-gr.cpp"
+#line 2631 "engines/director/lingo/lingo-gr.cpp"
break;
- case 71: /* simpleexprnoparens: '+' simpleexpr */
-#line 581 "engines/director/lingo/lingo-gr.y"
+ case 73: /* simpleexprnoparens: '+' simpleexpr */
+#line 585 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); }
-#line 2602 "engines/director/lingo/lingo-gr.cpp"
+#line 2637 "engines/director/lingo/lingo-gr.cpp"
break;
- case 72: /* simpleexprnoparens: '-' simpleexpr */
-#line 582 "engines/director/lingo/lingo-gr.y"
+ case 74: /* simpleexprnoparens: '-' simpleexpr */
+#line 586 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 2608 "engines/director/lingo/lingo-gr.cpp"
+#line 2643 "engines/director/lingo/lingo-gr.cpp"
break;
- case 73: /* simpleexprnoparens: tNOT simpleexpr */
-#line 583 "engines/director/lingo/lingo-gr.y"
+ case 75: /* simpleexprnoparens: tNOT simpleexpr */
+#line 587 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_not); }
-#line 2614 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
break;
- case 75: /* simpleexprnoparens: THEENTITY */
-#line 585 "engines/director/lingo/lingo-gr.y"
+ case 77: /* simpleexprnoparens: THEENTITY */
+#line 589 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(0); // Put dummy id
@@ -2623,95 +2658,95 @@ yyreduce:
WRITE_UINT32(&e, (yyvsp[0].e)[0]);
WRITE_UINT32(&f, (yyvsp[0].e)[1]);
g_lingo->code2(e, f); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2662 "engines/director/lingo/lingo-gr.cpp"
break;
- case 76: /* simpleexprnoparens: THEENTITYWITHID simpleexpr */
-#line 593 "engines/director/lingo/lingo-gr.y"
+ case 78: /* simpleexprnoparens: THEENTITYWITHID simpleexpr */
+#line 597 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->code1(LC::c_theentitypush);
inst e = 0, f = 0;
WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
g_lingo->code2(e, f); }
-#line 2638 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
break;
- case 77: /* simpleexprnoparens: THEFUNCINOF simpleexpr */
-#line 599 "engines/director/lingo/lingo-gr.y"
+ case 79: /* simpleexprnoparens: THEFUNCINOF simpleexpr */
+#line 603 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-1].s), 1);
delete (yyvsp[-1].s); }
-#line 2646 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
break;
- case 78: /* simpleexprnoparens: THEFUNC tOF simpleexpr */
-#line 602 "engines/director/lingo/lingo-gr.y"
+ case 80: /* simpleexprnoparens: THEFUNC tOF simpleexpr */
+#line 606 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
delete (yyvsp[-2].s); }
-#line 2654 "engines/director/lingo/lingo-gr.cpp"
+#line 2689 "engines/director/lingo/lingo-gr.cpp"
break;
- case 79: /* simpleexprnoparens: THEOBJECTPROP */
-#line 605 "engines/director/lingo/lingo-gr.y"
+ case 81: /* simpleexprnoparens: THEOBJECTPROP */
+#line 609 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_objectproppush);
g_lingo->codeString((yyvsp[0].objectprop).obj->c_str());
g_lingo->codeString((yyvsp[0].objectprop).prop->c_str());
delete (yyvsp[0].objectprop).obj;
delete (yyvsp[0].objectprop).prop; }
-#line 2665 "engines/director/lingo/lingo-gr.cpp"
+#line 2700 "engines/director/lingo/lingo-gr.cpp"
break;
- case 80: /* simpleexprnoparens: tSPRITE expr tINTERSECTS simpleexpr */
-#line 611 "engines/director/lingo/lingo-gr.y"
+ case 82: /* simpleexprnoparens: tSPRITE expr tINTERSECTS simpleexpr */
+#line 615 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_intersects); }
-#line 2671 "engines/director/lingo/lingo-gr.cpp"
+#line 2706 "engines/director/lingo/lingo-gr.cpp"
break;
- case 81: /* simpleexprnoparens: tSPRITE expr tWITHIN simpleexpr */
-#line 612 "engines/director/lingo/lingo-gr.y"
+ case 83: /* simpleexprnoparens: tSPRITE expr tWITHIN simpleexpr */
+#line 616 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_within); }
-#line 2677 "engines/director/lingo/lingo-gr.cpp"
+#line 2712 "engines/director/lingo/lingo-gr.cpp"
break;
- case 83: /* simpleexprnoparens: ID '(' ID ')' */
-#line 614 "engines/director/lingo/lingo-gr.y"
+ case 85: /* simpleexprnoparens: ID '(' ID ')' */
+#line 618 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-1].s)->c_str());
g_lingo->codeFunc((yyvsp[-3].s), 1);
delete (yyvsp[-3].s);
delete (yyvsp[-1].s); }
-#line 2688 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
break;
- case 84: /* $@10: %empty */
-#line 620 "engines/director/lingo/lingo-gr.y"
+ case 86: /* $@10: %empty */
+#line 624 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_varpush); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 2694 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
break;
- case 85: /* simpleexprnoparens: ID '(' ID ',' $@10 nonemptyarglist ')' */
-#line 621 "engines/director/lingo/lingo-gr.y"
+ case 87: /* simpleexprnoparens: ID '(' ID ',' $@10 nonemptyarglist ')' */
+#line 625 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeFunc((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
delete (yyvsp[-6].s);
delete (yyvsp[-4].s); }
-#line 2703 "engines/director/lingo/lingo-gr.cpp"
+#line 2738 "engines/director/lingo/lingo-gr.cpp"
break;
- case 86: /* simpleexprnoparens: ID '(' arglist ')' */
-#line 625 "engines/director/lingo/lingo-gr.y"
+ case 88: /* simpleexprnoparens: ID '(' arglist ')' */
+#line 629 "engines/director/lingo/lingo-gr.y"
{
(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
delete (yyvsp[-3].s); }
-#line 2711 "engines/director/lingo/lingo-gr.cpp"
+#line 2746 "engines/director/lingo/lingo-gr.cpp"
break;
- case 87: /* simpleexprnoparens: ID */
-#line 628 "engines/director/lingo/lingo-gr.y"
+ case 89: /* simpleexprnoparens: ID */
+#line 632 "engines/director/lingo/lingo-gr.y"
{
if (g_lingo->_builtinConsts.contains(*(yyvsp[0].s))) {
(yyval.code) = g_lingo->code1(LC::c_constpush);
@@ -2720,213 +2755,213 @@ yyreduce:
}
g_lingo->codeString((yyvsp[0].s)->c_str());
delete (yyvsp[0].s); }
-#line 2724 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
break;
- case 89: /* simpleexpr: '(' expr ')' */
-#line 638 "engines/director/lingo/lingo-gr.y"
+ case 91: /* simpleexpr: '(' expr ')' */
+#line 642 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[-1].code); }
-#line 2730 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
break;
- case 90: /* expr: simpleexpr */
-#line 640 "engines/director/lingo/lingo-gr.y"
+ case 92: /* expr: simpleexpr */
+#line 644 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[0].code); }
-#line 2736 "engines/director/lingo/lingo-gr.cpp"
+#line 2771 "engines/director/lingo/lingo-gr.cpp"
break;
- case 91: /* expr: expr '+' expr */
-#line 641 "engines/director/lingo/lingo-gr.y"
+ case 93: /* expr: expr '+' expr */
+#line 645 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_add); }
-#line 2742 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
break;
- case 92: /* expr: expr '-' expr */
-#line 642 "engines/director/lingo/lingo-gr.y"
+ case 94: /* expr: expr '-' expr */
+#line 646 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_sub); }
-#line 2748 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
break;
- case 93: /* expr: expr '*' expr */
-#line 643 "engines/director/lingo/lingo-gr.y"
+ case 95: /* expr: expr '*' expr */
+#line 647 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_mul); }
-#line 2754 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
break;
- case 94: /* expr: expr '/' expr */
-#line 644 "engines/director/lingo/lingo-gr.y"
+ case 96: /* expr: expr '/' expr */
+#line 648 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_div); }
-#line 2760 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
break;
- case 95: /* expr: expr tMOD expr */
-#line 645 "engines/director/lingo/lingo-gr.y"
+ case 97: /* expr: expr tMOD expr */
+#line 649 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_mod); }
-#line 2766 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
break;
- case 96: /* expr: expr '>' expr */
-#line 646 "engines/director/lingo/lingo-gr.y"
+ case 98: /* expr: expr '>' expr */
+#line 650 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gt); }
-#line 2772 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
break;
- case 97: /* expr: expr '<' expr */
-#line 647 "engines/director/lingo/lingo-gr.y"
+ case 99: /* expr: expr '<' expr */
+#line 651 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lt); }
-#line 2778 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
break;
- case 98: /* expr: expr tEQ expr */
-#line 648 "engines/director/lingo/lingo-gr.y"
+ case 100: /* expr: expr tEQ expr */
+#line 652 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_eq); }
-#line 2784 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
break;
- case 99: /* expr: expr tNEQ expr */
-#line 649 "engines/director/lingo/lingo-gr.y"
+ case 101: /* expr: expr tNEQ expr */
+#line 653 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_neq); }
-#line 2790 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
break;
- case 100: /* expr: expr tGE expr */
-#line 650 "engines/director/lingo/lingo-gr.y"
+ case 102: /* expr: expr tGE expr */
+#line 654 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ge); }
-#line 2796 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
break;
- case 101: /* expr: expr tLE expr */
-#line 651 "engines/director/lingo/lingo-gr.y"
+ case 103: /* expr: expr tLE expr */
+#line 655 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_le); }
-#line 2802 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
break;
- case 102: /* expr: expr tAND expr */
-#line 652 "engines/director/lingo/lingo-gr.y"
+ case 104: /* expr: expr tAND expr */
+#line 656 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_and); }
-#line 2808 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
break;
- case 103: /* expr: expr tOR expr */
-#line 653 "engines/director/lingo/lingo-gr.y"
+ case 105: /* expr: expr tOR expr */
+#line 657 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_or); }
-#line 2814 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
break;
- case 104: /* expr: expr '&' expr */
-#line 654 "engines/director/lingo/lingo-gr.y"
+ case 106: /* expr: expr '&' expr */
+#line 658 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_ampersand); }
-#line 2820 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
break;
- case 105: /* expr: expr tCONCAT expr */
-#line 655 "engines/director/lingo/lingo-gr.y"
+ case 107: /* expr: expr tCONCAT expr */
+#line 659 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_concat); }
-#line 2826 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
break;
- case 106: /* expr: expr tCONTAINS expr */
-#line 656 "engines/director/lingo/lingo-gr.y"
+ case 108: /* expr: expr tCONTAINS expr */
+#line 660 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_contains); }
-#line 2832 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
break;
- case 107: /* expr: expr tSTARTS expr */
-#line 657 "engines/director/lingo/lingo-gr.y"
+ case 109: /* expr: expr tSTARTS expr */
+#line 661 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_starts); }
-#line 2838 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
break;
- case 108: /* chunkexpr: tFIELD simpleexprnoparens */
-#line 659 "engines/director/lingo/lingo-gr.y"
+ case 110: /* chunkexpr: tFIELD simpleexprnoparens */
+#line 663 "engines/director/lingo/lingo-gr.y"
{
Common::String field("field");
g_lingo->codeFunc(&field, 1); }
-#line 2846 "engines/director/lingo/lingo-gr.cpp"
+#line 2881 "engines/director/lingo/lingo-gr.cpp"
break;
- case 109: /* chunkexpr: tCAST simpleexprnoparens */
-#line 662 "engines/director/lingo/lingo-gr.y"
+ case 111: /* chunkexpr: tCAST simpleexprnoparens */
+#line 666 "engines/director/lingo/lingo-gr.y"
{
Common::String cast("cast");
g_lingo->codeFunc(&cast, 1); }
-#line 2854 "engines/director/lingo/lingo-gr.cpp"
+#line 2889 "engines/director/lingo/lingo-gr.cpp"
break;
- case 110: /* chunkexpr: tCHAR expr tOF simpleexpr */
-#line 665 "engines/director/lingo/lingo-gr.y"
+ case 112: /* chunkexpr: tCHAR expr tOF simpleexpr */
+#line 669 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_charOf); }
-#line 2860 "engines/director/lingo/lingo-gr.cpp"
+#line 2895 "engines/director/lingo/lingo-gr.cpp"
break;
- case 111: /* chunkexpr: tCHAR expr tTO expr tOF simpleexpr */
-#line 666 "engines/director/lingo/lingo-gr.y"
+ case 113: /* chunkexpr: tCHAR expr tTO expr tOF simpleexpr */
+#line 670 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_charToOf); }
-#line 2866 "engines/director/lingo/lingo-gr.cpp"
+#line 2901 "engines/director/lingo/lingo-gr.cpp"
break;
- case 112: /* chunkexpr: tITEM expr tOF simpleexpr */
-#line 667 "engines/director/lingo/lingo-gr.y"
+ case 114: /* chunkexpr: tITEM expr tOF simpleexpr */
+#line 671 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_itemOf); }
-#line 2872 "engines/director/lingo/lingo-gr.cpp"
+#line 2907 "engines/director/lingo/lingo-gr.cpp"
break;
- case 113: /* chunkexpr: tITEM expr tTO expr tOF simpleexpr */
-#line 668 "engines/director/lingo/lingo-gr.y"
+ case 115: /* chunkexpr: tITEM expr tTO expr tOF simpleexpr */
+#line 672 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_itemToOf); }
-#line 2878 "engines/director/lingo/lingo-gr.cpp"
+#line 2913 "engines/director/lingo/lingo-gr.cpp"
break;
- case 114: /* chunkexpr: tLINE expr tOF simpleexpr */
-#line 669 "engines/director/lingo/lingo-gr.y"
+ case 116: /* chunkexpr: tLINE expr tOF simpleexpr */
+#line 673 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lineOf); }
-#line 2884 "engines/director/lingo/lingo-gr.cpp"
+#line 2919 "engines/director/lingo/lingo-gr.cpp"
break;
- case 115: /* chunkexpr: tLINE expr tTO expr tOF simpleexpr */
-#line 670 "engines/director/lingo/lingo-gr.y"
+ case 117: /* chunkexpr: tLINE expr tTO expr tOF simpleexpr */
+#line 674 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_lineToOf); }
-#line 2890 "engines/director/lingo/lingo-gr.cpp"
+#line 2925 "engines/director/lingo/lingo-gr.cpp"
break;
- case 116: /* chunkexpr: tWORD expr tOF simpleexpr */
-#line 671 "engines/director/lingo/lingo-gr.y"
+ case 118: /* chunkexpr: tWORD expr tOF simpleexpr */
+#line 675 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_wordOf); }
-#line 2896 "engines/director/lingo/lingo-gr.cpp"
+#line 2931 "engines/director/lingo/lingo-gr.cpp"
break;
- case 117: /* chunkexpr: tWORD expr tTO expr tOF simpleexpr */
-#line 672 "engines/director/lingo/lingo-gr.y"
+ case 119: /* chunkexpr: tWORD expr tTO expr tOF simpleexpr */
+#line 676 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_wordToOf); }
-#line 2902 "engines/director/lingo/lingo-gr.cpp"
+#line 2937 "engines/director/lingo/lingo-gr.cpp"
break;
- case 119: /* reference: tSCRIPT simpleexprnoparens */
-#line 675 "engines/director/lingo/lingo-gr.y"
+ case 121: /* reference: tSCRIPT simpleexprnoparens */
+#line 679 "engines/director/lingo/lingo-gr.y"
{
Common::String script("script");
g_lingo->codeFunc(&script, 1); }
-#line 2910 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
break;
- case 120: /* reference: tWINDOW simpleexprnoparens */
-#line 678 "engines/director/lingo/lingo-gr.y"
+ case 122: /* reference: tWINDOW simpleexprnoparens */
+#line 682 "engines/director/lingo/lingo-gr.y"
{
Common::String window("window");
g_lingo->codeFunc(&window, 1); }
-#line 2918 "engines/director/lingo/lingo-gr.cpp"
+#line 2953 "engines/director/lingo/lingo-gr.cpp"
break;
- case 121: /* proc: tPUT expr */
-#line 682 "engines/director/lingo/lingo-gr.y"
+ case 123: /* proc: tPUT expr */
+#line 686 "engines/director/lingo/lingo-gr.y"
{
Common::String put("put");
g_lingo->codeCmd(&put, 1); }
-#line 2926 "engines/director/lingo/lingo-gr.cpp"
+#line 2961 "engines/director/lingo/lingo-gr.cpp"
break;
- case 124: /* proc: tEXIT tREPEAT */
-#line 687 "engines/director/lingo/lingo-gr.y"
+ case 126: /* proc: tEXIT tREPEAT */
+#line 691 "engines/director/lingo/lingo-gr.y"
{
if (g_lingo->_repeatStack.size()) {
g_lingo->code2(LC::c_jump, 0);
@@ -2935,289 +2970,289 @@ yyreduce:
} else {
warning("# LINGO: exit repeat not inside repeat block");
} }
-#line 2939 "engines/director/lingo/lingo-gr.cpp"
+#line 2974 "engines/director/lingo/lingo-gr.cpp"
break;
- case 125: /* proc: tEXIT */
-#line 695 "engines/director/lingo/lingo-gr.y"
+ case 127: /* proc: tEXIT */
+#line 699 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_procret); }
-#line 2945 "engines/director/lingo/lingo-gr.cpp"
+#line 2980 "engines/director/lingo/lingo-gr.cpp"
break;
- case 126: /* $@11: %empty */
-#line 696 "engines/director/lingo/lingo-gr.y"
+ case 128: /* $@11: %empty */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 2951 "engines/director/lingo/lingo-gr.cpp"
+#line 2986 "engines/director/lingo/lingo-gr.cpp"
break;
- case 127: /* proc: tGLOBAL $@11 globallist */
-#line 696 "engines/director/lingo/lingo-gr.y"
+ case 129: /* proc: tGLOBAL $@11 globallist */
+#line 700 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 2957 "engines/director/lingo/lingo-gr.cpp"
+#line 2992 "engines/director/lingo/lingo-gr.cpp"
break;
- case 128: /* $@12: %empty */
-#line 697 "engines/director/lingo/lingo-gr.y"
+ case 130: /* $@12: %empty */
+#line 701 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 2963 "engines/director/lingo/lingo-gr.cpp"
+#line 2998 "engines/director/lingo/lingo-gr.cpp"
break;
- case 129: /* proc: tPROPERTY $@12 propertylist */
-#line 697 "engines/director/lingo/lingo-gr.y"
+ case 131: /* proc: tPROPERTY $@12 propertylist */
+#line 701 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 2969 "engines/director/lingo/lingo-gr.cpp"
+#line 3004 "engines/director/lingo/lingo-gr.cpp"
break;
- case 130: /* $@13: %empty */
-#line 698 "engines/director/lingo/lingo-gr.y"
+ case 132: /* $@13: %empty */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ inArgs(); }
-#line 2975 "engines/director/lingo/lingo-gr.cpp"
+#line 3010 "engines/director/lingo/lingo-gr.cpp"
break;
- case 131: /* proc: tINSTANCE $@13 instancelist */
-#line 698 "engines/director/lingo/lingo-gr.y"
+ case 133: /* proc: tINSTANCE $@13 instancelist */
+#line 702 "engines/director/lingo/lingo-gr.y"
{ inLast(); }
-#line 2981 "engines/director/lingo/lingo-gr.cpp"
+#line 3016 "engines/director/lingo/lingo-gr.cpp"
break;
- case 132: /* proc: tOPEN expr tWITH expr */
-#line 699 "engines/director/lingo/lingo-gr.y"
+ case 134: /* proc: tOPEN expr tWITH expr */
+#line 703 "engines/director/lingo/lingo-gr.y"
{
Common::String open("open");
g_lingo->codeCmd(&open, 2); }
-#line 2989 "engines/director/lingo/lingo-gr.cpp"
+#line 3024 "engines/director/lingo/lingo-gr.cpp"
break;
- case 133: /* proc: tOPEN expr */
-#line 702 "engines/director/lingo/lingo-gr.y"
+ case 135: /* proc: tOPEN expr */
+#line 706 "engines/director/lingo/lingo-gr.y"
{
Common::String open("open");
g_lingo->codeCmd(&open, 1); }
-#line 2997 "engines/director/lingo/lingo-gr.cpp"
+#line 3032 "engines/director/lingo/lingo-gr.cpp"
break;
- case 134: /* proc: ID '(' ID ')' */
-#line 705 "engines/director/lingo/lingo-gr.y"
+ case 136: /* proc: ID '(' ID ')' */
+#line 709 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[-1].s)->c_str());
g_lingo->codeCmd((yyvsp[-3].s), 1);
delete (yyvsp[-3].s);
delete (yyvsp[-1].s); }
-#line 3008 "engines/director/lingo/lingo-gr.cpp"
+#line 3043 "engines/director/lingo/lingo-gr.cpp"
break;
- case 135: /* $@14: %empty */
-#line 711 "engines/director/lingo/lingo-gr.y"
+ case 137: /* $@14: %empty */
+#line 715 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_varpush); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 3014 "engines/director/lingo/lingo-gr.cpp"
+#line 3049 "engines/director/lingo/lingo-gr.cpp"
break;
- case 136: /* proc: ID '(' ID ',' $@14 nonemptyarglist ')' */
-#line 712 "engines/director/lingo/lingo-gr.y"
+ case 138: /* proc: ID '(' ID ',' $@14 nonemptyarglist ')' */
+#line 716 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeCmd((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
delete (yyvsp[-6].s);
delete (yyvsp[-4].s); }
-#line 3023 "engines/director/lingo/lingo-gr.cpp"
+#line 3058 "engines/director/lingo/lingo-gr.cpp"
break;
- case 137: /* proc: ID '(' arglist ')' */
-#line 716 "engines/director/lingo/lingo-gr.y"
+ case 139: /* proc: ID '(' arglist ')' */
+#line 720 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeCmd((yyvsp[-3].s), (yyvsp[-1].narg));
delete (yyvsp[-3].s); }
-#line 3031 "engines/director/lingo/lingo-gr.cpp"
+#line 3066 "engines/director/lingo/lingo-gr.cpp"
break;
- case 138: /* proc: ID arglist */
-#line 719 "engines/director/lingo/lingo-gr.y"
+ case 140: /* proc: ID arglist */
+#line 723 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeCmd((yyvsp[-1].s), (yyvsp[0].narg));
delete (yyvsp[-1].s); }
-#line 3039 "engines/director/lingo/lingo-gr.cpp"
+#line 3074 "engines/director/lingo/lingo-gr.cpp"
break;
- case 140: /* globallist: ID */
-#line 724 "engines/director/lingo/lingo-gr.y"
+ case 142: /* globallist: ID */
+#line 728 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[0].s), kVarGlobal);
delete (yyvsp[0].s); }
-#line 3047 "engines/director/lingo/lingo-gr.cpp"
+#line 3082 "engines/director/lingo/lingo-gr.cpp"
break;
- case 141: /* globallist: ID ',' globallist */
-#line 727 "engines/director/lingo/lingo-gr.y"
+ case 143: /* globallist: ID ',' globallist */
+#line 731 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[-2].s), kVarGlobal);
delete (yyvsp[-2].s); }
-#line 3055 "engines/director/lingo/lingo-gr.cpp"
+#line 3090 "engines/director/lingo/lingo-gr.cpp"
break;
- case 143: /* propertylist: ID */
-#line 732 "engines/director/lingo/lingo-gr.y"
+ case 145: /* propertylist: ID */
+#line 736 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[0].s), kVarProperty);
delete (yyvsp[0].s); }
-#line 3063 "engines/director/lingo/lingo-gr.cpp"
+#line 3098 "engines/director/lingo/lingo-gr.cpp"
break;
- case 144: /* propertylist: ID ',' propertylist */
-#line 735 "engines/director/lingo/lingo-gr.y"
+ case 146: /* propertylist: ID ',' propertylist */
+#line 739 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[-2].s), kVarProperty);
delete (yyvsp[-2].s); }
-#line 3071 "engines/director/lingo/lingo-gr.cpp"
+#line 3106 "engines/director/lingo/lingo-gr.cpp"
break;
- case 146: /* instancelist: ID */
-#line 740 "engines/director/lingo/lingo-gr.y"
+ case 148: /* instancelist: ID */
+#line 744 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[0].s), kVarInstance);
delete (yyvsp[0].s); }
-#line 3079 "engines/director/lingo/lingo-gr.cpp"
+#line 3114 "engines/director/lingo/lingo-gr.cpp"
break;
- case 147: /* instancelist: ID ',' instancelist */
-#line 743 "engines/director/lingo/lingo-gr.y"
+ case 149: /* instancelist: ID ',' instancelist */
+#line 747 "engines/director/lingo/lingo-gr.y"
{
mVar((yyvsp[-2].s), kVarInstance);
delete (yyvsp[-2].s); }
-#line 3087 "engines/director/lingo/lingo-gr.cpp"
+#line 3122 "engines/director/lingo/lingo-gr.cpp"
break;
- case 148: /* gotofunc: tGOLOOP */
-#line 754 "engines/director/lingo/lingo-gr.y"
+ case 150: /* gotofunc: tGOLOOP */
+#line 758 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotoloop); }
-#line 3093 "engines/director/lingo/lingo-gr.cpp"
+#line 3128 "engines/director/lingo/lingo-gr.cpp"
break;
- case 149: /* gotofunc: tGO tNEXT */
-#line 755 "engines/director/lingo/lingo-gr.y"
+ case 151: /* gotofunc: tGO tNEXT */
+#line 759 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotonext); }
-#line 3099 "engines/director/lingo/lingo-gr.cpp"
+#line 3134 "engines/director/lingo/lingo-gr.cpp"
break;
- case 150: /* gotofunc: tGO tPREVIOUS */
-#line 756 "engines/director/lingo/lingo-gr.y"
+ case 152: /* gotofunc: tGO tPREVIOUS */
+#line 760 "engines/director/lingo/lingo-gr.y"
{ g_lingo->code1(LC::c_gotoprevious); }
-#line 3105 "engines/director/lingo/lingo-gr.cpp"
+#line 3140 "engines/director/lingo/lingo-gr.cpp"
break;
- case 151: /* gotofunc: tGO expr */
-#line 757 "engines/director/lingo/lingo-gr.y"
+ case 153: /* gotofunc: tGO expr */
+#line 761 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(1);
g_lingo->code1(LC::c_goto); }
-#line 3114 "engines/director/lingo/lingo-gr.cpp"
+#line 3149 "engines/director/lingo/lingo-gr.cpp"
break;
- case 152: /* gotofunc: tGO expr gotomovie */
-#line 761 "engines/director/lingo/lingo-gr.y"
+ case 154: /* gotofunc: tGO expr gotomovie */
+#line 765 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(3);
g_lingo->code1(LC::c_goto); }
-#line 3123 "engines/director/lingo/lingo-gr.cpp"
+#line 3158 "engines/director/lingo/lingo-gr.cpp"
break;
- case 153: /* gotofunc: tGO gotomovie */
-#line 765 "engines/director/lingo/lingo-gr.y"
+ case 155: /* gotofunc: tGO gotomovie */
+#line 769 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(2);
g_lingo->code1(LC::c_goto); }
-#line 3132 "engines/director/lingo/lingo-gr.cpp"
+#line 3167 "engines/director/lingo/lingo-gr.cpp"
break;
- case 156: /* playfunc: tPLAY expr */
-#line 773 "engines/director/lingo/lingo-gr.y"
+ case 158: /* playfunc: tPLAY expr */
+#line 777 "engines/director/lingo/lingo-gr.y"
{ // "play #done" is also caught by this
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(1);
g_lingo->code1(LC::c_play); }
-#line 3141 "engines/director/lingo/lingo-gr.cpp"
+#line 3176 "engines/director/lingo/lingo-gr.cpp"
break;
- case 157: /* playfunc: tPLAY expr gotomovie */
-#line 777 "engines/director/lingo/lingo-gr.y"
+ case 159: /* playfunc: tPLAY expr gotomovie */
+#line 781 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(3);
g_lingo->code1(LC::c_play); }
-#line 3150 "engines/director/lingo/lingo-gr.cpp"
+#line 3185 "engines/director/lingo/lingo-gr.cpp"
break;
- case 158: /* playfunc: tPLAY gotomovie */
-#line 781 "engines/director/lingo/lingo-gr.y"
+ case 160: /* playfunc: tPLAY gotomovie */
+#line 785 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_intpush);
g_lingo->codeInt(2);
g_lingo->code1(LC::c_play); }
-#line 3159 "engines/director/lingo/lingo-gr.cpp"
+#line 3194 "engines/director/lingo/lingo-gr.cpp"
break;
- case 159: /* $@15: %empty */
-#line 785 "engines/director/lingo/lingo-gr.y"
+ case 161: /* $@15: %empty */
+#line 789 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeSetImmediate(true); }
-#line 3165 "engines/director/lingo/lingo-gr.cpp"
+#line 3200 "engines/director/lingo/lingo-gr.cpp"
break;
- case 160: /* playfunc: tPLAYACCEL $@15 arglist */
-#line 785 "engines/director/lingo/lingo-gr.y"
+ case 162: /* playfunc: tPLAYACCEL $@15 arglist */
+#line 789 "engines/director/lingo/lingo-gr.y"
{
g_lingo->codeSetImmediate(false);
g_lingo->codeCmd((yyvsp[-2].s), (yyvsp[0].narg));
delete (yyvsp[-2].s); }
-#line 3174 "engines/director/lingo/lingo-gr.cpp"
+#line 3209 "engines/director/lingo/lingo-gr.cpp"
break;
- case 161: /* $@16: %empty */
-#line 815 "engines/director/lingo/lingo-gr.y"
+ case 163: /* $@16: %empty */
+#line 819 "engines/director/lingo/lingo-gr.y"
{ startDef(); }
-#line 3180 "engines/director/lingo/lingo-gr.cpp"
+#line 3215 "engines/director/lingo/lingo-gr.cpp"
break;
- case 162: /* defn: tMACRO $@16 ID lbl argdef '\n' argstore stmtlist */
-#line 816 "engines/director/lingo/lingo-gr.y"
+ case 164: /* defn: tMACRO $@16 ID lbl argdef '\n' argstore stmtlist */
+#line 820 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_procret);
g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
endDef();
delete (yyvsp[-5].s); }
-#line 3190 "engines/director/lingo/lingo-gr.cpp"
+#line 3225 "engines/director/lingo/lingo-gr.cpp"
break;
- case 163: /* defn: tFACTORY ID */
-#line 821 "engines/director/lingo/lingo-gr.y"
+ case 165: /* defn: tFACTORY ID */
+#line 825 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3196 "engines/director/lingo/lingo-gr.cpp"
+#line 3231 "engines/director/lingo/lingo-gr.cpp"
break;
- case 164: /* $@17: %empty */
-#line 822 "engines/director/lingo/lingo-gr.y"
+ case 166: /* $@17: %empty */
+#line 826 "engines/director/lingo/lingo-gr.y"
{
startDef();
Common::String me("me");
g_lingo->codeArg(&me);
mVar(&me, kVarArgument);
}
-#line 3207 "engines/director/lingo/lingo-gr.cpp"
+#line 3242 "engines/director/lingo/lingo-gr.cpp"
break;
- case 165: /* defn: tMETHOD $@17 lbl argdef '\n' argstore stmtlist */
-#line 827 "engines/director/lingo/lingo-gr.y"
+ case 167: /* defn: tMETHOD $@17 lbl argdef '\n' argstore stmtlist */
+#line 831 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_procret);
g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1);
endDef();
delete (yyvsp[-6].s); }
-#line 3217 "engines/director/lingo/lingo-gr.cpp"
+#line 3252 "engines/director/lingo/lingo-gr.cpp"
break;
- case 166: /* defn: on lbl argdef '\n' argstore stmtlist ENDCLAUSE endargdef */
-#line 832 "engines/director/lingo/lingo-gr.y"
+ case 168: /* defn: on lbl argdef '\n' argstore stmtlist ENDCLAUSE endargdef */
+#line 836 "engines/director/lingo/lingo-gr.y"
{ // D3
g_lingo->code1(LC::c_procret);
g_lingo->codeDefine(*(yyvsp[-7].s), (yyvsp[-6].code), (yyvsp[-5].narg));
@@ -3226,192 +3261,192 @@ yyreduce:
checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
delete (yyvsp[-7].s);
delete (yyvsp[-1].s); }
-#line 3230 "engines/director/lingo/lingo-gr.cpp"
+#line 3265 "engines/director/lingo/lingo-gr.cpp"
break;
- case 167: /* defn: on lbl argdef '\n' argstore stmtlist */
-#line 840 "engines/director/lingo/lingo-gr.y"
+ case 169: /* defn: on lbl argdef '\n' argstore stmtlist */
+#line 844 "engines/director/lingo/lingo-gr.y"
{ // D4. No 'end' clause
g_lingo->code1(LC::c_procret);
g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
endDef();
delete (yyvsp[-5].s); }
-#line 3240 "engines/director/lingo/lingo-gr.cpp"
+#line 3275 "engines/director/lingo/lingo-gr.cpp"
break;
- case 168: /* $@18: %empty */
-#line 846 "engines/director/lingo/lingo-gr.y"
+ case 170: /* $@18: %empty */
+#line 850 "engines/director/lingo/lingo-gr.y"
{ startDef(); }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 3281 "engines/director/lingo/lingo-gr.cpp"
break;
- case 169: /* on: tON $@18 ID */
-#line 846 "engines/director/lingo/lingo-gr.y"
+ case 171: /* on: tON $@18 ID */
+#line 850 "engines/director/lingo/lingo-gr.y"
{ (yyval.s) = (yyvsp[0].s); }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 3287 "engines/director/lingo/lingo-gr.cpp"
break;
- case 170: /* argname: ID */
-#line 848 "engines/director/lingo/lingo-gr.y"
+ case 172: /* argname: ID */
+#line 852 "engines/director/lingo/lingo-gr.y"
{ g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); delete (yyvsp[0].s); }
-#line 3258 "engines/director/lingo/lingo-gr.cpp"
+#line 3293 "engines/director/lingo/lingo-gr.cpp"
break;
- case 171: /* argdef: %empty */
-#line 850 "engines/director/lingo/lingo-gr.y"
+ case 173: /* argdef: %empty */
+#line 854 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; }
-#line 3264 "engines/director/lingo/lingo-gr.cpp"
+#line 3299 "engines/director/lingo/lingo-gr.cpp"
break;
- case 172: /* argdef: argname */
-#line 851 "engines/director/lingo/lingo-gr.y"
+ case 174: /* argdef: argname */
+#line 855 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3270 "engines/director/lingo/lingo-gr.cpp"
+#line 3305 "engines/director/lingo/lingo-gr.cpp"
break;
- case 173: /* argdef: argname ',' argdef */
-#line 852 "engines/director/lingo/lingo-gr.y"
+ case 175: /* argdef: argname ',' argdef */
+#line 856 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3276 "engines/director/lingo/lingo-gr.cpp"
+#line 3311 "engines/director/lingo/lingo-gr.cpp"
break;
- case 175: /* endargdef: ID */
-#line 855 "engines/director/lingo/lingo-gr.y"
+ case 177: /* endargdef: ID */
+#line 859 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 3282 "engines/director/lingo/lingo-gr.cpp"
+#line 3317 "engines/director/lingo/lingo-gr.cpp"
break;
- case 176: /* endargdef: endargdef ',' ID */
-#line 856 "engines/director/lingo/lingo-gr.y"
+ case 178: /* endargdef: endargdef ',' ID */
+#line 860 "engines/director/lingo/lingo-gr.y"
{ delete (yyvsp[0].s); }
-#line 3288 "engines/director/lingo/lingo-gr.cpp"
+#line 3323 "engines/director/lingo/lingo-gr.cpp"
break;
- case 177: /* argstore: %empty */
-#line 858 "engines/director/lingo/lingo-gr.y"
+ case 179: /* argstore: %empty */
+#line 862 "engines/director/lingo/lingo-gr.y"
{ inDef(); }
-#line 3294 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
break;
- case 178: /* arglist: %empty */
-#line 860 "engines/director/lingo/lingo-gr.y"
+ case 180: /* arglist: %empty */
+#line 864 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 0; }
-#line 3300 "engines/director/lingo/lingo-gr.cpp"
+#line 3335 "engines/director/lingo/lingo-gr.cpp"
break;
- case 179: /* arglist: expr */
-#line 861 "engines/director/lingo/lingo-gr.y"
+ case 181: /* arglist: expr */
+#line 865 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3306 "engines/director/lingo/lingo-gr.cpp"
+#line 3341 "engines/director/lingo/lingo-gr.cpp"
break;
- case 180: /* arglist: expr ',' arglist */
-#line 862 "engines/director/lingo/lingo-gr.y"
+ case 182: /* arglist: expr ',' arglist */
+#line 866 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3312 "engines/director/lingo/lingo-gr.cpp"
+#line 3347 "engines/director/lingo/lingo-gr.cpp"
break;
- case 181: /* nonemptyarglist: expr */
-#line 864 "engines/director/lingo/lingo-gr.y"
+ case 183: /* nonemptyarglist: expr */
+#line 868 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3318 "engines/director/lingo/lingo-gr.cpp"
+#line 3353 "engines/director/lingo/lingo-gr.cpp"
break;
- case 182: /* nonemptyarglist: expr ',' */
-#line 865 "engines/director/lingo/lingo-gr.y"
+ case 184: /* nonemptyarglist: expr ',' */
+#line 869 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3324 "engines/director/lingo/lingo-gr.cpp"
+#line 3359 "engines/director/lingo/lingo-gr.cpp"
break;
- case 183: /* nonemptyarglist: expr ',' nonemptyarglist */
-#line 866 "engines/director/lingo/lingo-gr.y"
+ case 185: /* nonemptyarglist: expr ',' nonemptyarglist */
+#line 870 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[0].narg) + 1; }
-#line 3330 "engines/director/lingo/lingo-gr.cpp"
+#line 3365 "engines/director/lingo/lingo-gr.cpp"
break;
- case 184: /* list: '[' valuelist ']' */
-#line 868 "engines/director/lingo/lingo-gr.y"
+ case 186: /* list: '[' valuelist ']' */
+#line 872 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = (yyvsp[-1].code); }
-#line 3336 "engines/director/lingo/lingo-gr.cpp"
+#line 3371 "engines/director/lingo/lingo-gr.cpp"
break;
- case 185: /* valuelist: %empty */
-#line 870 "engines/director/lingo/lingo-gr.y"
+ case 187: /* valuelist: %empty */
+#line 874 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3342 "engines/director/lingo/lingo-gr.cpp"
+#line 3377 "engines/director/lingo/lingo-gr.cpp"
break;
- case 186: /* valuelist: ':' */
-#line 871 "engines/director/lingo/lingo-gr.y"
+ case 188: /* valuelist: ':' */
+#line 875 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3348 "engines/director/lingo/lingo-gr.cpp"
+#line 3383 "engines/director/lingo/lingo-gr.cpp"
break;
- case 187: /* valuelist: proplist */
-#line 872 "engines/director/lingo/lingo-gr.y"
+ case 189: /* valuelist: proplist */
+#line 876 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3354 "engines/director/lingo/lingo-gr.cpp"
+#line 3389 "engines/director/lingo/lingo-gr.cpp"
break;
- case 188: /* valuelist: linearlist */
-#line 873 "engines/director/lingo/lingo-gr.y"
+ case 190: /* valuelist: linearlist */
+#line 877 "engines/director/lingo/lingo-gr.y"
{ (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3360 "engines/director/lingo/lingo-gr.cpp"
+#line 3395 "engines/director/lingo/lingo-gr.cpp"
break;
- case 189: /* linearlist: expr */
-#line 875 "engines/director/lingo/lingo-gr.y"
+ case 191: /* linearlist: expr */
+#line 879 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3366 "engines/director/lingo/lingo-gr.cpp"
+#line 3401 "engines/director/lingo/lingo-gr.cpp"
break;
- case 190: /* linearlist: linearlist ',' expr */
-#line 876 "engines/director/lingo/lingo-gr.y"
+ case 192: /* linearlist: linearlist ',' expr */
+#line 880 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3372 "engines/director/lingo/lingo-gr.cpp"
+#line 3407 "engines/director/lingo/lingo-gr.cpp"
break;
- case 191: /* proplist: proppair */
-#line 878 "engines/director/lingo/lingo-gr.y"
+ case 193: /* proplist: proppair */
+#line 882 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = 1; }
-#line 3378 "engines/director/lingo/lingo-gr.cpp"
+#line 3413 "engines/director/lingo/lingo-gr.cpp"
break;
- case 192: /* proplist: proplist ',' proppair */
-#line 879 "engines/director/lingo/lingo-gr.y"
+ case 194: /* proplist: proplist ',' proppair */
+#line 883 "engines/director/lingo/lingo-gr.y"
{ (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3384 "engines/director/lingo/lingo-gr.cpp"
+#line 3419 "engines/director/lingo/lingo-gr.cpp"
break;
- case 193: /* proppair: SYMBOL ':' expr */
-#line 881 "engines/director/lingo/lingo-gr.y"
+ case 195: /* proppair: SYMBOL ':' expr */
+#line 885 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_symbolpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
delete (yyvsp[-2].s); }
-#line 3393 "engines/director/lingo/lingo-gr.cpp"
+#line 3428 "engines/director/lingo/lingo-gr.cpp"
break;
- case 194: /* proppair: STRING ':' expr */
-#line 885 "engines/director/lingo/lingo-gr.y"
+ case 196: /* proppair: STRING ':' expr */
+#line 889 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_stringpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
delete (yyvsp[-2].s); }
-#line 3402 "engines/director/lingo/lingo-gr.cpp"
+#line 3437 "engines/director/lingo/lingo-gr.cpp"
break;
- case 195: /* proppair: ID ':' expr */
-#line 889 "engines/director/lingo/lingo-gr.y"
+ case 197: /* proppair: ID ':' expr */
+#line 893 "engines/director/lingo/lingo-gr.y"
{
g_lingo->code1(LC::c_stringpush);
g_lingo->codeString((yyvsp[-2].s)->c_str());
delete (yyvsp[-2].s); }
-#line 3411 "engines/director/lingo/lingo-gr.cpp"
+#line 3446 "engines/director/lingo/lingo-gr.cpp"
break;
-#line 3415 "engines/director/lingo/lingo-gr.cpp"
+#line 3450 "engines/director/lingo/lingo-gr.cpp"
default: break;
}
@@ -3610,7 +3645,7 @@ yyreturn:
return yyresult;
}
-#line 895 "engines/director/lingo/lingo-gr.y"
+#line 899 "engines/director/lingo/lingo-gr.y"
int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index e4a04faa74..b5d69d4d89 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -138,7 +138,8 @@ extern int yydebug;
tON = 339, /* tON */
tENDIF = 340, /* tENDIF */
tENDREPEAT = 341, /* tENDREPEAT */
- tENDTELL = 342 /* tENDTELL */
+ tENDTELL = 342, /* tENDTELL */
+ tASSERTERROR = 343 /* tASSERTERROR */
};
typedef enum yytokentype yytoken_kind_t;
#endif
@@ -162,7 +163,7 @@ union YYSTYPE
Common::String *prop;
} objectprop;
-#line 166 "engines/director/lingo/lingo-gr.h"
+#line 167 "engines/director/lingo/lingo-gr.h"
};
typedef union YYSTYPE YYSTYPE;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 47950975d1..c85ab28623 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -213,6 +213,7 @@ static void mVar(Common::String *s, VarType type) {
%token tAFTER tBEFORE tCONCAT tCONTAINS tSTARTS tCHAR tITEM tLINE tWORD
%token tSPRITE tINTERSECTS tWITHIN tTELL tPROPERTY
%token tON tENDIF tENDREPEAT tENDTELL
+%token tASSERTERROR
%type<code> asgn lbl expr if chunkexpr simpleexprnoparens
%type<code> tellstart reference simpleexpr list valuelist
@@ -511,12 +512,15 @@ stmt: stmtoneliner
g_lingo->codeString($ID->c_str()); }
| tTELL expr '\n' tellstart stmtlist lbl tENDTELL { g_lingo->code1(LC::c_telldone); }
| tTELL expr tTO tellstart stmtoneliner lbl { g_lingo->code1(LC::c_telldone); }
+ | tASSERTERROR asserterrorstart stmtoneliner { g_lingo->code1(LC::c_asserterrordone); }
| error '\n' { yyerrok; }
startrepeat: /* nothing */ { startRepeat(); }
tellstart: /* empty */ { g_lingo->code1(LC::c_tell); }
+asserterrorstart: /* empty */ { g_lingo->code1(LC::c_asserterror); }
+
ifstmt: if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist lbl[end3] tENDIF {
inst else1 = 0, end3 = 0;
WRITE_UINT32(&else1, $else1 + 1 - $then + 1);
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 00ec28d7df..61439ea7b2 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -355,8 +355,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 74
-#define YY_END_OF_BUFFER 75
+#define YY_NUM_RULES 75
+#define YY_END_OF_BUFFER 76
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -364,43 +364,45 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[317] =
+static const flex_int16_t yy_accept[333] =
{ 0,
- 0, 0, 75, 73, 1, 71, 71, 73, 73, 70,
- 70, 69, 70, 66, 70, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 1, 67, 1, 71, 0, 72, 2,
- 65, 68, 69, 64, 62, 63, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 10, 24, 67, 67, 67, 67, 67, 67, 67, 33,
- 34, 67, 36, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 54, 67, 67, 67, 1, 0, 67,
- 2, 68, 67, 4, 67, 67, 67, 67, 67, 67,
-
- 13, 67, 67, 67, 19, 67, 67, 67, 67, 67,
- 67, 29, 67, 67, 32, 67, 67, 67, 67, 42,
- 67, 67, 45, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 0, 67, 67, 67, 6, 7, 67, 9,
- 12, 0, 15, 67, 67, 0, 0, 0, 67, 67,
- 23, 25, 26, 67, 67, 67, 31, 35, 38, 67,
- 67, 67, 67, 67, 67, 47, 0, 53, 58, 67,
- 67, 56, 61, 0, 67, 3, 67, 67, 0, 13,
- 16, 67, 0, 0, 19, 67, 67, 27, 67, 30,
- 0, 67, 67, 67, 67, 67, 67, 67, 52, 52,
-
- 52, 59, 67, 67, 0, 67, 5, 67, 0, 13,
- 17, 0, 0, 0, 67, 67, 67, 0, 67, 67,
- 67, 43, 44, 55, 46, 0, 52, 52, 60, 57,
- 0, 67, 67, 11, 0, 20, 67, 67, 0, 0,
- 67, 67, 67, 0, 0, 0, 52, 52, 0, 14,
- 8, 18, 21, 67, 28, 0, 67, 40, 41, 0,
- 0, 0, 52, 52, 14, 67, 28, 0, 39, 0,
- 0, 0, 0, 52, 22, 37, 51, 50, 51, 0,
- 0, 0, 0, 52, 50, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 51, 50,
-
- 50, 51, 0, 49, 50, 50, 0, 50, 0, 50,
- 0, 0, 0, 0, 48, 0
+ 0, 0, 76, 74, 1, 72, 72, 74, 74, 71,
+ 71, 70, 71, 67, 71, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 1, 68, 1, 72, 0, 73, 2,
+ 66, 69, 70, 65, 63, 64, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 10, 24, 68, 68, 68, 68, 68, 68, 68, 33,
+ 34, 68, 36, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 54, 68, 68, 68, 1, 0, 68,
+ 2, 69, 68, 4, 68, 68, 68, 68, 68, 68,
+
+ 13, 68, 68, 68, 19, 68, 68, 68, 68, 68,
+ 68, 29, 68, 68, 32, 68, 68, 68, 68, 42,
+ 68, 68, 68, 45, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 0, 68, 68, 68, 6, 7, 68,
+ 9, 12, 0, 15, 68, 68, 0, 0, 0, 68,
+ 68, 23, 25, 26, 68, 68, 68, 31, 35, 38,
+ 68, 68, 68, 68, 68, 68, 68, 47, 0, 53,
+ 59, 68, 68, 57, 62, 0, 68, 3, 68, 68,
+ 0, 13, 16, 68, 0, 0, 19, 68, 68, 27,
+ 68, 30, 0, 68, 68, 68, 68, 68, 68, 68,
+
+ 68, 52, 52, 52, 60, 68, 68, 0, 68, 5,
+ 68, 0, 13, 17, 0, 0, 0, 68, 68, 68,
+ 0, 68, 68, 68, 43, 44, 68, 56, 46, 0,
+ 52, 52, 61, 58, 0, 68, 68, 11, 0, 20,
+ 68, 68, 0, 0, 68, 68, 68, 68, 0, 0,
+ 0, 52, 52, 0, 14, 8, 18, 21, 68, 28,
+ 0, 68, 40, 41, 68, 0, 0, 0, 52, 52,
+ 14, 68, 28, 0, 39, 68, 0, 0, 0, 0,
+ 52, 22, 37, 68, 51, 50, 51, 0, 0, 0,
+ 0, 52, 68, 50, 0, 0, 0, 0, 0, 68,
+
+ 0, 0, 0, 0, 0, 0, 68, 0, 0, 51,
+ 50, 50, 51, 0, 68, 49, 50, 50, 0, 68,
+ 50, 68, 0, 50, 68, 0, 0, 55, 0, 0,
+ 48, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -429,7 +431,7 @@ static const YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1
@@ -445,87 +447,91 @@ static const YY_CHAR yy_meta[60] =
5, 5, 5, 5, 5, 5, 5, 5, 5
} ;
-static const flex_int16_t yy_base[331] =
+static const flex_int16_t yy_base[347] =
{ 0,
- 0, 58, 630, 704, 59, 704, 704, 624, 0, 704,
- 620, 55, 54, 704, 615, 49, 51, 57, 46, 50,
+ 0, 58, 663, 735, 59, 735, 735, 657, 0, 735,
+ 653, 55, 54, 735, 647, 49, 51, 57, 46, 50,
48, 56, 0, 85, 59, 95, 73, 98, 106, 68,
- 124, 138, 98, 165, 148, 85, 704, 621, 704, 0,
- 704, 615, 122, 704, 704, 704, 0, 120, 73, 93,
- 124, 143, 146, 139, 146, 146, 157, 164, 162, 621,
+ 124, 138, 98, 165, 148, 85, 735, 651, 735, 0,
+ 735, 645, 122, 735, 735, 735, 0, 120, 73, 93,
+ 124, 143, 146, 139, 146, 146, 157, 164, 162, 650,
0, 160, 167, 166, 177, 166, 183, 163, 171, 0,
- 0, 186, 0, 191, 192, 176, 190, 193, 192, 197,
- 197, 203, 213, 0, 214, 212, 211, 249, 219, 231,
- 0, 612, 230, 0, 217, 223, 229, 228, 236, 246,
-
- 618, 239, 249, 250, 267, 243, 257, 253, 258, 250,
- 259, 0, 265, 252, 0, 264, 258, 262, 275, 0,
- 287, 286, 0, 287, 283, 291, 314, 293, 296, 305,
- 302, 307, 309, 296, 299, 301, 0, 0, 317, 0,
- 614, 613, 0, 317, 322, 310, 314, 317, 323, 316,
- 0, 0, 0, 325, 327, 338, 0, 0, 355, 337,
- 347, 352, 343, 341, 342, 0, 374, 0, 0, 360,
- 347, 357, 0, 350, 355, 0, 366, 363, 384, 0,
- 0, 363, 374, 364, 611, 366, 369, 0, 384, 0,
- 405, 395, 386, 387, 386, 387, 401, 396, 610, 418,
-
- 425, 0, 394, 403, 404, 408, 0, 412, 415, 0,
- 0, 417, 416, 431, 429, 428, 609, 424, 431, 423,
- 428, 0, 0, 0, 0, 460, 462, 461, 0, 0,
- 437, 436, 443, 704, 457, 704, 461, 465, 605, 469,
- 466, 458, 454, 479, 475, 475, 496, 504, 464, 0,
- 0, 704, 0, 471, 0, 487, 492, 0, 0, 491,
- 604, 499, 556, 502, 704, 496, 0, 510, 0, 511,
- 531, 512, 529, 530, 0, 704, 704, 0, 704, 483,
- 534, 532, 535, 466, 0, 539, 536, 368, 538, 560,
- 516, 545, 553, 571, 566, 557, 235, 199, 169, 543,
-
- 559, 158, 144, 127, 119, 116, 572, 594, 597, 595,
- 554, 575, 80, 77, 70, 704, 647, 649, 652, 655,
- 660, 665, 667, 672, 675, 680, 685, 687, 692, 697
+ 0, 186, 0, 191, 192, 176, 190, 194, 191, 198,
+ 197, 207, 214, 0, 215, 217, 207, 249, 224, 224,
+ 0, 640, 237, 0, 217, 216, 229, 229, 237, 247,
+
+ 644, 241, 249, 254, 275, 243, 258, 250, 260, 251,
+ 266, 0, 266, 251, 0, 258, 254, 258, 273, 0,
+ 286, 287, 290, 0, 288, 287, 293, 317, 295, 299,
+ 308, 305, 310, 314, 301, 306, 307, 0, 0, 323,
+ 0, 643, 638, 0, 324, 331, 318, 321, 325, 339,
+ 327, 0, 0, 0, 330, 333, 344, 0, 0, 362,
+ 341, 349, 354, 344, 348, 343, 347, 0, 379, 0,
+ 0, 364, 357, 363, 0, 357, 362, 0, 372, 371,
+ 396, 0, 0, 375, 394, 375, 637, 378, 380, 0,
+ 396, 0, 417, 399, 393, 392, 392, 393, 396, 398,
+
+ 400, 622, 436, 429, 0, 400, 409, 414, 416, 0,
+ 422, 430, 0, 0, 429, 427, 457, 435, 438, 579,
+ 433, 447, 433, 435, 0, 0, 442, 0, 0, 477,
+ 467, 468, 0, 0, 443, 446, 453, 735, 468, 735,
+ 473, 482, 512, 485, 483, 466, 467, 495, 497, 493,
+ 491, 490, 515, 488, 0, 0, 735, 0, 497, 0,
+ 504, 508, 0, 0, 504, 507, 505, 514, 500, 538,
+ 735, 511, 0, 524, 0, 515, 525, 479, 528, 546,
+ 547, 0, 735, 532, 735, 0, 735, 392, 551, 567,
+ 556, 340, 530, 0, 570, 573, 329, 558, 588, 540,
+
+ 558, 560, 583, 586, 591, 579, 593, 318, 199, 169,
+ 565, 598, 158, 144, 566, 127, 119, 116, 610, 592,
+ 621, 599, 626, 641, 605, 611, 611, 0, 80, 77,
+ 70, 735, 678, 680, 683, 686, 691, 696, 698, 703,
+ 706, 711, 716, 718, 723, 728
} ;
-static const flex_int16_t yy_def[331] =
+static const flex_int16_t yy_def[347] =
{ 0,
- 316, 1, 316, 316, 316, 316, 316, 317, 318, 316,
- 316, 316, 316, 316, 316, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 316, 319, 316, 316, 317, 316, 320,
- 316, 316, 316, 316, 316, 316, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 316, 316, 319,
- 320, 316, 319, 319, 319, 319, 319, 319, 319, 319,
-
- 319, 319, 319, 319, 316, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 316, 319, 319, 319, 319, 319, 319, 319,
- 319, 321, 319, 319, 319, 316, 316, 316, 319, 319,
- 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
- 319, 319, 319, 319, 319, 319, 322, 319, 319, 319,
- 319, 319, 319, 316, 319, 319, 319, 319, 316, 323,
- 319, 319, 316, 316, 316, 319, 319, 319, 319, 319,
- 316, 319, 319, 319, 319, 319, 319, 319, 322, 322,
-
- 322, 319, 319, 319, 316, 319, 319, 319, 316, 323,
- 319, 316, 316, 316, 319, 319, 319, 316, 319, 319,
- 319, 319, 319, 319, 319, 316, 322, 322, 319, 319,
- 316, 319, 319, 316, 316, 316, 319, 319, 324, 316,
- 319, 319, 319, 316, 316, 316, 322, 322, 316, 319,
- 319, 316, 319, 319, 325, 316, 319, 319, 319, 316,
- 316, 316, 322, 322, 316, 319, 325, 316, 319, 316,
- 326, 316, 327, 322, 319, 316, 316, 328, 316, 327,
- 327, 327, 327, 322, 328, 316, 327, 327, 327, 316,
- 316, 316, 327, 326, 327, 316, 316, 316, 327, 328,
-
- 328, 327, 316, 316, 328, 328, 329, 330, 316, 330,
- 316, 316, 316, 316, 316, 0, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316
+ 332, 1, 332, 332, 332, 332, 332, 333, 334, 332,
+ 332, 332, 332, 332, 332, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 332, 335, 332, 332, 333, 332, 336,
+ 332, 332, 332, 332, 332, 332, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 332, 332, 335,
+ 336, 332, 335, 335, 335, 335, 335, 335, 335, 335,
+
+ 335, 335, 335, 335, 332, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 332, 335, 335, 335, 335, 335, 335,
+ 335, 335, 337, 335, 335, 335, 332, 332, 332, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
+ 335, 335, 335, 335, 335, 335, 335, 335, 338, 335,
+ 335, 335, 335, 335, 335, 332, 335, 335, 335, 335,
+ 332, 339, 335, 335, 332, 332, 332, 335, 335, 335,
+ 335, 335, 332, 335, 335, 335, 335, 335, 335, 335,
+
+ 335, 338, 338, 338, 335, 335, 335, 332, 335, 335,
+ 335, 332, 339, 335, 332, 332, 332, 335, 335, 335,
+ 332, 335, 335, 335, 335, 335, 335, 335, 335, 332,
+ 338, 338, 335, 335, 332, 335, 335, 332, 332, 332,
+ 335, 335, 340, 332, 335, 335, 335, 335, 332, 332,
+ 332, 338, 338, 332, 335, 335, 332, 335, 335, 341,
+ 332, 335, 335, 335, 335, 332, 332, 332, 338, 338,
+ 332, 335, 341, 332, 335, 335, 332, 342, 332, 343,
+ 338, 335, 332, 335, 332, 344, 332, 343, 343, 343,
+ 343, 338, 335, 344, 332, 343, 343, 343, 332, 335,
+
+ 332, 332, 343, 342, 343, 332, 335, 332, 332, 343,
+ 344, 344, 343, 332, 335, 332, 344, 344, 345, 335,
+ 346, 335, 332, 346, 335, 332, 332, 335, 332, 332,
+ 332, 0, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332
} ;
-static const flex_int16_t yy_nxt[764] =
+static const flex_int16_t yy_nxt[795] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
@@ -534,86 +540,90 @@ static const flex_int16_t yy_nxt[764] =
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 23, 23, 33, 23, 23, 34,
36, 37, 37, 42, 43, 44, 45, 48, 50, 58,
- 51, 315, 54, 55, 49, 56, 35, 52, 315, 59,
- 64, 315, 60, 53, 57, 77, 36, 37, 37, 94,
+ 51, 331, 54, 55, 49, 56, 35, 52, 331, 59,
+ 64, 331, 60, 53, 57, 77, 36, 37, 37, 94,
68, 48, 50, 58, 51, 54, 55, 49, 56, 69,
35, 52, 59, 61, 64, 60, 53, 57, 65, 77,
- 62, 95, 66, 94, 68, 63, 70, 304, 85, 86,
- 304, 67, 69, 71, 87, 72, 73, 61, 304, 74,
+ 62, 95, 66, 94, 68, 63, 70, 316, 85, 86,
+ 316, 67, 69, 71, 87, 72, 73, 61, 316, 74,
42, 43, 65, 62, 75, 95, 66, 76, 63, 78,
- 70, 79, 85, 86, 67, 307, 71, 87, 72, 73,
- 93, 80, 74, 96, 81, 82, 97, 75, 83, 286,
+ 70, 79, 85, 86, 67, 319, 71, 87, 72, 73,
+ 93, 80, 74, 96, 81, 82, 97, 75, 83, 295,
76, 90, 101, 78, 84, 79, 88, 37, 37, 58,
- 286, 98, 99, 93, 80, 100, 96, 81, 102, 82,
+ 295, 98, 99, 93, 80, 100, 96, 81, 102, 82,
97, 103, 83, 89, 108, 90, 101, 84, 104, 106,
107, 109, 110, 58, 98, 99, 111, 114, 100, 112,
- 304, 115, 102, 116, 117, 103, 120, 89, 108, 118,
- 125, 104, 106, 107, 109, 113, 110, 121, 119, 111,
- 114, 122, 123, 112, 115, 124, 126, 116, 117, 120,
- 127, 128, 133, 118, 125, 129, 304, 130, 113, 132,
- 121, 119, 131, 136, 122, 123, 134, 135, 124, 126,
- 88, 37, 37, 137, 127, 128, 133, 138, 139, 129,
- 130, 140, 132, 141, 145, 131, 136, 89, 105, 143,
- 134, 135, 144, 149, 150, 153, 137, 152, 154, 155,
- 138, 139, 157, 151, 140, 146, 156, 141, 145, 158,
- 147, 89, 143, 159, 160, 144, 149, 148, 150, 153,
-
- 152, 154, 161, 155, 162, 157, 151, 163, 164, 146,
- 156, 165, 158, 147, 166, 167, 159, 160, 169, 170,
- 148, 171, 172, 173, 174, 161, 175, 176, 162, 177,
- 178, 163, 164, 181, 165, 182, 186, 166, 183, 168,
- 184, 169, 170, 185, 187, 171, 172, 173, 174, 175,
- 176, 188, 177, 189, 178, 190, 191, 181, 193, 182,
- 186, 183, 168, 184, 194, 195, 185, 187, 192, 294,
- 196, 197, 198, 203, 188, 167, 189, 202, 204, 190,
- 205, 206, 193, 207, 208, 179, 211, 212, 194, 195,
- 213, 215, 192, 196, 197, 198, 203, 200, 216, 201,
-
- 217, 202, 204, 205, 206, 209, 191, 207, 208, 211,
- 219, 212, 220, 213, 215, 221, 222, 223, 224, 226,
- 200, 216, 201, 218, 217, 225, 226, 229, 230, 209,
- 231, 227, 214, 234, 219, 220, 232, 233, 221, 222,
- 223, 235, 224, 236, 237, 238, 241, 218, 225, 146,
- 229, 230, 240, 231, 242, 227, 228, 234, 243, 232,
- 233, 226, 226, 226, 235, 249, 236, 290, 237, 238,
- 241, 250, 251, 146, 252, 240, 244, 242, 253, 228,
- 254, 243, 256, 257, 286, 248, 245, 258, 249, 259,
- 246, 247, 260, 261, 250, 251, 262, 226, 252, 265,
-
- 244, 266, 253, 226, 254, 226, 256, 257, 248, 245,
- 258, 268, 259, 246, 247, 269, 260, 261, 264, 274,
- 262, 270, 265, 272, 266, 275, 263, 276, 277, 279,
- 273, 226, 271, 286, 268, 286, 286, 286, 269, 286,
- 286, 297, 264, 274, 270, 281, 272, 287, 275, 263,
- 288, 276, 277, 279, 286, 282, 289, 273, 284, 283,
- 291, 290, 295, 298, 297, 292, 293, 286, 305, 281,
- 299, 287, 294, 307, 288, 303, 244, 306, 282, 313,
- 289, 284, 283, 302, 291, 295, 296, 298, 292, 293,
- 246, 305, 300, 314, 299, 309, 309, 301, 309, 303,
-
- 244, 306, 313, 285, 285, 271, 239, 302, 278, 296,
- 239, 226, 214, 246, 142, 179, 300, 314, 311, 142,
- 301, 92, 105, 312, 92, 39, 46, 41, 39, 316,
- 285, 285, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 311, 316, 316, 316, 312, 38, 38, 316,
- 38, 38, 38, 40, 40, 47, 47, 47, 91, 91,
- 91, 180, 316, 316, 180, 180, 199, 316, 316, 199,
- 210, 210, 210, 255, 316, 316, 255, 255, 267, 267,
- 267, 278, 316, 316, 278, 278, 280, 316, 316, 280,
- 285, 285, 285, 308, 316, 316, 308, 308, 310, 316,
-
- 310, 310, 310, 3, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316
+ 316, 115, 102, 116, 117, 103, 120, 89, 108, 118,
+ 126, 104, 106, 107, 109, 113, 110, 121, 119, 111,
+ 114, 124, 122, 112, 115, 123, 125, 116, 117, 120,
+ 127, 128, 129, 118, 126, 133, 130, 134, 113, 135,
+ 121, 119, 131, 137, 124, 122, 138, 132, 123, 125,
+ 88, 37, 37, 127, 136, 128, 129, 139, 133, 140,
+ 130, 134, 141, 135, 142, 131, 137, 89, 146, 138,
+ 132, 144, 145, 150, 153, 151, 105, 154, 136, 155,
+ 139, 158, 140, 159, 152, 141, 156, 157, 142, 160,
+ 161, 89, 146, 147, 144, 145, 150, 153, 148, 151,
+
+ 162, 154, 155, 163, 158, 149, 159, 152, 164, 166,
+ 156, 157, 160, 161, 165, 167, 168, 147, 169, 316,
+ 171, 148, 172, 162, 173, 174, 175, 163, 149, 176,
+ 304, 177, 164, 166, 178, 179, 180, 165, 167, 168,
+ 183, 299, 170, 171, 184, 172, 185, 186, 173, 174,
+ 175, 187, 188, 176, 177, 189, 190, 178, 179, 191,
+ 180, 192, 195, 193, 183, 170, 196, 197, 184, 185,
+ 186, 198, 199, 200, 187, 194, 188, 201, 189, 190,
+ 169, 205, 191, 206, 207, 192, 195, 208, 209, 210,
+ 196, 197, 211, 295, 198, 199, 200, 181, 214, 194,
+
+ 201, 216, 203, 218, 204, 205, 206, 215, 207, 219,
+ 208, 209, 220, 210, 222, 228, 211, 212, 193, 223,
+ 224, 214, 225, 226, 216, 203, 218, 204, 227, 229,
+ 230, 215, 219, 233, 234, 221, 220, 230, 222, 228,
+ 235, 212, 223, 224, 236, 225, 226, 237, 238, 231,
+ 241, 227, 229, 239, 240, 242, 233, 234, 217, 221,
+ 232, 244, 245, 235, 246, 247, 248, 236, 230, 230,
+ 237, 254, 238, 231, 241, 147, 239, 240, 230, 242,
+ 278, 255, 256, 232, 244, 257, 245, 246, 247, 248,
+ 258, 230, 253, 249, 254, 263, 252, 259, 261, 147,
+
+ 262, 280, 264, 250, 255, 256, 278, 251, 265, 257,
+ 266, 267, 268, 243, 258, 253, 230, 249, 263, 252,
+ 269, 259, 261, 271, 262, 264, 250, 272, 274, 270,
+ 251, 275, 265, 276, 266, 267, 268, 277, 279, 230,
+ 282, 283, 285, 269, 284, 287, 271, 280, 230, 293,
+ 272, 274, 295, 270, 275, 281, 276, 295, 300, 295,
+ 277, 279, 289, 282, 296, 283, 285, 284, 295, 287,
+ 307, 295, 290, 293, 295, 292, 291, 298, 309, 281,
+ 243, 300, 305, 308, 295, 297, 289, 304, 296, 299,
+ 317, 301, 295, 307, 320, 290, 302, 314, 292, 291,
+
+ 310, 298, 309, 303, 249, 305, 308, 311, 313, 297,
+ 315, 319, 312, 317, 306, 301, 318, 320, 251, 302,
+ 322, 314, 323, 230, 310, 325, 303, 323, 249, 330,
+ 294, 311, 313, 328, 315, 312, 329, 306, 217, 143,
+ 318, 251, 323, 322, 181, 143, 286, 326, 325, 92,
+ 294, 105, 327, 330, 92, 39, 328, 294, 46, 329,
+ 41, 39, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 326, 332, 332, 332, 327, 332, 294, 38, 38,
+ 332, 38, 38, 38, 40, 40, 47, 47, 47, 91,
+ 91, 91, 182, 332, 332, 182, 182, 202, 332, 332,
+
+ 202, 213, 213, 213, 260, 332, 332, 260, 260, 273,
+ 273, 273, 286, 332, 332, 286, 286, 288, 332, 332,
+ 288, 294, 294, 294, 321, 332, 332, 321, 321, 324,
+ 332, 324, 324, 324, 3, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332
+
} ;
-static const flex_int16_t yy_chk[764] =
+static const flex_int16_t yy_chk[795] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -622,83 +632,87 @@ static const flex_int16_t yy_chk[764] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
5, 5, 5, 12, 12, 13, 13, 16, 17, 21,
- 18, 315, 19, 20, 16, 20, 2, 18, 314, 22,
- 25, 313, 22, 18, 20, 30, 36, 36, 36, 49,
+ 18, 331, 19, 20, 16, 20, 2, 18, 330, 22,
+ 25, 329, 22, 18, 20, 30, 36, 36, 36, 49,
27, 16, 17, 21, 18, 19, 20, 16, 20, 27,
2, 18, 22, 24, 25, 22, 18, 20, 26, 30,
- 24, 50, 26, 49, 27, 24, 28, 306, 33, 33,
- 305, 26, 27, 28, 33, 28, 28, 24, 304, 29,
+ 24, 50, 26, 49, 27, 24, 28, 318, 33, 33,
+ 317, 26, 27, 28, 33, 28, 28, 24, 316, 29,
43, 43, 26, 24, 29, 50, 26, 29, 24, 31,
- 28, 31, 33, 33, 26, 303, 28, 33, 28, 28,
- 48, 31, 29, 51, 31, 32, 52, 29, 32, 302,
+ 28, 31, 33, 33, 26, 314, 28, 33, 28, 28,
+ 48, 31, 29, 51, 31, 32, 52, 29, 32, 313,
29, 35, 56, 31, 32, 31, 34, 34, 34, 35,
- 299, 53, 54, 48, 31, 55, 51, 31, 57, 32,
+ 310, 53, 54, 48, 31, 55, 51, 31, 57, 32,
52, 58, 32, 34, 63, 35, 56, 32, 59, 62,
62, 64, 65, 35, 53, 54, 66, 68, 55, 67,
- 298, 69, 57, 72, 74, 58, 76, 34, 63, 75,
+ 309, 69, 57, 72, 74, 58, 76, 34, 63, 75,
81, 59, 62, 62, 64, 67, 65, 77, 75, 66,
- 68, 78, 79, 67, 69, 80, 82, 72, 74, 76,
- 83, 85, 89, 75, 81, 85, 297, 86, 67, 87,
- 77, 75, 86, 95, 78, 79, 90, 93, 80, 82,
- 88, 88, 88, 96, 83, 85, 89, 97, 98, 85,
- 86, 99, 87, 100, 104, 86, 95, 88, 105, 102,
- 90, 93, 103, 106, 107, 109, 96, 108, 110, 111,
- 97, 98, 114, 107, 99, 105, 113, 100, 104, 116,
- 105, 88, 102, 117, 118, 103, 106, 105, 107, 109,
-
- 108, 110, 119, 111, 121, 114, 107, 122, 124, 105,
- 113, 125, 116, 105, 126, 127, 117, 118, 128, 129,
- 105, 130, 131, 132, 133, 119, 134, 135, 121, 136,
- 139, 122, 124, 144, 125, 145, 149, 126, 146, 127,
- 147, 128, 129, 148, 150, 130, 131, 132, 133, 134,
- 135, 154, 136, 155, 139, 156, 159, 144, 160, 145,
- 149, 146, 127, 147, 161, 162, 148, 150, 159, 288,
- 163, 164, 165, 171, 154, 167, 155, 170, 172, 156,
- 174, 175, 160, 177, 178, 179, 182, 183, 161, 162,
- 184, 186, 159, 163, 164, 165, 171, 167, 187, 167,
-
- 189, 170, 172, 174, 175, 179, 191, 177, 178, 182,
- 192, 183, 193, 184, 186, 194, 195, 196, 197, 200,
- 167, 187, 167, 191, 189, 198, 201, 203, 204, 179,
- 205, 200, 214, 209, 192, 193, 206, 208, 194, 195,
- 196, 212, 197, 213, 215, 216, 219, 191, 198, 214,
- 203, 204, 218, 205, 220, 200, 201, 209, 221, 206,
- 208, 226, 228, 227, 212, 231, 213, 284, 215, 216,
- 219, 232, 233, 214, 235, 218, 226, 220, 237, 201,
- 238, 221, 240, 241, 280, 228, 226, 242, 231, 243,
- 226, 227, 244, 245, 232, 233, 246, 247, 235, 249,
-
- 226, 254, 237, 264, 238, 248, 240, 241, 228, 226,
- 242, 256, 243, 226, 227, 257, 244, 245, 248, 264,
- 246, 260, 249, 262, 254, 266, 247, 268, 270, 272,
- 273, 274, 271, 282, 256, 281, 283, 287, 257, 289,
- 286, 291, 248, 264, 260, 273, 262, 281, 266, 247,
- 282, 268, 270, 272, 293, 273, 283, 263, 274, 273,
- 286, 290, 289, 292, 291, 286, 287, 295, 300, 273,
- 293, 281, 294, 307, 282, 296, 290, 301, 273, 311,
- 283, 274, 273, 295, 286, 289, 290, 292, 286, 287,
- 290, 300, 294, 312, 293, 308, 310, 294, 309, 296,
-
- 290, 301, 311, 308, 310, 261, 239, 295, 307, 290,
- 217, 199, 185, 290, 142, 141, 294, 312, 309, 101,
- 294, 92, 60, 309, 42, 38, 15, 11, 8, 3,
- 308, 310, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 309, 0, 0, 0, 309, 317, 317, 0,
- 317, 317, 317, 318, 318, 319, 319, 319, 320, 320,
- 320, 321, 0, 0, 321, 321, 322, 0, 0, 322,
- 323, 323, 323, 324, 0, 0, 324, 324, 325, 325,
- 325, 326, 0, 0, 326, 326, 327, 0, 0, 327,
- 328, 328, 328, 329, 0, 0, 329, 329, 330, 0,
-
- 330, 330, 330, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316
+ 68, 79, 78, 67, 69, 78, 80, 72, 74, 76,
+ 82, 83, 85, 75, 81, 87, 85, 89, 67, 90,
+ 77, 75, 86, 95, 79, 78, 96, 86, 78, 80,
+ 88, 88, 88, 82, 93, 83, 85, 97, 87, 98,
+ 85, 89, 99, 90, 100, 86, 95, 88, 104, 96,
+ 86, 102, 103, 106, 108, 107, 105, 109, 93, 110,
+ 97, 114, 98, 116, 107, 99, 111, 113, 100, 117,
+ 118, 88, 104, 105, 102, 103, 106, 108, 105, 107,
+
+ 119, 109, 110, 121, 114, 105, 116, 107, 122, 125,
+ 111, 113, 117, 118, 123, 126, 127, 105, 128, 308,
+ 129, 105, 130, 119, 131, 132, 133, 121, 105, 134,
+ 297, 135, 122, 125, 136, 137, 140, 123, 126, 127,
+ 145, 292, 128, 129, 146, 130, 147, 148, 131, 132,
+ 133, 149, 150, 134, 135, 151, 155, 136, 137, 156,
+ 140, 157, 161, 160, 145, 128, 162, 163, 146, 147,
+ 148, 164, 165, 166, 149, 160, 150, 167, 151, 155,
+ 169, 172, 156, 173, 174, 157, 161, 176, 177, 179,
+ 162, 163, 180, 288, 164, 165, 166, 181, 184, 160,
+
+ 167, 186, 169, 188, 169, 172, 173, 185, 174, 189,
+ 176, 177, 191, 179, 194, 200, 180, 181, 193, 195,
+ 196, 184, 197, 198, 186, 169, 188, 169, 199, 201,
+ 204, 185, 189, 206, 207, 193, 191, 203, 194, 200,
+ 208, 181, 195, 196, 209, 197, 198, 211, 212, 203,
+ 218, 199, 201, 215, 216, 219, 206, 207, 217, 193,
+ 204, 221, 222, 208, 223, 224, 227, 209, 231, 232,
+ 211, 235, 212, 203, 218, 217, 215, 216, 230, 219,
+ 278, 236, 237, 204, 221, 239, 222, 223, 224, 227,
+ 241, 252, 232, 230, 235, 246, 231, 242, 244, 217,
+
+ 245, 269, 247, 230, 236, 237, 267, 230, 248, 239,
+ 249, 250, 251, 243, 241, 232, 253, 230, 246, 231,
+ 252, 242, 244, 254, 245, 247, 230, 259, 261, 253,
+ 230, 262, 248, 265, 249, 250, 251, 266, 268, 270,
+ 272, 274, 277, 252, 276, 279, 254, 280, 281, 284,
+ 259, 261, 289, 253, 262, 270, 265, 291, 293, 298,
+ 266, 268, 280, 272, 289, 274, 277, 276, 290, 279,
+ 300, 295, 280, 284, 296, 281, 280, 291, 302, 270,
+ 220, 293, 298, 301, 303, 290, 280, 304, 289, 299,
+ 311, 295, 305, 300, 315, 280, 295, 306, 281, 280,
+
+ 303, 291, 302, 296, 299, 298, 301, 304, 305, 290,
+ 307, 319, 304, 311, 299, 295, 312, 315, 299, 295,
+ 320, 306, 321, 202, 303, 322, 296, 323, 299, 327,
+ 321, 304, 305, 325, 307, 304, 326, 299, 187, 143,
+ 312, 299, 324, 320, 142, 101, 319, 323, 322, 92,
+ 324, 60, 323, 327, 42, 38, 325, 321, 15, 326,
+ 11, 8, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 323, 0, 0, 0, 323, 0, 324, 333, 333,
+ 0, 333, 333, 333, 334, 334, 335, 335, 335, 336,
+ 336, 336, 337, 0, 0, 337, 337, 338, 0, 0,
+
+ 338, 339, 339, 339, 340, 0, 0, 340, 340, 341,
+ 341, 341, 342, 0, 0, 342, 342, 343, 0, 0,
+ 343, 344, 344, 344, 345, 0, 0, 345, 345, 346,
+ 0, 346, 346, 346, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
+ 332, 332, 332, 332
+
} ;
static yy_state_type yy_last_accepting_state;
@@ -824,8 +838,8 @@ static int varCheck(int token, const char *name) {
return token;
}
-#line 827 "engines/director/lingo/lingo-lex.cpp"
-#line 828 "engines/director/lingo/lingo-lex.cpp"
+#line 841 "engines/director/lingo/lingo-lex.cpp"
+#line 842 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1048,7 +1062,7 @@ YY_DECL
#line 126 "engines/director/lingo/lingo-lex.l"
-#line 1051 "engines/director/lingo/lingo-lex.cpp"
+#line 1065 "engines/director/lingo/lingo-lex.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1076,13 +1090,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 317 )
+ if ( yy_current_state >= 333 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 316 );
+ while ( yy_current_state != 332 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1592,66 +1606,71 @@ YY_RULE_SETUP
case 55:
YY_RULE_SETUP
#line 401 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tSPRITE, "sprite"); }
+{ count(); return varCheck(tASSERTERROR, "scummvmAssertError"); }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 402 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWITH, "with"); }
+{ count(); return varCheck(tSPRITE, "sprite"); }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 403 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWITHIN, "within"); }
+{ count(); return varCheck(tWITH, "with"); }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 404 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWHEN, "when"); }
+{ count(); return varCheck(tWITHIN, "within"); }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 405 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWHILE, "while"); }
+{ count(); return varCheck(tWHEN, "when"); }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 406 "engines/director/lingo/lingo-lex.l"
-{ count(); return tWINDOW; }
+{ count(); return varCheck(tWHILE, "while"); }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 407 "engines/director/lingo/lingo-lex.l"
-{ count(); return varCheck(tWORD, "word"); }
+{ count(); return tWINDOW; }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 409 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEQ; }
+#line 408 "engines/director/lingo/lingo-lex.l"
+{ count(); return varCheck(tWORD, "word"); }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 410 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGE; }
+{ count(); return tNEQ; }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 411 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLE; }
+{ count(); return tGE; }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 412 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCONCAT; }
+{ count(); return tLE; }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 413 "engines/director/lingo/lingo-lex.l"
-{ count(); return tEQ; }
+{ count(); return tCONCAT; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 415 "engines/director/lingo/lingo-lex.l"
+#line 414 "engines/director/lingo/lingo-lex.l"
+{ count(); return tEQ; }
+ YY_BREAK
+case 68:
+YY_RULE_SETUP
+#line 416 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
@@ -1659,43 +1678,43 @@ YY_RULE_SETUP
return VARID;
}
YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 421 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.f = atof(yytext); return FLOAT; }
- YY_BREAK
case 69:
YY_RULE_SETUP
#line 422 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
+{ count(); yylval.f = atof(yytext); return FLOAT; }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 423 "engines/director/lingo/lingo-lex.l"
-{ count(); return *yytext; }
+{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
YY_BREAK
case 71:
-/* rule 71 can match eol */
YY_RULE_SETUP
#line 424 "engines/director/lingo/lingo-lex.l"
-{ count(); return '\n'; }
+{ count(); return *yytext; }
YY_BREAK
case 72:
+/* rule 72 can match eol */
YY_RULE_SETUP
#line 425 "engines/director/lingo/lingo-lex.l"
-{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
+{ count(); return '\n'; }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 426 "engines/director/lingo/lingo-lex.l"
-{ count(); }
+{ count(); yylval.s = cleanupString(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 428 "engines/director/lingo/lingo-lex.l"
+#line 427 "engines/director/lingo/lingo-lex.l"
+{ count(); }
+ YY_BREAK
+case 75:
+YY_RULE_SETUP
+#line 429 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1698 "engines/director/lingo/lingo-lex.cpp"
+#line 1717 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1994,7 +2013,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 317 )
+ if ( yy_current_state >= 333 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -2022,11 +2041,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 317 )
+ if ( yy_current_state >= 333 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 316);
+ yy_is_jam = (yy_current_state == 332);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2704,7 +2723,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 428 "engines/director/lingo/lingo-lex.l"
+#line 429 "engines/director/lingo/lingo-lex.l"
extern int yydebug;
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 97bb7015eb..3e5a3768d1 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -398,6 +398,7 @@ the{spc}+[[:alpha:]]+ {
}
then { count(); return tTHEN; }
to { count(); return varCheck(tTO, "to"); }
+scummvmAssertError { count(); return varCheck(tASSERTERROR, "scummvmAssertError"); }
sprite { count(); return varCheck(tSPRITE, "sprite"); }
with { count(); return varCheck(tWITH, "with"); }
within { count(); return varCheck(tWITHIN, "within"); }
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index db15d3ebea..2df093b4a3 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -156,6 +156,8 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
_indef = kStateNone;
_indef = kStateNone;
_immediateMode = false;
+ _expectError = false;
+ _caughtError = false;
_linenumber = _colnumber = _bytenumber = 0;
_lines[0] = _lines[1] = _lines[2] = nullptr;
@@ -661,6 +663,23 @@ void Lingo::executeHandler(const Common::String &name) {
execute(_pc);
}
+void Lingo::lingoError(const char *s, ...) {
+ char buf[1024];
+ va_list va;
+
+ va_start(va, s);
+ vsnprintf(buf, 1024, s, va);
+ va_end(va);
+
+ if (_expectError) {
+ warning("Caught Lingo error: %s", buf);
+ _caughtError = true;
+ } else {
+ warning("BUILDBOT: Uncaught Lingo error: %s", buf);
+ _abort = true;
+ }
+}
+
void Lingo::resetLingo() {
debugC(3, kDebugLingoExec, "Resetting Lingo!");
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 08eab3ac1c..1b6f289478 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -320,6 +320,8 @@ public:
void dropStack(int nargs);
void drop(uint num);
+ void lingoError(const char *s, ...);
+
void func_mci(const Common::String &name);
void func_mciwait(const Common::String &name);
void func_beep(int repeats);
@@ -408,6 +410,8 @@ public:
bool _abort;
bool _immediateMode;
+ bool _expectError;
+ bool _caughtError;
Common::Array<CFrame *> _callstack;
TheEntityHash _theEntities;
Commit: 74bb24c2e5a2991cc8dbc4a2103c8e8df63bbe1d
https://github.com/scummvm/scummvm/commit/74bb24c2e5a2991cc8dbc4a2103c8e8df63bbe1d
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T00:20:26-04:00
Commit Message:
DIRECTOR: LINGO: Error on missing cast member
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index e2ffc1ff64..adada4c892 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1632,7 +1632,7 @@ void LB::b_installMenu(int nargs) {
const Stxt *stxt = g_director->getCurrentMovie()->getStxt(castId);
if (!stxt) {
- warning("installMenu: Unknown cast number #%d", castId);
+ g_lingo->lingoError("installMenu: Unknown cast number #%d", castId);
return;
}
@@ -2317,22 +2317,14 @@ void LB::b_version(int nargs) {
///////////////////
void LB::b_cast(int nargs) {
Datum d = g_lingo->pop();
- if (d.type == STRING) {
- d = d.asCastId();
- }
-
- Datum res = d.asInt();
+ Datum res = d.asCastId();
res.type = CASTREF;
g_lingo->push(res);
}
void LB::b_field(int nargs) {
Datum d = g_lingo->pop();
- if (d.type == STRING) {
- d = d.asCastId();
- }
-
- Datum res = d.asInt();
+ Datum res = d.asCastId();
res.type = FIELDREF;
g_lingo->push(res);
}
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index e94ca7fb7d..8d156c46ed 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1478,7 +1478,7 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
if (field == kTheLoaded) {
d = 0;
} else {
- warning("Lingo::getTheCast(): CastMember %s not found", id1.asString().c_str());
+ g_lingo->lingoError("Lingo::getTheCast(): CastMember %s not found", id1.asString().c_str());
}
return d;
}
@@ -1504,7 +1504,7 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) {
CastMember *member = movie->getCastMember(id);
if (!member) {
- warning("Lingo::setTheCast(): CastMember %d not found", id);
+ g_lingo->lingoError("Lingo::setTheCast(): CastMember %d not found", id);
return;
}
@@ -1532,12 +1532,12 @@ Datum Lingo::getTheField(Datum &id1, int field) {
if (field == kTheLoaded) {
d = 0;
} else {
- warning("Lingo::getTheField(): CastMember %d not found", id);
+ g_lingo->lingoError("Lingo::getTheField(): CastMember %d not found", id);
}
return d;
}
if (member->_type != kCastText) {
- warning("Lingo::getTheField(): CastMember %d is not a field", id);
+ g_lingo->lingoError("Lingo::getTheField(): CastMember %d is not a field", id);
return d;
}
@@ -1562,11 +1562,11 @@ void Lingo::setTheField(Datum &id1, int field, Datum &d) {
CastMember *member = movie->getCastMember(id);
if (!member) {
- warning("Lingo::setTheField(): CastMember %d not found", id);
+ g_lingo->lingoError("Lingo::setTheField(): CastMember %d not found", id);
return;
}
if (member->_type != kCastText) {
- warning("Lingo::setTheField(): CastMember %d is not a field", id);
+ g_lingo->lingoError("Lingo::setTheField(): CastMember %d is not a field", id);
return;
}
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 2df093b4a3..28ff1ef2f4 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -1033,7 +1033,7 @@ int Datum::asCastId() const {
if (member)
return member->getID();
- warning("Datum::asCastId: reference to non-existent cast member: %s", asString().c_str());
+ g_lingo->lingoError("Datum::asCastId: reference to non-existent cast member: %s", asString().c_str());
return 0;
}
break;
@@ -1051,9 +1051,6 @@ int Datum::asCastId() const {
error("Datum::asCastId: unsupported cast ID type %s", type2str());
}
- if (!g_director->getCurrentMovie()->getCastMember(castId))
- warning("Datum::asCastId: reference to non-existent cast ID: %d", castId);
-
return castId;
}
Commit: 1e476e144647b0bcc37e1cd19a303581b6edc130
https://github.com/scummvm/scummvm/commit/1e476e144647b0bcc37e1cd19a303581b6edc130
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T00:20:26-04:00
Commit Message:
DIRECTOR: LINGO: Assert cast member error in tests
Changed paths:
engines/director/lingo/tests/reference.lingo
diff --git a/engines/director/lingo/tests/reference.lingo b/engines/director/lingo/tests/reference.lingo
index ee4bffe762..a0e06f2682 100644
--- a/engines/director/lingo/tests/reference.lingo
+++ b/engines/director/lingo/tests/reference.lingo
@@ -27,8 +27,8 @@ scummvmAssert(not the loaded of cast 500)
set test to cast 500
scummvmAssert(not the loaded of test)
-put the loaded of cast "fake" -- should error
-set test to cast "fake" -- should error
+scummvmAssertError put the loaded of cast "fake"
+scummvmAssertError set test to cast "fake"
-- user-defined handlers/factories w/ reference name
-- (mainly to test grammar, so no factory definition)
More information about the Scummvm-git-logs
mailing list