From eb179c52416c9f24f61504671d205efa340379b3 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 8 Feb 2017 21:30:29 +0100 Subject: DIRECTOR: Lingo: Documented D4 "Parent scripts" Lingo --- engines/director/lingo/lingo-builtins.cpp | 22 + engines/director/lingo/lingo-code.cpp | 9 + engines/director/lingo/lingo-gr.cpp | 1250 +++++++++++++++-------------- engines/director/lingo/lingo-gr.h | 12 +- engines/director/lingo/lingo-gr.y | 11 +- engines/director/lingo/lingo-lex.cpp | 506 ++++++------ engines/director/lingo/lingo-lex.l | 1 + engines/director/lingo/lingo.h | 4 + 8 files changed, 949 insertions(+), 866 deletions(-) (limited to 'engines/director') diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp index 0172f92556..9e95fcbd33 100644 --- a/engines/director/lingo/lingo-builtins.cpp +++ b/engines/director/lingo/lingo-builtins.cpp @@ -127,6 +127,7 @@ static struct BuiltinProto { { "symbolp", Lingo::b_symbolp, 1, 1, true }, // D2 f // Misc { "alert", Lingo::b_alert, 1, 1, false }, // D2 c + { "birth", Lingo::b_birth, -1,0, false }, // D4 f { "cursor", Lingo::b_cursor, 1, 1, false }, // D2 c { "framesToHMS", Lingo::b_framesToHMS, 4, 4, false }, // D3 { "HMStoFrames", Lingo::b_HMStoFrames, 4, 4, false }, // D3 @@ -182,6 +183,7 @@ static struct BuiltinProto { { "moveToBack", Lingo::b_moveToBack, 1, 1, false }, // D4 c { "moveToFront", Lingo::b_moveToFront, 1, 1, false }, // D4 c // Constants + { "ancestor", Lingo::b_ancestor, 0, 0, false }, // D4 { "backspace", Lingo::b_backspace, 0, 0, false }, // D2 { "empty", Lingo::b_empty, 0, 0, false }, // D2 { "enter", Lingo::b_enter, 0, 0, false }, // D2 @@ -195,6 +197,7 @@ static struct BuiltinProto { { "cast", Lingo::b_cast, 1, 1, false }, // D4 f { "field", Lingo::b_field, 1, 1, false }, // D3 f { "me", Lingo::b_me, -1,0, false }, // D3 + { "script", Lingo::b_script, 1, 1, false }, // D4 f { "window", Lingo::b_window, 1, 1, false }, // D4 f { 0, 0, 0, 0, false } @@ -211,6 +214,7 @@ static const char *builtinFunctions[] = { "abs", "atan", "backspace", + "birth", "cast", "cos", "count", @@ -250,6 +254,7 @@ static const char *builtinFunctions[] = { "rollOver", "quote", "return", + "script", "sin", "sqrt", "soundBusy", @@ -964,6 +969,14 @@ void Lingo::b_alert(int nargs) { delete d.u.s; } +void Lingo::b_birth(int nargs) { + g_lingo->printSTUBWithArglist("b_birth", nargs); + + g_lingo->dropStack(nargs); + + g_lingo->push(Datum(0)); +} + void Lingo::b_cursor(int nargs) { Datum d = g_lingo->pop(); d.toInt(); @@ -1263,6 +1276,11 @@ void Lingo::b_soundStop(int nargs) { /////////////////// // Constants /////////////////// +void Lingo::b_ancestor(int nargs) { + warning("STUB: b_ancestor"); + g_lingo->push(Datum(0)); +} + void Lingo::b_backspace(int nargs) { g_lingo->push(Datum(new Common::String("\b"))); } @@ -1366,6 +1384,10 @@ void Lingo::b_me(int nargs) { g_lingo->dropStack(nargs); } +void Lingo::b_script(int nargs) { + warning("STUB: b_script"); +} + void Lingo::b_window(int nargs) { g_lingo->printSTUBWithArglist("b_window", nargs); g_lingo->dropStack(nargs); diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index 9e737176a8..04310d9e71 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -115,6 +115,7 @@ static struct FuncDescr { { Lingo::c_call, "c_call", "si" }, { Lingo::c_procret, "c_procret", "" }, { Lingo::c_global, "c_global", "s" }, + { Lingo::c_property, "c_property", "s" }, { Lingo::c_instance, "c_instance", "s" }, { Lingo::c_open, "c_open", "" }, { 0, 0, 0 } @@ -1140,6 +1141,14 @@ void Lingo::c_global() { delete s; } +void Lingo::c_property() { + Common::String name((char *)&(*g_lingo->_currentScript)[g_lingo->_pc]); + + g_lingo->_pc += g_lingo->calcStringAlignment(name.c_str()); + + warning("STUB: c_property()"); +} + void Lingo::c_instance() { Common::String name((char *)&(*g_lingo->_currentScript)[g_lingo->_pc]); diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index 2bafc1e513..f59cae743a 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -146,8 +146,9 @@ tINTERSECTS = 335, tWITHIN = 336, tTELL = 337, - tON = 338, - tME = 339 + tPROPERTY = 338, + tON = 339, + tME = 340 }; #endif /* Tokens. */ @@ -231,8 +232,9 @@ #define tINTERSECTS 335 #define tWITHIN 336 #define tTELL 337 -#define tON 338 -#define tME 339 +#define tPROPERTY 338 +#define tON 339 +#define tME 340 @@ -300,7 +302,7 @@ typedef union YYSTYPE Common::Array *arr; } /* Line 193 of yacc.c. */ -#line 304 "engines/director/lingo/lingo-gr.cpp" +#line 306 "engines/director/lingo/lingo-gr.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -313,7 +315,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 317 "engines/director/lingo/lingo-gr.cpp" +#line 319 "engines/director/lingo/lingo-gr.cpp" #ifdef short # undef short @@ -526,22 +528,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 116 +#define YYFINAL 119 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1602 +#define YYLAST 1668 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 100 +#define YYNTOKENS 101 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 42 +#define YYNNTS 43 /* YYNRULES -- Number of rules. */ -#define YYNRULES 155 +#define YYNRULES 158 /* YYNRULES -- Number of states. */ -#define YYNSTATES 341 +#define YYNSTATES 346 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 339 +#define YYMAXUTOK 340 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -550,15 +552,15 @@ union yyalloc static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 92, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 93, 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, 91, 86, 2, - 93, 94, 89, 87, 99, 88, 2, 90, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 92, 87, 2, + 94, 95, 90, 88, 100, 89, 2, 91, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 96, 85, 95, 2, 2, 2, 2, 2, 2, 2, + 97, 86, 96, 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, 97, 2, 98, 2, 2, 2, 2, 2, 2, + 2, 98, 2, 99, 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, @@ -582,7 +584,8 @@ static const yytype_uint8 yytranslate[] = 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 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 + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85 }; #if YYDEBUG @@ -600,77 +603,78 @@ static const yytype_uint16 yyprhs[] = 280, 284, 288, 292, 296, 300, 304, 308, 312, 316, 320, 324, 327, 331, 335, 339, 343, 346, 349, 353, 357, 362, 367, 372, 379, 384, 391, 396, 403, 408, - 415, 418, 420, 422, 425, 427, 430, 433, 435, 438, - 441, 443, 446, 451, 458, 463, 466, 470, 472, 476, - 478, 482, 485, 488, 491, 494, 498, 501, 504, 506, - 510, 513, 516, 519, 523, 526, 527, 531, 532, 541, - 544, 545, 554, 555, 556, 567, 568, 570, 574, 579, - 580, 583, 584, 586, 590, 592 + 415, 418, 420, 422, 425, 427, 430, 433, 436, 438, + 441, 444, 446, 449, 454, 461, 466, 469, 473, 475, + 479, 481, 485, 487, 491, 494, 497, 500, 503, 507, + 510, 513, 515, 519, 522, 525, 528, 532, 535, 536, + 540, 541, 550, 553, 554, 563, 564, 565, 576, 577, + 579, 583, 588, 589, 592, 593, 595, 599, 601 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 101, 0, -1, 101, 102, 103, -1, 103, -1, 1, - 102, -1, 92, -1, -1, 132, -1, 139, -1, 106, - -1, 45, 123, 38, 24, -1, 45, 123, 70, 123, - -1, 45, 123, 71, 123, -1, 47, 24, 85, 123, - -1, 47, 12, 85, 123, -1, 47, 13, 123, 85, - 123, -1, 47, 24, 49, 123, -1, 47, 12, 49, - 123, -1, 47, 13, 123, 49, 123, -1, 123, -1, - 124, -1, 105, -1, 107, -1, 114, 93, 113, 94, - 120, 119, 28, -1, 115, 85, 123, 119, 49, 123, - 119, 120, 119, 28, -1, 115, 85, 123, 119, 30, - 49, 123, 119, 120, 119, 28, -1, 121, 105, 119, - -1, 122, 123, 102, 120, 119, 28, -1, 122, 123, - 49, 123, -1, 116, 113, 48, 102, 120, 119, 28, - -1, 116, 113, 48, 102, 120, 119, 53, 120, 119, - 28, -1, 116, 113, 48, 102, 120, 119, 118, 109, - 119, 28, -1, 116, 113, 48, 118, 105, 119, -1, - 116, 113, 48, 118, 105, 119, 53, 118, 105, 119, - -1, 116, 113, 48, 118, 105, 119, 110, 119, 108, - 119, -1, -1, 53, 118, 105, -1, 109, 112, -1, - 112, -1, 110, 111, -1, 111, -1, 117, 113, 48, - 118, 106, 119, -1, 110, -1, 117, 113, 48, 118, - 120, 119, -1, 123, -1, 123, 85, 123, -1, 93, - 113, 94, -1, 46, 52, -1, 46, 51, 24, -1, - 37, -1, 32, -1, -1, -1, -1, 120, 102, -1, - 120, 106, -1, 50, 24, 48, -1, 82, -1, 11, + 102, 0, -1, 102, 103, 104, -1, 104, -1, 1, + 103, -1, 93, -1, -1, 134, -1, 141, -1, 107, + -1, 45, 124, 38, 24, -1, 45, 124, 70, 124, + -1, 45, 124, 71, 124, -1, 47, 24, 86, 124, + -1, 47, 12, 86, 124, -1, 47, 13, 124, 86, + 124, -1, 47, 24, 49, 124, -1, 47, 12, 49, + 124, -1, 47, 13, 124, 49, 124, -1, 124, -1, + 125, -1, 106, -1, 108, -1, 115, 94, 114, 95, + 121, 120, 28, -1, 116, 86, 124, 120, 49, 124, + 120, 121, 120, 28, -1, 116, 86, 124, 120, 30, + 49, 124, 120, 121, 120, 28, -1, 122, 106, 120, + -1, 123, 124, 103, 121, 120, 28, -1, 123, 124, + 49, 124, -1, 117, 114, 48, 103, 121, 120, 28, + -1, 117, 114, 48, 103, 121, 120, 53, 121, 120, + 28, -1, 117, 114, 48, 103, 121, 120, 119, 110, + 120, 28, -1, 117, 114, 48, 119, 106, 120, -1, + 117, 114, 48, 119, 106, 120, 53, 119, 106, 120, + -1, 117, 114, 48, 119, 106, 120, 111, 120, 109, + 120, -1, -1, 53, 119, 106, -1, 110, 113, -1, + 113, -1, 111, 112, -1, 112, -1, 118, 114, 48, + 119, 107, 120, -1, 111, -1, 118, 114, 48, 119, + 121, 120, -1, 124, -1, 124, 86, 124, -1, 94, + 114, 95, -1, 46, 52, -1, 46, 51, 24, -1, + 37, -1, 32, -1, -1, -1, -1, 121, 103, -1, + 121, 107, -1, 50, 24, 48, -1, 82, -1, 11, -1, 14, -1, 27, -1, 25, -1, 22, -1, 23, - 123, -1, 24, 93, 140, 94, -1, 24, -1, 12, - -1, 13, 123, -1, 104, -1, 123, 87, 123, -1, - 123, 88, 123, -1, 123, 89, 123, -1, 123, 90, - 123, -1, 123, 69, 123, -1, 123, 95, 123, -1, - 123, 96, 123, -1, 123, 65, 123, -1, 123, 60, - 123, -1, 123, 61, 123, -1, 123, 66, 123, -1, - 123, 67, 123, -1, 68, 123, -1, 123, 86, 123, - -1, 123, 72, 123, -1, 123, 73, 123, -1, 123, - 74, 123, -1, 87, 123, -1, 88, 123, -1, 93, - 123, 94, -1, 97, 140, 98, -1, 79, 123, 80, - 123, -1, 79, 123, 81, 123, -1, 75, 123, 43, - 123, -1, 75, 123, 49, 123, 43, 123, -1, 76, - 123, 43, 123, -1, 76, 123, 49, 123, 43, 123, - -1, 77, 123, 43, 123, -1, 77, 123, 49, 123, - 43, 123, -1, 78, 123, 43, 123, -1, 78, 123, - 49, 123, 43, 123, -1, 45, 123, -1, 127, -1, - 130, -1, 33, 46, -1, 33, -1, 35, 125, -1, - 59, 126, -1, 16, -1, 18, 123, -1, 17, 123, - -1, 17, -1, 19, 141, -1, 84, 93, 24, 94, - -1, 84, 93, 24, 99, 140, 94, -1, 56, 123, - 51, 123, -1, 56, 123, -1, 20, 24, 140, -1, - 24, -1, 125, 99, 24, -1, 24, -1, 126, 99, - 24, -1, 36, 39, -1, 36, 42, -1, 36, 44, - -1, 36, 128, -1, 36, 128, 129, -1, 36, 129, - -1, 34, 123, -1, 123, -1, 43, 41, 123, -1, - 41, 123, -1, 57, 58, -1, 57, 128, -1, 57, - 128, 129, -1, 57, 129, -1, -1, 29, 131, 140, - -1, -1, 40, 24, 133, 118, 137, 102, 138, 120, - -1, 54, 24, -1, -1, 55, 24, 134, 118, 137, - 102, 138, 120, -1, -1, -1, 83, 24, 135, 118, - 136, 137, 102, 138, 120, 28, -1, -1, 24, -1, - 137, 99, 24, -1, 137, 102, 99, 24, -1, -1, - 24, 141, -1, -1, 123, -1, 140, 99, 123, -1, - 123, -1, 141, 99, 123, -1 + 124, -1, 24, 94, 142, 95, -1, 24, -1, 12, + -1, 13, 124, -1, 105, -1, 124, 88, 124, -1, + 124, 89, 124, -1, 124, 90, 124, -1, 124, 91, + 124, -1, 124, 69, 124, -1, 124, 96, 124, -1, + 124, 97, 124, -1, 124, 65, 124, -1, 124, 60, + 124, -1, 124, 61, 124, -1, 124, 66, 124, -1, + 124, 67, 124, -1, 68, 124, -1, 124, 87, 124, + -1, 124, 72, 124, -1, 124, 73, 124, -1, 124, + 74, 124, -1, 88, 124, -1, 89, 124, -1, 94, + 124, 95, -1, 98, 142, 99, -1, 79, 124, 80, + 124, -1, 79, 124, 81, 124, -1, 75, 124, 43, + 124, -1, 75, 124, 49, 124, 43, 124, -1, 76, + 124, 43, 124, -1, 76, 124, 49, 124, 43, 124, + -1, 77, 124, 43, 124, -1, 77, 124, 49, 124, + 43, 124, -1, 78, 124, 43, 124, -1, 78, 124, + 49, 124, 43, 124, -1, 45, 124, -1, 129, -1, + 132, -1, 33, 46, -1, 33, -1, 35, 126, -1, + 83, 127, -1, 59, 128, -1, 16, -1, 18, 124, + -1, 17, 124, -1, 17, -1, 19, 143, -1, 85, + 94, 24, 95, -1, 85, 94, 24, 100, 142, 95, + -1, 56, 124, 51, 124, -1, 56, 124, -1, 20, + 24, 142, -1, 24, -1, 126, 100, 24, -1, 24, + -1, 127, 100, 24, -1, 24, -1, 128, 100, 24, + -1, 36, 39, -1, 36, 42, -1, 36, 44, -1, + 36, 130, -1, 36, 130, 131, -1, 36, 131, -1, + 34, 124, -1, 124, -1, 43, 41, 124, -1, 41, + 124, -1, 57, 58, -1, 57, 130, -1, 57, 130, + 131, -1, 57, 131, -1, -1, 29, 133, 142, -1, + -1, 40, 24, 135, 119, 139, 103, 140, 121, -1, + 54, 24, -1, -1, 55, 24, 136, 119, 139, 103, + 140, 121, -1, -1, -1, 84, 24, 137, 119, 138, + 139, 103, 140, 121, 28, -1, -1, 24, -1, 139, + 100, 24, -1, 139, 103, 100, 24, -1, -1, 24, + 143, -1, -1, 124, -1, 142, 100, 124, -1, 124, + -1, 143, 100, 124, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -686,12 +690,12 @@ static const yytype_uint16 yyrline[] = 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 473, 474, 475, 476, 477, 479, 480, 481, 484, 487, - 490, 493, 494, 495, 496, 497, 498, 501, 502, 505, - 506, 517, 518, 519, 520, 523, 526, 531, 532, 535, - 536, 539, 540, 543, 546, 549, 549, 579, 579, 585, - 588, 588, 593, 594, 593, 604, 605, 606, 607, 610, - 614, 622, 623, 624, 627, 628 + 473, 474, 475, 476, 477, 479, 480, 481, 482, 485, + 488, 491, 494, 495, 496, 497, 498, 499, 502, 503, + 506, 507, 510, 511, 522, 523, 524, 525, 528, 531, + 536, 537, 540, 541, 544, 545, 548, 551, 554, 554, + 584, 584, 590, 593, 593, 598, 599, 598, 609, 610, + 611, 612, 615, 619, 627, 628, 629, 632, 633 }; #endif @@ -712,15 +716,16 @@ static const char *const yytname[] = "tPLAY", "tDONE", "tINSTANCE", "tGE", "tLE", "tGT", "tLT", "tEQ", "tNEQ", "tAND", "tOR", "tNOT", "tMOD", "tAFTER", "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE", - "tINTERSECTS", "tWITHIN", "tTELL", "tON", "tME", "'='", "'&'", "'+'", - "'-'", "'*'", "'/'", "'%'", "'\\n'", "'('", "')'", "'>'", "'<'", "'['", - "']'", "','", "$accept", "program", "nl", "programline", "asgn", - "stmtoneliner", "stmt", "ifstmt", "elsestmtoneliner", "elseifstmt", - "elseifstmtoneliner", "elseifstmtoneliner1", "elseifstmt1", "cond", - "repeatwhile", "repeatwith", "if", "elseif", "begin", "end", "stmtlist", - "when", "tell", "expr", "proc", "globallist", "instancelist", "gotofunc", - "gotoframe", "gotomovie", "playfunc", "@1", "defn", "@2", "@3", "@4", - "@5", "argdef", "argstore", "macro", "arglist", "nonemptyarglist", 0 + "tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tME", "'='", + "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'\\n'", "'('", "')'", "'>'", + "'<'", "'['", "']'", "','", "$accept", "program", "nl", "programline", + "asgn", "stmtoneliner", "stmt", "ifstmt", "elsestmtoneliner", + "elseifstmt", "elseifstmtoneliner", "elseifstmtoneliner1", "elseifstmt1", + "cond", "repeatwhile", "repeatwith", "if", "elseif", "begin", "end", + "stmtlist", "when", "tell", "expr", "proc", "globallist", "propertylist", + "instancelist", "gotofunc", "gotoframe", "gotomovie", "playfunc", "@1", + "defn", "@2", "@3", "@4", "@5", "argdef", "argstore", "macro", "arglist", + "nonemptyarglist", 0 }; #endif @@ -737,30 +742,31 @@ static const yytype_uint16 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, 61, 38, 43, 45, 42, - 47, 37, 10, 40, 41, 62, 60, 91, 93, 44 + 335, 336, 337, 338, 339, 340, 61, 38, 43, 45, + 42, 47, 37, 10, 40, 41, 62, 60, 91, 93, + 44 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 100, 101, 101, 101, 102, 103, 103, 103, 103, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 105, - 105, 106, 106, 106, 106, 106, 106, 106, 106, 107, - 107, 107, 107, 107, 107, 108, 108, 109, 109, 110, - 110, 111, 112, 112, 113, 113, 113, 114, 115, 116, - 117, 118, 119, 120, 120, 120, 121, 122, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 0, 101, 102, 102, 102, 103, 104, 104, 104, 104, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 106, + 106, 107, 107, 107, 107, 107, 107, 107, 107, 108, + 108, 108, 108, 108, 108, 109, 109, 110, 110, 111, + 111, 112, 113, 113, 114, 114, 114, 115, 116, 117, + 118, 119, 120, 121, 121, 121, 122, 123, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 125, 125, 126, - 126, 127, 127, 127, 127, 127, 127, 128, 128, 129, - 129, 130, 130, 130, 130, 131, 130, 133, 132, 132, - 134, 132, 135, 136, 132, 137, 137, 137, 137, 138, - 139, 140, 140, 140, 141, 141 + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, + 127, 127, 128, 128, 129, 129, 129, 129, 129, 129, + 130, 130, 131, 131, 132, 132, 132, 132, 133, 132, + 135, 134, 134, 136, 134, 137, 138, 134, 139, 139, + 139, 139, 140, 141, 142, 142, 142, 143, 143 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -776,12 +782,12 @@ static const yytype_uint8 yyr2[] = 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 2, 3, 3, 4, 4, 4, 6, 4, 6, 4, 6, 4, 6, - 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, - 1, 2, 4, 6, 4, 2, 3, 1, 3, 1, - 3, 2, 2, 2, 2, 3, 2, 2, 1, 3, - 2, 2, 2, 3, 2, 0, 3, 0, 8, 2, - 0, 8, 0, 0, 10, 0, 1, 3, 4, 0, - 2, 0, 1, 3, 1, 3 + 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, + 2, 1, 2, 4, 6, 4, 2, 3, 1, 3, + 1, 3, 1, 3, 2, 2, 2, 2, 3, 2, + 2, 1, 3, 2, 2, 2, 3, 2, 0, 3, + 0, 8, 2, 0, 8, 0, 0, 10, 0, 1, + 3, 4, 0, 2, 0, 1, 3, 1, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -789,103 +795,103 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 58, 66, 0, 59, 107, 110, 0, 0, - 0, 62, 0, 65, 61, 60, 135, 104, 0, 0, + 0, 0, 58, 66, 0, 59, 108, 111, 0, 0, + 0, 62, 0, 65, 61, 60, 138, 104, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, - 0, 0, 0, 151, 0, 3, 68, 21, 9, 22, - 0, 0, 0, 0, 0, 19, 20, 101, 102, 7, - 8, 5, 4, 65, 0, 67, 109, 108, 154, 111, - 151, 63, 151, 150, 151, 103, 117, 105, 0, 121, - 0, 122, 0, 123, 128, 124, 126, 137, 100, 0, - 47, 0, 0, 0, 0, 139, 140, 115, 131, 132, - 134, 119, 106, 81, 0, 0, 0, 0, 0, 142, - 0, 86, 87, 0, 152, 0, 1, 6, 0, 0, - 0, 0, 44, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 154, 0, 3, 68, 21, 9, + 22, 0, 0, 0, 0, 0, 19, 20, 101, 102, + 7, 8, 5, 4, 65, 0, 67, 110, 109, 157, + 112, 154, 63, 154, 153, 154, 103, 118, 105, 0, + 124, 0, 125, 0, 126, 131, 127, 129, 140, 100, + 0, 47, 0, 0, 0, 0, 142, 143, 116, 134, + 135, 137, 122, 107, 81, 0, 0, 0, 0, 0, + 120, 106, 145, 0, 86, 87, 0, 155, 0, 1, + 6, 0, 0, 0, 0, 44, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 151, 0, 0, 116, 152, 0, 136, 0, 127, - 130, 0, 125, 51, 0, 0, 0, 48, 0, 0, - 0, 0, 0, 56, 51, 0, 133, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, - 88, 89, 0, 2, 0, 52, 0, 0, 51, 0, - 26, 0, 53, 77, 78, 76, 79, 80, 73, 83, - 84, 85, 82, 69, 70, 71, 72, 74, 75, 155, - 64, 118, 129, 145, 10, 11, 12, 17, 14, 0, - 0, 16, 13, 145, 114, 120, 92, 0, 94, 0, - 96, 0, 98, 0, 90, 91, 143, 112, 151, 153, - 53, 0, 46, 53, 0, 45, 28, 52, 146, 0, - 18, 15, 0, 0, 0, 0, 0, 145, 0, 52, - 0, 0, 52, 52, 54, 55, 0, 0, 149, 149, - 93, 95, 97, 99, 0, 113, 0, 0, 52, 51, - 32, 27, 147, 0, 53, 53, 149, 23, 52, 53, - 29, 53, 0, 50, 51, 52, 40, 0, 148, 138, - 141, 53, 53, 52, 52, 52, 42, 38, 0, 0, - 39, 35, 0, 0, 52, 0, 0, 37, 0, 0, - 52, 51, 52, 51, 144, 0, 24, 30, 31, 51, - 33, 0, 34, 0, 25, 53, 36, 52, 52, 41, - 43 + 0, 0, 0, 0, 154, 0, 0, 117, 155, 0, + 139, 0, 130, 133, 0, 128, 51, 0, 0, 0, + 48, 0, 0, 0, 0, 0, 56, 51, 0, 136, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 0, 88, 89, 0, 2, 0, 52, + 0, 0, 51, 0, 26, 0, 53, 77, 78, 76, + 79, 80, 73, 83, 84, 85, 82, 69, 70, 71, + 72, 74, 75, 158, 64, 119, 132, 148, 10, 11, + 12, 17, 14, 0, 0, 16, 13, 148, 115, 123, + 92, 0, 94, 0, 96, 0, 98, 0, 90, 91, + 121, 146, 113, 154, 156, 53, 0, 46, 53, 0, + 45, 28, 52, 149, 0, 18, 15, 0, 0, 0, + 0, 0, 148, 0, 52, 0, 0, 52, 52, 54, + 55, 0, 0, 152, 152, 93, 95, 97, 99, 0, + 114, 0, 0, 52, 51, 32, 27, 150, 0, 53, + 53, 152, 23, 52, 53, 29, 53, 0, 50, 51, + 52, 40, 0, 151, 141, 144, 53, 53, 52, 52, + 52, 42, 38, 0, 0, 39, 35, 0, 0, 52, + 0, 0, 37, 0, 0, 52, 51, 52, 51, 147, + 0, 24, 30, 31, 51, 33, 0, 34, 0, 25, + 53, 36, 52, 52, 41, 43 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 44, 264, 45, 46, 47, 265, 49, 322, 305, - 306, 296, 307, 121, 50, 51, 52, 297, 213, 190, - 247, 53, 54, 55, 56, 77, 102, 57, 85, 86, - 58, 74, 59, 153, 164, 178, 257, 249, 284, 60, - 146, 69 + -1, 45, 269, 46, 47, 48, 270, 50, 327, 310, + 311, 301, 312, 124, 51, 52, 53, 302, 217, 194, + 252, 54, 55, 56, 57, 78, 111, 103, 58, 86, + 87, 59, 75, 60, 156, 167, 182, 262, 254, 289, + 61, 149, 70 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -278 +#define YYPACT_NINF -264 static const yytype_int16 yypact[] = { - 294, -36, -278, -278, 902, -278, -278, 902, 902, 902, - 7, -278, 902, 960, -278, -278, -278, 18, 46, 807, - -278, 54, 902, 52, 48, 63, 66, 68, 902, 865, - 70, 902, 902, 902, 902, 902, 902, -278, 73, -17, - 902, 902, 902, 902, 6, -278, -278, -278, -278, -278, - 8, 14, 997, 729, 902, 1506, -278, -278, -278, -278, - -278, -278, -278, 29, 902, 1506, 1506, 1506, 1506, 17, - 902, 1506, 902, 17, 902, -278, -278, 24, 902, -278, - 902, -278, 77, -278, 1506, 25, -278, -278, 1026, 101, - -278, -45, 902, -38, 95, -278, -278, 1346, -278, 25, - -278, -278, 49, -13, 1058, 1090, 1122, 1154, 1378, -278, - 121, -13, -13, 1442, 1506, 12, -278, 381, 997, 902, - 997, 102, 1474, -278, 706, 902, 902, 902, 902, 902, - 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, - 902, 902, 1026, 902, 50, 1442, -78, 50, 127, 1506, - 1506, 902, -278, -278, 130, 902, 902, -278, 902, 902, - 1314, 902, 902, -278, -278, 902, -278, 131, 902, 902, - 902, 902, 902, 902, 902, 902, 902, 902, -278, -77, - -278, -278, 902, -278, 64, 1506, 67, 1410, -36, 902, - -278, 902, -278, 19, 19, 19, -13, -13, -13, 1506, - 19, 19, 197, 140, 140, -13, -13, 1506, 1506, 1506, - -278, -278, 1506, 141, -278, 1506, 1506, 1506, 1506, 902, - 902, 1506, 1506, 141, 1506, -278, 1506, 1186, 1506, 1218, - 1506, 1250, 1506, 1282, 1506, 1506, -278, -278, 902, 1506, - -278, 9, -278, -278, 729, 1506, 1506, 555, -278, -73, - 1506, 1506, -73, 902, 902, 902, 902, 141, -10, 555, - 115, 902, 555, -278, -278, -278, 139, 155, 82, 82, - 1506, 1506, 1506, 1506, -73, -278, 154, 902, 1506, -3, - -5, -278, -278, 160, -278, -278, 82, -278, 1506, -278, - -278, -278, 153, -278, -278, 153, -278, 997, -278, 555, - 555, -278, -278, 555, 555, 153, 153, -278, 997, 729, - -278, 134, 146, 468, 555, 161, 168, -278, 171, 152, - -278, -278, -278, -278, -278, 176, -278, -278, -278, -278, - -278, 729, -278, 642, -278, 642, -278, -278, 555, -278, - -278 + 330, -86, -264, -264, 928, -264, -264, 928, 928, 928, + -3, -264, 928, 967, -264, -264, -264, -21, 7, 849, + -264, 31, 928, 38, 40, 37, 43, 59, 928, 888, + 61, 928, 928, 928, 928, 928, 928, -264, 63, 69, + 3, 928, 928, 928, 928, 2, -264, -264, -264, -264, + -264, 4, 13, 1007, 770, 928, 1571, -264, -264, -264, + -264, -264, -264, -264, 6, 928, 1571, 1571, 1571, 1571, + 5, 928, 1571, 928, 5, 928, -264, -264, 9, 928, + -264, 928, -264, 62, -264, 1571, 32, -264, -264, 1042, + 80, -264, -48, 928, -45, 64, -264, -264, 1406, -264, + 32, -264, -264, 10, -57, 1075, 1108, 1141, 1174, 1439, + -264, 11, -264, 83, -57, -57, 1505, 1571, -8, -264, + 418, 1007, 928, 1007, 65, 1538, -264, 1339, 928, 928, + 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, + 928, 928, 928, 928, 928, 1042, 928, 14, 1505, -78, + 14, 91, 1571, 1571, 928, -264, -264, 92, 928, 928, + -264, 928, 928, 1373, 928, 928, -264, -264, 928, -264, + 93, 928, 928, 928, 928, 928, 928, 928, 928, 928, + 928, 97, -264, -30, -264, -264, 928, -264, 30, 1571, + 33, 1472, -86, 928, -264, 928, -264, 123, 123, 123, + -57, -57, -57, 1571, 123, 123, 229, 238, 238, -57, + -57, 1571, 1571, 1571, -264, -264, 1571, 102, -264, 1571, + 1571, 1571, 1571, 928, 928, 1571, 1571, 102, 1571, -264, + 1571, 1207, 1571, 1240, 1571, 1273, 1571, 1306, 1571, 1571, + -264, -264, -264, 928, 1571, -264, 29, -264, -264, 770, + 1571, 1571, 594, -264, -12, 1571, 1571, -12, 928, 928, + 928, 928, 102, -16, 594, 78, 928, 594, -264, -264, + -264, 118, 124, 49, 49, 1571, 1571, 1571, 1571, -12, + -264, 125, 928, 1571, -2, -5, -264, -264, 127, -264, + -264, 49, -264, 1571, -264, -264, -264, 122, -264, -264, + 122, -264, 1007, -264, 594, 594, -264, -264, 594, 594, + 122, 122, -264, 1007, 770, -264, 103, 109, 506, 594, + 130, 133, -264, 136, 119, -264, -264, -264, -264, -264, + 140, -264, -264, -264, -264, -264, 770, -264, 682, -264, + 682, -264, -264, 594, -264, -264 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -278, -278, 23, 71, -278, -51, 0, -278, -278, -278, - -75, -226, -97, -117, -278, -278, -278, -277, -126, -61, - -189, -278, -278, 1, -278, -278, -278, -278, 181, -22, - -278, -278, -278, -278, -278, -278, -278, -211, -212, -278, - -25, 201 + -264, -264, 23, 51, -264, -51, 0, -264, -264, -264, + -103, -242, -127, -105, -264, -264, -264, -248, -96, -19, + -188, -264, -264, 1, -264, -264, -264, -264, -264, 155, + -23, -264, -264, -264, -264, -264, -264, -264, -215, -263, + -264, -25, 172 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -895,332 +901,344 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -7 static const yytype_int16 yytable[] = { - 48, 184, 123, 186, 158, 65, 116, 100, 66, 67, - 68, 161, 252, 71, 68, 308, 210, 237, 115, 61, - 84, 182, 238, 88, 62, 290, 267, 293, 308, 97, - 84, 70, 103, 104, 105, 106, 107, 108, 223, 260, - 159, 111, 112, 113, 114, 144, 274, 162, 294, 147, - 291, 259, 236, 122, 262, 124, 61, 285, 261, 131, - 91, 92, 244, 152, 75, 142, 80, 117, 82, 310, - 76, 114, 93, 145, 301, 114, 110, 166, 87, 149, - 310, 150, 139, 140, 275, 128, 129, 94, 130, 182, - 95, 131, 96, 160, 101, 299, 300, 109, 61, 119, - 303, 118, 304, 89, 90, 134, 135, 136, 137, 138, - 181, 182, 313, 314, 139, 140, 143, 48, 151, 122, - 185, 187, 141, 148, 241, 157, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 114, 163, 209, 179, 338, 192, 167, 182, - 188, 211, 212, 292, 214, 225, 215, 216, 240, 217, - 218, 242, 221, 222, 277, 248, 224, 281, 309, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 282, - 312, 283, 287, 239, 298, 293, 266, 321, 183, 326, - 245, 319, 246, 263, 323, 331, 327, 333, 276, 328, - 329, 279, 280, 335, 334, 295, 128, 129, 317, 130, - 99, 243, 131, 258, 73, 0, 0, 289, 0, 0, - 250, 251, 0, 0, 0, 0, 0, 302, 0, 137, - 138, 0, 0, 0, 311, 139, 140, 0, 0, 114, - 0, 0, 315, 316, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 325, 270, 271, 272, 273, 320, 330, - 0, 332, 278, 128, 129, 0, 130, 0, 0, 131, - 0, 0, 268, 0, 0, 269, 339, 340, 288, 0, - 336, 0, 0, 0, 135, 136, 137, 138, 0, 0, - 0, 0, 139, 140, -6, 1, 0, 286, 122, 0, - 0, 0, 0, 0, 0, 2, 3, 4, 5, 122, - 6, 7, 8, 9, 10, 0, 11, 12, 13, 14, - 0, 15, 0, 16, 0, 0, 0, 17, 0, 18, - 19, 20, 0, 337, 21, 337, 0, 0, 0, 22, - 23, 24, 0, 0, 25, 0, 0, 0, 26, 27, - 28, 29, 0, 30, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, - 33, 34, 35, 36, 0, 0, 37, 38, 39, 0, - 0, 40, 41, 0, 0, 0, -6, 42, 0, 0, - 0, 43, 2, 3, 4, 5, 0, 6, 7, 8, - 9, 10, 0, 11, 12, 13, 14, 0, 15, 0, - 16, 0, 0, 0, 17, 0, 18, 19, 20, 0, - 0, 21, 0, 0, 0, 0, 22, 23, 24, 0, - 0, 25, 0, 0, 0, 26, 27, 28, 29, 0, - 30, 0, 0, 0, 0, 0, 0, 0, 0, 31, - 0, 0, 0, 0, 0, 0, 32, 33, 34, 35, - 36, 0, 0, 37, 38, 39, 0, 0, 40, 41, - 0, 0, 0, 0, 42, 0, 0, 0, 43, 2, + 49, 161, 119, 126, 164, 66, 101, 62, 67, 68, + 69, 290, 257, 72, 69, 134, 188, 214, 190, 118, + 85, 71, 186, 89, 63, 76, 295, 298, 306, 98, + 85, 77, 104, 105, 106, 107, 108, 109, 162, 142, + 143, 165, 114, 115, 116, 117, 147, 279, 299, 313, + 150, 296, 92, 93, 125, 88, 127, 264, 315, 265, + 267, 95, 313, 155, 94, 242, 145, 96, 120, 315, + 243, 227, 117, 81, 148, 83, 117, 169, 266, 280, + 152, 62, 153, 97, 186, 102, 241, 110, 272, 90, + 91, 185, 186, 112, 163, 62, 249, 113, 121, 122, + 144, 304, 305, 154, 160, 146, 308, 183, 309, 151, + 170, 181, 166, 192, 186, 215, 218, 229, 318, 319, + 49, 240, 125, 189, 191, 245, 253, 282, 247, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 117, 286, 213, 287, 288, + 196, 303, 343, 292, 298, 216, 326, 328, 331, 219, + 220, 332, 221, 222, 333, 225, 226, 334, 339, 228, + 246, 187, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 300, 322, 100, 74, 0, 244, 297, 131, + 132, 0, 133, 0, 250, 134, 251, 317, 268, 0, + 0, 0, 0, 314, 0, 0, 0, 0, 324, 0, + 137, 138, 139, 140, 141, 248, 0, 0, 263, 142, + 143, 0, 0, 0, 255, 256, 0, 0, 0, 0, + 336, 0, 338, 271, 0, 0, 0, 0, 340, 0, + 0, 0, 0, 0, 117, 281, 0, 0, 284, 285, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, + 276, 277, 278, 325, 294, 0, 0, 283, 0, 0, + 0, 0, 0, 0, 307, 0, 0, 273, 0, 0, + 274, 316, 0, 293, 0, 341, 0, 0, 0, 320, + 321, 323, 0, 0, 0, 131, 132, 0, 133, 0, + 330, 134, 291, 125, 131, 132, 335, 133, 337, 0, + 134, 0, 0, 0, 125, 0, 0, 138, 139, 140, + 141, 0, 0, 344, 345, 142, 143, 0, 140, 141, + -6, 1, 0, 0, 142, 143, 0, 0, 342, 0, + 342, 2, 3, 4, 5, 0, 6, 7, 8, 9, + 10, 0, 11, 12, 13, 14, 0, 15, 0, 16, + 0, 0, 0, 17, 0, 18, 19, 20, 0, 0, + 21, 0, 0, 0, 0, 22, 23, 24, 0, 0, + 25, 0, 0, 0, 26, 27, 28, 29, 0, 30, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 0, 0, 0, 32, 33, 34, 35, 36, + 0, 0, 37, 38, 39, 40, 0, 0, 41, 42, + 0, 0, 0, -6, 43, 0, 0, 0, 44, 2, 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, - 11, 12, 63, 14, 0, 15, 324, 16, 0, 0, - 0, 17, 0, 18, 19, 20, 0, 0, 0, 0, + 11, 12, 13, 14, 0, 15, 0, 16, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 0, 21, 0, 0, 0, 0, 22, 23, 24, 0, 0, 25, 0, - 0, 0, 0, 0, 28, 29, 0, 30, 0, 0, + 0, 0, 26, 27, 28, 29, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, 33, 34, 35, 36, 0, 0, - 37, 0, 39, 0, 0, 40, 41, 0, 0, 0, - 61, 42, 0, 0, 0, 43, 2, 3, 4, 5, - 0, 6, 7, 8, 9, 10, 0, 11, 12, 63, - 14, 0, 15, 0, 16, 0, 0, 0, 17, 0, - 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, - 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, - 0, 28, 29, 0, 30, 0, 0, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 35, 36, 0, 0, 37, 0, 39, - 0, 0, 40, 41, 0, 0, 0, 61, 42, 0, - 0, 0, 43, 2, 3, 4, 5, 0, 6, 7, - 8, 9, 10, 0, 11, 12, 63, 14, 0, 15, + 37, 38, 39, 40, 0, 0, 41, 42, 0, 0, + 0, 0, 43, 0, 0, 0, 44, 2, 3, 4, + 5, 0, 6, 7, 8, 9, 10, 0, 11, 12, + 64, 14, 0, 15, 329, 16, 0, 0, 0, 17, + 0, 18, 19, 20, 0, 0, 0, 0, 0, 0, + 0, 22, 23, 24, 0, 0, 25, 0, 0, 0, + 0, 0, 28, 29, 0, 30, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, + 0, 32, 33, 34, 35, 36, 0, 0, 37, 38, + 0, 40, 0, 0, 41, 42, 0, 0, 0, 62, + 43, 0, 0, 0, 44, 2, 3, 4, 5, 0, + 6, 7, 8, 9, 10, 0, 11, 12, 64, 14, + 0, 15, 0, 16, 0, 0, 0, 17, 0, 18, + 19, 20, 0, 0, 0, 0, 0, 0, 0, 22, + 23, 24, 0, 0, 25, 0, 0, 0, 0, 0, + 28, 29, 0, 30, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, + 33, 34, 35, 36, 0, 0, 37, 38, 0, 40, + 0, 0, 41, 42, 0, 0, 0, 62, 43, 0, + 0, 0, 44, 2, 3, 4, 5, 0, 6, 7, + 8, 9, 10, 0, 11, 12, 64, 14, 0, 15, 0, 16, 0, 0, 0, 17, 0, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, 0, 28, 29, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, 33, 34, - 35, 36, 0, 0, 37, 0, 39, 0, 0, 40, - 41, 0, 0, 0, 0, 42, 0, 0, 0, 43, - 2, 3, 4, 5, 0, 6, 7, 8, 9, 10, - 0, 11, 12, 63, 14, 191, 15, 0, 16, 0, - 0, 0, 17, 0, 18, 19, 125, 126, 0, 0, - 0, 127, 128, 129, 22, 130, 24, 0, 131, 132, - 133, 0, 0, 0, 0, 28, 29, 0, 30, 0, - 0, 0, 134, 135, 136, 137, 138, 31, 61, 0, - 0, 139, 140, 0, 32, 33, 34, 35, 36, 0, - 0, 0, 0, 39, 0, 0, 40, 41, 2, 3, - 4, 5, 42, 0, 0, 0, 43, 0, 0, 11, - 12, 63, 14, 0, 15, 0, 0, 0, 0, 0, - 0, 78, 0, 0, 0, 0, 79, 0, 80, 81, - 82, 83, 64, 0, 24, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 31, 2, 3, 4, 5, - 0, 0, 32, 33, 34, 35, 36, 11, 12, 63, - 14, 0, 15, 0, 40, 41, 0, 0, 0, 78, - 42, 0, 0, 0, 43, 0, 80, 0, 82, 0, - 64, 0, 24, 2, 3, 4, 5, 0, 0, 0, - 0, 0, 0, 98, 11, 12, 63, 14, 0, 15, - 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 35, 36, 0, 0, 64, 0, 24, - 0, 0, 40, 41, 0, 0, 0, 0, 42, 0, - 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 31, 2, 3, 4, 5, 0, 0, 32, 33, 34, - 35, 36, 11, 12, 63, 14, 0, 15, 0, 40, - 41, 0, 0, 0, 0, 42, 0, 0, 0, 43, - 0, 0, 0, 0, 0, 64, 0, 24, 2, 3, - 4, 5, 0, 0, 0, 0, 0, 0, 0, 11, - 12, 63, 14, 0, 15, 0, 0, 0, 31, 0, + 35, 36, 0, 0, 37, 38, 0, 40, 0, 0, + 41, 42, 0, 0, 0, 0, 43, 0, 0, 0, + 44, 2, 3, 4, 5, 0, 6, 7, 8, 9, + 10, 0, 11, 12, 64, 14, 0, 15, 0, 16, + 0, 0, 0, 17, 0, 18, 19, 0, 0, 0, + 0, 0, 0, 0, 0, 22, 0, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 29, 0, 30, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, 33, 34, 35, 36, - 0, 0, 64, 0, 24, 0, 0, 40, 41, 0, - 0, 0, 0, 72, 0, 0, 0, 43, 0, 0, - 0, 0, 0, 0, 154, 31, 0, 0, 0, 0, + 0, 0, 0, 38, 0, 40, 0, 0, 41, 42, + 2, 3, 4, 5, 43, 0, 0, 0, 44, 0, + 0, 11, 12, 64, 14, 0, 15, 0, 0, 0, + 0, 0, 0, 79, 0, 0, 0, 0, 80, 0, + 81, 82, 83, 84, 65, 0, 24, 0, 0, 2, + 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, + 11, 12, 64, 14, 0, 15, 0, 31, 0, 0, + 0, 0, 79, 0, 32, 33, 34, 35, 36, 81, + 0, 83, 0, 65, 0, 24, 0, 41, 42, 2, + 3, 4, 5, 43, 0, 0, 99, 44, 0, 0, + 11, 12, 64, 14, 0, 15, 31, 0, 0, 0, + 0, 0, 0, 32, 33, 34, 35, 36, 0, 0, + 0, 0, 0, 65, 0, 24, 41, 42, 2, 3, + 4, 5, 43, 0, 0, 0, 44, 0, 0, 11, + 12, 64, 14, 0, 15, 0, 31, 0, 0, 0, + 0, 0, 0, 32, 33, 34, 35, 36, 0, 0, + 0, 0, 65, 0, 24, 0, 41, 42, 2, 3, + 4, 5, 43, 0, 0, 0, 44, 0, 0, 11, + 12, 64, 14, 0, 15, 31, 0, 0, 0, 0, 0, 0, 32, 33, 34, 35, 36, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 125, 126, 0, 0, - 120, 127, 128, 129, 43, 130, 155, 156, 131, 132, - 133, 168, 0, 0, 0, 0, 0, 169, 0, 0, - 0, 0, 134, 135, 136, 137, 138, 0, 125, 126, - 0, 139, 140, 127, 128, 129, 0, 130, 0, 0, - 131, 132, 133, 170, 0, 0, 0, 0, 0, 171, - 0, 0, 0, 0, 134, 135, 136, 137, 138, 0, - 125, 126, 0, 139, 140, 127, 128, 129, 0, 130, - 0, 0, 131, 132, 133, 172, 0, 0, 0, 0, - 0, 173, 0, 0, 0, 0, 134, 135, 136, 137, - 138, 0, 125, 126, 0, 139, 140, 127, 128, 129, - 0, 130, 0, 0, 131, 132, 133, 174, 0, 0, - 0, 0, 0, 175, 0, 0, 0, 0, 134, 135, - 136, 137, 138, 0, 125, 126, 0, 139, 140, 127, - 128, 129, 0, 130, 0, 0, 131, 132, 133, 253, + 0, 0, 65, 0, 24, 41, 42, 0, 0, 0, + 0, 73, 0, 0, 0, 44, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, + 157, 0, 32, 33, 34, 35, 36, 0, 0, 0, + 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, + 0, 123, 128, 129, 0, 44, 0, 130, 131, 132, + 0, 133, 158, 159, 134, 135, 136, 0, 171, 0, + 0, 0, 0, 0, 172, 0, 0, 0, 0, 137, + 138, 139, 140, 141, 0, 128, 129, 0, 142, 143, + 130, 131, 132, 0, 133, 0, 0, 134, 135, 136, + 0, 173, 0, 0, 0, 0, 0, 174, 0, 0, + 0, 0, 137, 138, 139, 140, 141, 0, 128, 129, + 0, 142, 143, 130, 131, 132, 0, 133, 0, 0, + 134, 135, 136, 0, 175, 0, 0, 0, 0, 0, + 176, 0, 0, 0, 0, 137, 138, 139, 140, 141, + 0, 128, 129, 0, 142, 143, 130, 131, 132, 0, + 133, 0, 0, 134, 135, 136, 0, 177, 0, 0, + 0, 0, 0, 178, 0, 0, 0, 0, 137, 138, + 139, 140, 141, 0, 128, 129, 0, 142, 143, 130, + 131, 132, 0, 133, 0, 0, 134, 135, 136, 0, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 137, 138, 139, 140, 141, 0, 128, 129, 0, + 142, 143, 130, 131, 132, 0, 133, 0, 0, 134, + 135, 136, 0, 259, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 137, 138, 139, 140, 141, 0, + 128, 129, 0, 142, 143, 130, 131, 132, 0, 133, + 0, 0, 134, 135, 136, 0, 260, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 137, 138, 139, + 140, 141, 0, 128, 129, 0, 142, 143, 130, 131, + 132, 0, 133, 0, 0, 134, 135, 136, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 134, 135, 136, 137, 138, 0, 125, 126, 0, 139, - 140, 127, 128, 129, 0, 130, 0, 0, 131, 132, - 133, 254, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 134, 135, 136, 137, 138, 0, 125, 126, - 0, 139, 140, 127, 128, 129, 0, 130, 0, 0, - 131, 132, 133, 255, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 134, 135, 136, 137, 138, 0, - 125, 126, 0, 139, 140, 127, 128, 129, 0, 130, - 0, 0, 131, 132, 133, 256, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 134, 135, 136, 137, - 138, 0, 125, 126, 0, 139, 140, 127, 128, 129, - 0, 130, 0, 0, 131, 132, 133, 0, 0, 0, - 0, 0, 0, 219, 0, 0, 0, 0, 134, 135, - 136, 137, 138, 0, 125, 126, 0, 139, 140, 127, - 128, 129, 0, 130, 0, 0, 131, 132, 133, 0, - 0, 0, 0, 0, 0, 0, 0, 165, 0, 220, - 134, 135, 136, 137, 138, 0, 125, 126, 0, 139, - 140, 127, 128, 129, 0, 130, 0, 0, 131, 132, - 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 134, 135, 136, 137, 138, 0, 125, 126, - 0, 139, 140, 127, 128, 129, 0, 130, 0, 0, - 131, 132, 133, 0, 0, 0, 0, 0, 176, 177, - 0, 0, 0, 0, 134, 135, 136, 137, 138, 0, - 125, 126, 0, 139, 140, 127, 128, 129, 0, 130, - 0, 0, 131, 132, 133, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 189, 134, 135, 136, 137, - 138, 0, 125, 126, 180, 139, 140, 127, 128, 129, - 0, 130, 0, 0, 131, 132, 133, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, - 136, 137, 138, 0, 125, 126, 180, 139, 140, 127, - 128, 129, 0, 130, 0, 0, 131, 132, 133, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, - 134, 135, 136, 137, 138, 0, 125, 126, 0, 139, - 140, 127, 128, 129, 0, 130, 0, 0, 131, 132, - 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 134, 135, 136, 137, 138, 0, 0, 0, - 0, 139, 140 + 137, 138, 139, 140, 141, 0, 128, 129, 0, 142, + 143, 130, 131, 132, 0, 133, 0, 0, 134, 135, + 136, 0, 0, 0, 0, 0, 0, 0, 195, 0, + 0, 0, 0, 137, 138, 139, 140, 141, 0, 128, + 129, 0, 142, 143, 130, 131, 132, 0, 133, 0, + 0, 134, 135, 136, 0, 0, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 137, 138, 139, 140, + 141, 0, 62, 128, 129, 142, 143, 0, 130, 131, + 132, 0, 133, 0, 0, 134, 135, 136, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 168, 0, 224, + 137, 138, 139, 140, 141, 0, 128, 129, 0, 142, + 143, 130, 131, 132, 0, 133, 0, 0, 134, 135, + 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 137, 138, 139, 140, 141, 0, 128, + 129, 0, 142, 143, 130, 131, 132, 0, 133, 0, + 0, 134, 135, 136, 0, 0, 0, 0, 0, 179, + 180, 0, 0, 0, 0, 0, 137, 138, 139, 140, + 141, 0, 128, 129, 0, 142, 143, 130, 131, 132, + 0, 133, 0, 0, 134, 135, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 137, + 138, 139, 140, 141, 0, 128, 129, 184, 142, 143, + 130, 131, 132, 0, 133, 0, 0, 134, 135, 136, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 138, 139, 140, 141, 0, 128, 129, + 184, 142, 143, 130, 131, 132, 0, 133, 0, 0, + 134, 135, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 193, 137, 138, 139, 140, 141, + 0, 128, 129, 0, 142, 143, 130, 131, 132, 0, + 133, 0, 0, 134, 135, 136, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 137, 138, + 139, 140, 141, 0, 0, 0, 0, 142, 143 }; static const yytype_int16 yycheck[] = { - 0, 118, 53, 120, 49, 4, 0, 29, 7, 8, - 9, 49, 223, 12, 13, 292, 94, 94, 43, 92, - 19, 99, 99, 22, 1, 28, 99, 32, 305, 28, - 29, 24, 31, 32, 33, 34, 35, 36, 164, 30, - 85, 40, 41, 42, 43, 70, 257, 85, 53, 74, - 53, 240, 178, 52, 243, 54, 92, 269, 49, 72, - 12, 13, 188, 85, 46, 64, 41, 44, 43, 295, - 24, 70, 24, 72, 286, 74, 93, 99, 24, 78, - 306, 80, 95, 96, 94, 66, 67, 24, 69, 99, - 24, 72, 24, 92, 24, 284, 285, 24, 92, 85, - 289, 93, 291, 51, 52, 86, 87, 88, 89, 90, - 98, 99, 301, 302, 95, 96, 99, 117, 41, 118, - 119, 120, 93, 99, 185, 24, 125, 126, 127, 128, + 0, 49, 0, 54, 49, 4, 29, 93, 7, 8, + 9, 274, 227, 12, 13, 72, 121, 95, 123, 44, + 19, 24, 100, 22, 1, 46, 28, 32, 291, 28, + 29, 24, 31, 32, 33, 34, 35, 36, 86, 96, + 97, 86, 41, 42, 43, 44, 71, 262, 53, 297, + 75, 53, 12, 13, 53, 24, 55, 245, 300, 30, + 248, 24, 310, 86, 24, 95, 65, 24, 45, 311, + 100, 167, 71, 41, 73, 43, 75, 100, 49, 95, + 79, 93, 81, 24, 100, 24, 182, 24, 100, 51, + 52, 99, 100, 24, 93, 93, 192, 94, 94, 86, + 94, 289, 290, 41, 24, 100, 294, 24, 296, 100, + 100, 100, 48, 48, 100, 24, 24, 24, 306, 307, + 120, 24, 121, 122, 123, 95, 24, 49, 95, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 48, 143, 24, 335, 124, 99, 99, - 48, 24, 151, 279, 24, 24, 155, 156, 94, 158, - 159, 94, 161, 162, 49, 24, 165, 28, 294, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 24, - 297, 99, 28, 182, 24, 32, 247, 53, 117, 28, - 189, 308, 191, 244, 48, 321, 28, 323, 259, 28, - 48, 262, 263, 329, 28, 280, 66, 67, 305, 69, - 29, 188, 72, 238, 13, -1, -1, 278, -1, -1, - 219, 220, -1, -1, -1, -1, -1, 288, -1, 89, - 90, -1, -1, -1, 295, 95, 96, -1, -1, 238, - -1, -1, 303, 304, 305, -1, -1, -1, -1, -1, - -1, -1, -1, 314, 253, 254, 255, 256, 309, 320, - -1, 322, 261, 66, 67, -1, 69, -1, -1, 72, - -1, -1, 249, -1, -1, 252, 337, 338, 277, -1, - 331, -1, -1, -1, 87, 88, 89, 90, -1, -1, - -1, -1, 95, 96, 0, 1, -1, 274, 297, -1, - -1, -1, -1, -1, -1, 11, 12, 13, 14, 308, - 16, 17, 18, 19, 20, -1, 22, 23, 24, 25, - -1, 27, -1, 29, -1, -1, -1, 33, -1, 35, - 36, 37, -1, 333, 40, 335, -1, -1, -1, 45, - 46, 47, -1, -1, 50, -1, -1, -1, 54, 55, - 56, 57, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, 68, -1, -1, -1, -1, -1, -1, 75, - 76, 77, 78, 79, -1, -1, 82, 83, 84, -1, - -1, 87, 88, -1, -1, -1, 92, 93, -1, -1, - -1, 97, 11, 12, 13, 14, -1, 16, 17, 18, - 19, 20, -1, 22, 23, 24, 25, -1, 27, -1, - 29, -1, -1, -1, 33, -1, 35, 36, 37, -1, - -1, 40, -1, -1, -1, -1, 45, 46, 47, -1, - -1, 50, -1, -1, -1, 54, 55, 56, 57, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, 68, - -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, - 79, -1, -1, 82, 83, 84, -1, -1, 87, 88, - -1, -1, -1, -1, 93, -1, -1, -1, 97, 11, + 139, 140, 141, 142, 143, 144, 28, 146, 24, 100, + 127, 24, 340, 28, 32, 154, 53, 48, 28, 158, + 159, 28, 161, 162, 28, 164, 165, 48, 28, 168, + 189, 120, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 285, 310, 29, 13, -1, 186, 284, 66, + 67, -1, 69, -1, 193, 72, 195, 302, 249, -1, + -1, -1, -1, 299, -1, -1, -1, -1, 313, -1, + 87, 88, 89, 90, 91, 192, -1, -1, 243, 96, + 97, -1, -1, -1, 223, 224, -1, -1, -1, -1, + 326, -1, 328, 252, -1, -1, -1, -1, 334, -1, + -1, -1, -1, -1, 243, 264, -1, -1, 267, 268, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, + 259, 260, 261, 314, 283, -1, -1, 266, -1, -1, + -1, -1, -1, -1, 293, -1, -1, 254, -1, -1, + 257, 300, -1, 282, -1, 336, -1, -1, -1, 308, + 309, 310, -1, -1, -1, 66, 67, -1, 69, -1, + 319, 72, 279, 302, 66, 67, 325, 69, 327, -1, + 72, -1, -1, -1, 313, -1, -1, 88, 89, 90, + 91, -1, -1, 342, 343, 96, 97, -1, 90, 91, + 0, 1, -1, -1, 96, 97, -1, -1, 338, -1, + 340, 11, 12, 13, 14, -1, 16, 17, 18, 19, + 20, -1, 22, 23, 24, 25, -1, 27, -1, 29, + -1, -1, -1, 33, -1, 35, 36, 37, -1, -1, + 40, -1, -1, -1, -1, 45, 46, 47, -1, -1, + 50, -1, -1, -1, 54, 55, 56, 57, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, + -1, -1, -1, -1, -1, 75, 76, 77, 78, 79, + -1, -1, 82, 83, 84, 85, -1, -1, 88, 89, + -1, -1, -1, 93, 94, -1, -1, -1, 98, 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, -1, - 22, 23, 24, 25, -1, 27, 28, 29, -1, -1, - -1, 33, -1, 35, 36, 37, -1, -1, -1, -1, + 22, 23, 24, 25, -1, 27, -1, 29, -1, -1, + -1, 33, -1, 35, 36, 37, -1, -1, 40, -1, -1, -1, -1, 45, 46, 47, -1, -1, 50, -1, - -1, -1, -1, -1, 56, 57, -1, 59, -1, -1, + -1, -1, 54, 55, 56, 57, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, 79, -1, -1, - 82, -1, 84, -1, -1, 87, 88, -1, -1, -1, - 92, 93, -1, -1, -1, 97, 11, 12, 13, 14, - -1, 16, 17, 18, 19, 20, -1, 22, 23, 24, - 25, -1, 27, -1, 29, -1, -1, -1, 33, -1, - 35, 36, 37, -1, -1, -1, -1, -1, -1, -1, - 45, 46, 47, -1, -1, 50, -1, -1, -1, -1, - -1, 56, 57, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, - 75, 76, 77, 78, 79, -1, -1, 82, -1, 84, - -1, -1, 87, 88, -1, -1, -1, 92, 93, -1, - -1, -1, 97, 11, 12, 13, 14, -1, 16, 17, + 82, 83, 84, 85, -1, -1, 88, 89, -1, -1, + -1, -1, 94, -1, -1, -1, 98, 11, 12, 13, + 14, -1, 16, 17, 18, 19, 20, -1, 22, 23, + 24, 25, -1, 27, 28, 29, -1, -1, -1, 33, + -1, 35, 36, 37, -1, -1, -1, -1, -1, -1, + -1, 45, 46, 47, -1, -1, 50, -1, -1, -1, + -1, -1, 56, 57, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, + -1, 75, 76, 77, 78, 79, -1, -1, 82, 83, + -1, 85, -1, -1, 88, 89, -1, -1, -1, 93, + 94, -1, -1, -1, 98, 11, 12, 13, 14, -1, + 16, 17, 18, 19, 20, -1, 22, 23, 24, 25, + -1, 27, -1, 29, -1, -1, -1, 33, -1, 35, + 36, 37, -1, -1, -1, -1, -1, -1, -1, 45, + 46, 47, -1, -1, 50, -1, -1, -1, -1, -1, + 56, 57, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, 68, -1, -1, -1, -1, -1, -1, 75, + 76, 77, 78, 79, -1, -1, 82, 83, -1, 85, + -1, -1, 88, 89, -1, -1, -1, 93, 94, -1, + -1, -1, 98, 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, -1, 22, 23, 24, 25, -1, 27, -1, 29, -1, -1, -1, 33, -1, 35, 36, 37, -1, -1, -1, -1, -1, -1, -1, 45, 46, 47, -1, -1, 50, -1, -1, -1, -1, -1, 56, 57, -1, 59, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, 75, 76, 77, - 78, 79, -1, -1, 82, -1, 84, -1, -1, 87, - 88, -1, -1, -1, -1, 93, -1, -1, -1, 97, - 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, - -1, 22, 23, 24, 25, 49, 27, -1, 29, -1, - -1, -1, 33, -1, 35, 36, 60, 61, -1, -1, - -1, 65, 66, 67, 45, 69, 47, -1, 72, 73, - 74, -1, -1, -1, -1, 56, 57, -1, 59, -1, - -1, -1, 86, 87, 88, 89, 90, 68, 92, -1, - -1, 95, 96, -1, 75, 76, 77, 78, 79, -1, - -1, -1, -1, 84, -1, -1, 87, 88, 11, 12, - 13, 14, 93, -1, -1, -1, 97, -1, -1, 22, - 23, 24, 25, -1, 27, -1, -1, -1, -1, -1, - -1, 34, -1, -1, -1, -1, 39, -1, 41, 42, - 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 68, 11, 12, 13, 14, - -1, -1, 75, 76, 77, 78, 79, 22, 23, 24, - 25, -1, 27, -1, 87, 88, -1, -1, -1, 34, - 93, -1, -1, -1, 97, -1, 41, -1, 43, -1, - 45, -1, 47, 11, 12, 13, 14, -1, -1, -1, - -1, -1, -1, 58, 22, 23, 24, 25, -1, 27, - -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, - 75, 76, 77, 78, 79, -1, -1, 45, -1, 47, - -1, -1, 87, 88, -1, -1, -1, -1, 93, -1, - -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, - 68, 11, 12, 13, 14, -1, -1, 75, 76, 77, - 78, 79, 22, 23, 24, 25, -1, 27, -1, 87, - 88, -1, -1, -1, -1, 93, -1, -1, -1, 97, - -1, -1, -1, -1, -1, 45, -1, 47, 11, 12, - 13, 14, -1, -1, -1, -1, -1, -1, -1, 22, - 23, 24, 25, -1, 27, -1, -1, -1, 68, -1, + 78, 79, -1, -1, 82, 83, -1, 85, -1, -1, + 88, 89, -1, -1, -1, -1, 94, -1, -1, -1, + 98, 11, 12, 13, 14, -1, 16, 17, 18, 19, + 20, -1, 22, 23, 24, 25, -1, 27, -1, 29, + -1, -1, -1, 33, -1, 35, 36, -1, -1, -1, + -1, -1, -1, -1, -1, 45, -1, 47, -1, -1, + -1, -1, -1, -1, -1, -1, 56, 57, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, 79, - -1, -1, 45, -1, 47, -1, -1, 87, 88, -1, - -1, -1, -1, 93, -1, -1, -1, 97, -1, -1, - -1, -1, -1, -1, 38, 68, -1, -1, -1, -1, + -1, -1, -1, 83, -1, 85, -1, -1, 88, 89, + 11, 12, 13, 14, 94, -1, -1, -1, 98, -1, + -1, 22, 23, 24, 25, -1, 27, -1, -1, -1, + -1, -1, -1, 34, -1, -1, -1, -1, 39, -1, + 41, 42, 43, 44, 45, -1, 47, -1, -1, 11, + 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, + 22, 23, 24, 25, -1, 27, -1, 68, -1, -1, + -1, -1, 34, -1, 75, 76, 77, 78, 79, 41, + -1, 43, -1, 45, -1, 47, -1, 88, 89, 11, + 12, 13, 14, 94, -1, -1, 58, 98, -1, -1, + 22, 23, 24, 25, -1, 27, 68, -1, -1, -1, + -1, -1, -1, 75, 76, 77, 78, 79, -1, -1, + -1, -1, -1, 45, -1, 47, 88, 89, 11, 12, + 13, 14, 94, -1, -1, -1, 98, -1, -1, 22, + 23, 24, 25, -1, 27, -1, 68, -1, -1, -1, + -1, -1, -1, 75, 76, 77, 78, 79, -1, -1, + -1, -1, 45, -1, 47, -1, 88, 89, 11, 12, + 13, 14, 94, -1, -1, -1, 98, -1, -1, 22, + 23, 24, 25, -1, 27, 68, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, 79, -1, -1, -1, - -1, -1, -1, -1, 87, 88, 60, 61, -1, -1, - 93, 65, 66, 67, 97, 69, 70, 71, 72, 73, - 74, 43, -1, -1, -1, -1, -1, 49, -1, -1, - -1, -1, 86, 87, 88, 89, 90, -1, 60, 61, - -1, 95, 96, 65, 66, 67, -1, 69, -1, -1, - 72, 73, 74, 43, -1, -1, -1, -1, -1, 49, - -1, -1, -1, -1, 86, 87, 88, 89, 90, -1, - 60, 61, -1, 95, 96, 65, 66, 67, -1, 69, - -1, -1, 72, 73, 74, 43, -1, -1, -1, -1, - -1, 49, -1, -1, -1, -1, 86, 87, 88, 89, - 90, -1, 60, 61, -1, 95, 96, 65, 66, 67, - -1, 69, -1, -1, 72, 73, 74, 43, -1, -1, - -1, -1, -1, 49, -1, -1, -1, -1, 86, 87, - 88, 89, 90, -1, 60, 61, -1, 95, 96, 65, - 66, 67, -1, 69, -1, -1, 72, 73, 74, 43, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 86, 87, 88, 89, 90, -1, 60, 61, -1, 95, - 96, 65, 66, 67, -1, 69, -1, -1, 72, 73, - 74, 43, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 86, 87, 88, 89, 90, -1, 60, 61, - -1, 95, 96, 65, 66, 67, -1, 69, -1, -1, - 72, 73, 74, 43, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 86, 87, 88, 89, 90, -1, - 60, 61, -1, 95, 96, 65, 66, 67, -1, 69, - -1, -1, 72, 73, 74, 43, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 86, 87, 88, 89, - 90, -1, 60, 61, -1, 95, 96, 65, 66, 67, - -1, 69, -1, -1, 72, 73, 74, -1, -1, -1, - -1, -1, -1, 49, -1, -1, -1, -1, 86, 87, - 88, 89, 90, -1, 60, 61, -1, 95, 96, 65, + -1, -1, 45, -1, 47, 88, 89, -1, -1, -1, + -1, 94, -1, -1, -1, 98, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 68, -1, -1, -1, -1, + 38, -1, 75, 76, 77, 78, 79, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, -1, -1, -1, + -1, 94, 60, 61, -1, 98, -1, 65, 66, 67, + -1, 69, 70, 71, 72, 73, 74, -1, 43, -1, + -1, -1, -1, -1, 49, -1, -1, -1, -1, 87, + 88, 89, 90, 91, -1, 60, 61, -1, 96, 97, + 65, 66, 67, -1, 69, -1, -1, 72, 73, 74, + -1, 43, -1, -1, -1, -1, -1, 49, -1, -1, + -1, -1, 87, 88, 89, 90, 91, -1, 60, 61, + -1, 96, 97, 65, 66, 67, -1, 69, -1, -1, + 72, 73, 74, -1, 43, -1, -1, -1, -1, -1, + 49, -1, -1, -1, -1, 87, 88, 89, 90, 91, + -1, 60, 61, -1, 96, 97, 65, 66, 67, -1, + 69, -1, -1, 72, 73, 74, -1, 43, -1, -1, + -1, -1, -1, 49, -1, -1, -1, -1, 87, 88, + 89, 90, 91, -1, 60, 61, -1, 96, 97, 65, 66, 67, -1, 69, -1, -1, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, 51, -1, 85, - 86, 87, 88, 89, 90, -1, 60, 61, -1, 95, - 96, 65, 66, 67, -1, 69, -1, -1, 72, 73, + 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, 88, 89, 90, 91, -1, 60, 61, -1, + 96, 97, 65, 66, 67, -1, 69, -1, -1, 72, + 73, 74, -1, 43, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 87, 88, 89, 90, 91, -1, + 60, 61, -1, 96, 97, 65, 66, 67, -1, 69, + -1, -1, 72, 73, 74, -1, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, 88, 89, + 90, 91, -1, 60, 61, -1, 96, 97, 65, 66, + 67, -1, 69, -1, -1, 72, 73, 74, -1, 43, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 87, 88, 89, 90, 91, -1, 60, 61, -1, 96, + 97, 65, 66, 67, -1, 69, -1, -1, 72, 73, + 74, -1, -1, -1, -1, -1, -1, -1, 49, -1, + -1, -1, -1, 87, 88, 89, 90, 91, -1, 60, + 61, -1, 96, 97, 65, 66, 67, -1, 69, -1, + -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, + -1, -1, 49, -1, -1, -1, 87, 88, 89, 90, + 91, -1, 93, 60, 61, 96, 97, -1, 65, 66, + 67, -1, 69, -1, -1, 72, 73, 74, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 51, -1, 86, + 87, 88, 89, 90, 91, -1, 60, 61, -1, 96, + 97, 65, 66, 67, -1, 69, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 86, 87, 88, 89, 90, -1, 60, 61, - -1, 95, 96, 65, 66, 67, -1, 69, -1, -1, - 72, 73, 74, -1, -1, -1, -1, -1, 80, 81, - -1, -1, -1, -1, 86, 87, 88, 89, 90, -1, - 60, 61, -1, 95, 96, 65, 66, 67, -1, 69, - -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 85, 86, 87, 88, 89, - 90, -1, 60, 61, 94, 95, 96, 65, 66, 67, + -1, -1, -1, 87, 88, 89, 90, 91, -1, 60, + 61, -1, 96, 97, 65, 66, 67, -1, 69, -1, + -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, + 81, -1, -1, -1, -1, -1, 87, 88, 89, 90, + 91, -1, 60, 61, -1, 96, 97, 65, 66, 67, -1, 69, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, 87, - 88, 89, 90, -1, 60, 61, 94, 95, 96, 65, - 66, 67, -1, 69, -1, -1, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, - 86, 87, 88, 89, 90, -1, 60, 61, -1, 95, - 96, 65, 66, 67, -1, 69, -1, -1, 72, 73, - 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 86, 87, 88, 89, 90, -1, -1, -1, - -1, 95, 96 + 88, 89, 90, 91, -1, 60, 61, 95, 96, 97, + 65, 66, 67, -1, 69, -1, -1, 72, 73, 74, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, 88, 89, 90, 91, -1, 60, 61, + 95, 96, 97, 65, 66, 67, -1, 69, -1, -1, + 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 86, 87, 88, 89, 90, 91, + -1, 60, 61, -1, 96, 97, 65, 66, 67, -1, + 69, -1, -1, 72, 73, 74, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 87, 88, + 89, 90, 91, -1, -1, -1, -1, 96, 97 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1231,37 +1249,37 @@ static const yytype_uint8 yystos[] = 20, 22, 23, 24, 25, 27, 29, 33, 35, 36, 37, 40, 45, 46, 47, 50, 54, 55, 56, 57, 59, 68, 75, 76, 77, 78, 79, 82, 83, 84, - 87, 88, 93, 97, 101, 103, 104, 105, 106, 107, - 114, 115, 116, 121, 122, 123, 124, 127, 130, 132, - 139, 92, 102, 24, 45, 123, 123, 123, 123, 141, - 24, 123, 93, 141, 131, 46, 24, 125, 34, 39, - 41, 42, 43, 44, 123, 128, 129, 24, 123, 51, - 52, 12, 13, 24, 24, 24, 24, 123, 58, 128, - 129, 24, 126, 123, 123, 123, 123, 123, 123, 24, - 93, 123, 123, 123, 123, 140, 0, 102, 93, 85, - 93, 113, 123, 105, 123, 60, 61, 65, 66, 67, - 69, 72, 73, 74, 86, 87, 88, 89, 90, 95, - 96, 93, 123, 99, 140, 123, 140, 140, 99, 123, - 123, 41, 129, 133, 38, 70, 71, 24, 49, 85, - 123, 49, 85, 48, 134, 51, 129, 99, 43, 49, - 43, 49, 43, 49, 43, 49, 80, 81, 135, 24, - 94, 98, 99, 103, 113, 123, 113, 123, 48, 85, - 119, 49, 102, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 94, 24, 123, 118, 24, 123, 123, 123, 123, 49, - 85, 123, 123, 118, 123, 24, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 118, 94, 99, 123, - 94, 119, 94, 102, 118, 123, 123, 120, 24, 137, - 123, 123, 137, 43, 43, 43, 43, 136, 140, 120, - 30, 49, 120, 105, 102, 106, 119, 99, 102, 102, - 123, 123, 123, 123, 137, 94, 119, 49, 123, 119, - 119, 28, 24, 99, 138, 138, 102, 28, 123, 119, - 28, 53, 118, 32, 53, 110, 111, 117, 24, 120, - 120, 138, 119, 120, 120, 109, 110, 112, 117, 118, - 111, 119, 113, 120, 120, 119, 119, 112, 119, 113, - 105, 53, 108, 48, 28, 119, 28, 28, 28, 48, - 119, 118, 119, 118, 28, 118, 105, 106, 120, 119, - 119 + 85, 88, 89, 94, 98, 102, 104, 105, 106, 107, + 108, 115, 116, 117, 122, 123, 124, 125, 129, 132, + 134, 141, 93, 103, 24, 45, 124, 124, 124, 124, + 143, 24, 124, 94, 143, 133, 46, 24, 126, 34, + 39, 41, 42, 43, 44, 124, 130, 131, 24, 124, + 51, 52, 12, 13, 24, 24, 24, 24, 124, 58, + 130, 131, 24, 128, 124, 124, 124, 124, 124, 124, + 24, 127, 24, 94, 124, 124, 124, 124, 142, 0, + 103, 94, 86, 94, 114, 124, 106, 124, 60, 61, + 65, 66, 67, 69, 72, 73, 74, 87, 88, 89, + 90, 91, 96, 97, 94, 124, 100, 142, 124, 142, + 142, 100, 124, 124, 41, 131, 135, 38, 70, 71, + 24, 49, 86, 124, 49, 86, 48, 136, 51, 131, + 100, 43, 49, 43, 49, 43, 49, 43, 49, 80, + 81, 100, 137, 24, 95, 99, 100, 104, 114, 124, + 114, 124, 48, 86, 120, 49, 103, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 95, 24, 124, 119, 24, 124, + 124, 124, 124, 49, 86, 124, 124, 119, 124, 24, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 24, 119, 95, 100, 124, 95, 120, 95, 103, 119, + 124, 124, 121, 24, 139, 124, 124, 139, 43, 43, + 43, 43, 138, 142, 121, 30, 49, 121, 106, 103, + 107, 120, 100, 103, 103, 124, 124, 124, 124, 139, + 95, 120, 49, 124, 120, 120, 28, 24, 100, 140, + 140, 103, 28, 124, 120, 28, 53, 119, 32, 53, + 111, 112, 118, 24, 121, 121, 140, 120, 121, 121, + 110, 111, 113, 118, 119, 112, 120, 114, 121, 121, + 120, 120, 113, 120, 114, 106, 53, 109, 48, 28, + 120, 28, 28, 28, 48, 120, 119, 120, 119, 28, + 119, 106, 107, 121, 120, 120 }; #define yyerrok (yyerrstatus = 0) @@ -2692,165 +2710,175 @@ yyreduce: g_lingo->code1(g_lingo->c_procret); ;} break; - case 107: -#line 481 "engines/director/lingo/lingo-gr.y" + case 108: +#line 482 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->_builtins[*(yyvsp[(1) - (1)].s)]->u.func); delete (yyvsp[(1) - (1)].s); ;} break; - case 108: -#line 484 "engines/director/lingo/lingo-gr.y" + case 109: +#line 485 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->_builtins[*(yyvsp[(1) - (2)].s)]->u.func); delete (yyvsp[(1) - (2)].s); ;} break; - case 109: -#line 487 "engines/director/lingo/lingo-gr.y" + case 110: +#line 488 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->_builtins[*(yyvsp[(1) - (2)].s)]->u.func); delete (yyvsp[(1) - (2)].s); ;} break; - case 110: -#line 490 "engines/director/lingo/lingo-gr.y" + case 111: +#line 491 "engines/director/lingo/lingo-gr.y" { g_lingo->code2(g_lingo->c_voidpush, g_lingo->_builtins[*(yyvsp[(1) - (1)].s)]->u.func); delete (yyvsp[(1) - (1)].s); ;} break; - case 111: -#line 493 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;} - break; - case 112: #line 494 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;} + { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;} break; case 113: #line 495 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;} + { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;} break; case 114: #line 496 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_open); ;} + { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;} break; case 115: #line 497 "engines/director/lingo/lingo-gr.y" - { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;} + { g_lingo->code1(g_lingo->c_open); ;} break; case 116: #line 498 "engines/director/lingo/lingo-gr.y" - { Common::String s(*(yyvsp[(1) - (3)].s)); s += '-'; s += *(yyvsp[(2) - (3)].s); g_lingo->codeFunc(&s, (yyvsp[(3) - (3)].narg)); ;} + { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;} break; case 117: -#line 501 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;} +#line 499 "engines/director/lingo/lingo-gr.y" + { Common::String s(*(yyvsp[(1) - (3)].s)); s += '-'; s += *(yyvsp[(2) - (3)].s); g_lingo->codeFunc(&s, (yyvsp[(3) - (3)].narg)); ;} break; case 118: #line 502 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;} + { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;} break; case 119: -#line 505 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;} +#line 503 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;} break; case 120: #line 506 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;} + { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;} break; case 121: -#line 517 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_gotoloop); ;} +#line 507 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;} break; case 122: -#line 518 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_gotonext); ;} +#line 510 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;} break; case 123: -#line 519 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(g_lingo->c_gotoprevious); ;} +#line 511 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;} break; case 124: -#line 520 "engines/director/lingo/lingo-gr.y" +#line 522 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_gotoloop); ;} + break; + + case 125: +#line 523 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_gotonext); ;} + break; + + case 126: +#line 524 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(g_lingo->c_gotoprevious); ;} + break; + + case 127: +#line 525 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(1); g_lingo->code1(g_lingo->c_goto); ;} break; - case 125: -#line 523 "engines/director/lingo/lingo-gr.y" + case 128: +#line 528 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(3); g_lingo->code1(g_lingo->c_goto); ;} break; - case 126: -#line 526 "engines/director/lingo/lingo-gr.y" + case 129: +#line 531 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(2); g_lingo->code1(g_lingo->c_goto); ;} break; - case 131: -#line 539 "engines/director/lingo/lingo-gr.y" + case 134: +#line 544 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_playdone); ;} break; - case 132: -#line 540 "engines/director/lingo/lingo-gr.y" + case 135: +#line 545 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(1); g_lingo->code1(g_lingo->c_play); ;} break; - case 133: -#line 543 "engines/director/lingo/lingo-gr.y" + case 136: +#line 548 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(3); g_lingo->code1(g_lingo->c_play); ;} break; - case 134: -#line 546 "engines/director/lingo/lingo-gr.y" + case 137: +#line 551 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(2); g_lingo->code1(g_lingo->c_play); ;} break; - case 135: -#line 549 "engines/director/lingo/lingo-gr.y" + case 138: +#line 554 "engines/director/lingo/lingo-gr.y" { g_lingo->codeSetImmediate(true); ;} break; - case 136: -#line 549 "engines/director/lingo/lingo-gr.y" + case 139: +#line 554 "engines/director/lingo/lingo-gr.y" { g_lingo->codeSetImmediate(false); g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;} break; - case 137: -#line 579 "engines/director/lingo/lingo-gr.y" + case 140: +#line 584 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;} break; - case 138: -#line 580 "engines/director/lingo/lingo-gr.y" + case 141: +#line 585 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(0); // Push fake value on stack g_lingo->code1(g_lingo->c_procret); @@ -2858,38 +2886,38 @@ yyreduce: g_lingo->_indef = false; ;} break; - case 139: -#line 585 "engines/director/lingo/lingo-gr.y" + case 142: +#line 590 "engines/director/lingo/lingo-gr.y" { g_lingo->codeFactory(*(yyvsp[(2) - (2)].s)); ;} break; - case 140: -#line 588 "engines/director/lingo/lingo-gr.y" + case 143: +#line 593 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = true; ;} break; - case 141: -#line 589 "engines/director/lingo/lingo-gr.y" + case 144: +#line 594 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_procret); g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg) + 1, &g_lingo->_currentFactory); g_lingo->_indef = false; ;} break; - case 142: -#line 593 "engines/director/lingo/lingo-gr.y" + case 145: +#line 598 "engines/director/lingo/lingo-gr.y" { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;} break; - case 143: -#line 594 "engines/director/lingo/lingo-gr.y" + case 146: +#line 599 "engines/director/lingo/lingo-gr.y" { g_lingo->_ignoreMe = true; ;} break; - case 144: -#line 594 "engines/director/lingo/lingo-gr.y" + case 147: +#line 599 "engines/director/lingo/lingo-gr.y" { g_lingo->codeConst(0); // Push fake value on stack g_lingo->code1(g_lingo->c_procret); @@ -2901,33 +2929,33 @@ yyreduce: ;} break; - case 145: -#line 604 "engines/director/lingo/lingo-gr.y" + case 148: +#line 609 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 0; ;} break; - case 146: -#line 605 "engines/director/lingo/lingo-gr.y" + case 149: +#line 610 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;} break; - case 147: -#line 606 "engines/director/lingo/lingo-gr.y" + case 150: +#line 611 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; - case 148: -#line 607 "engines/director/lingo/lingo-gr.y" + case 151: +#line 612 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;} break; - case 149: -#line 610 "engines/director/lingo/lingo-gr.y" + case 152: +#line 615 "engines/director/lingo/lingo-gr.y" { g_lingo->codeArgStore(); ;} break; - case 150: -#line 614 "engines/director/lingo/lingo-gr.y" + case 153: +#line 619 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_call); g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str()); @@ -2936,34 +2964,34 @@ yyreduce: g_lingo->code1(numpar); ;} break; - case 151: -#line 622 "engines/director/lingo/lingo-gr.y" + case 154: +#line 627 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 0; ;} break; - case 152: -#line 623 "engines/director/lingo/lingo-gr.y" + case 155: +#line 628 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 1; ;} break; - case 153: -#line 624 "engines/director/lingo/lingo-gr.y" + case 156: +#line 629 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; - case 154: -#line 627 "engines/director/lingo/lingo-gr.y" + case 157: +#line 632 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = 1; ;} break; - case 155: -#line 628 "engines/director/lingo/lingo-gr.y" + case 158: +#line 633 "engines/director/lingo/lingo-gr.y" { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; /* Line 1267 of yacc.c. */ -#line 2967 "engines/director/lingo/lingo-gr.cpp" +#line 2995 "engines/director/lingo/lingo-gr.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3177,6 +3205,6 @@ yyreturn: } -#line 631 "engines/director/lingo/lingo-gr.y" +#line 636 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h index 367837d2c6..2c4b95c3a6 100644 --- a/engines/director/lingo/lingo-gr.h +++ b/engines/director/lingo/lingo-gr.h @@ -119,8 +119,9 @@ tINTERSECTS = 335, tWITHIN = 336, tTELL = 337, - tON = 338, - tME = 339 + tPROPERTY = 338, + tON = 339, + tME = 340 }; #endif /* Tokens. */ @@ -204,8 +205,9 @@ #define tINTERSECTS 335 #define tWITHIN 336 #define tTELL 337 -#define tON 338 -#define tME 339 +#define tPROPERTY 338 +#define tON 339 +#define tME 340 @@ -223,7 +225,7 @@ typedef union YYSTYPE Common::Array *arr; } /* Line 1529 of yacc.c. */ -#line 227 "engines/director/lingo/lingo-gr.hpp" +#line 229 "engines/director/lingo/lingo-gr.hpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index f20c4e8d30..ee4d8db4c3 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -100,7 +100,7 @@ void checkEnd(Common::String *token, const char *expect, bool required) { %token tWITH tWHILE tNLELSE tFACTORY tMETHOD tOPEN tPLAY tDONE tINSTANCE %token tGE tLE tGT tLT tEQ tNEQ tAND tOR tNOT tMOD %token tAFTER tBEFORE tCONCAT tCONTAINS tSTARTS tCHAR tITEM tLINE tWORD -%token tSPRITE tINTERSECTS tWITHIN tTELL +%token tSPRITE tINTERSECTS tWITHIN tTELL tPROPERTY %token tON tME %type asgn begin elseif elsestmtoneliner end expr if when repeatwhile repeatwith stmtlist tell @@ -477,6 +477,7 @@ proc: tPUT expr { g_lingo->code1(g_lingo->c_printtop); } | tEXIT { g_lingo->codeConst(0); // Push fake value on stack g_lingo->code1(g_lingo->c_procret); } | tGLOBAL globallist + | tPROPERTY propertylist | tINSTANCE instancelist | BLTINNOARGS { g_lingo->code1(g_lingo->_builtins[*$1]->u.func); @@ -498,8 +499,12 @@ proc: tPUT expr { g_lingo->code1(g_lingo->c_printtop); } | TWOWORDBUILTIN ID arglist { Common::String s(*$1); s += '-'; s += *$2; g_lingo->codeFunc(&s, $3); } ; -globallist: ID { g_lingo->code1(g_lingo->c_global); g_lingo->codeString($1->c_str()); delete $1; } - | globallist ',' ID { g_lingo->code1(g_lingo->c_global); g_lingo->codeString($3->c_str()); delete $3; } +globallist: ID { g_lingo->code1(g_lingo->c_global); g_lingo->codeString($1->c_str()); delete $1; } + | globallist ',' ID { g_lingo->code1(g_lingo->c_global); g_lingo->codeString($3->c_str()); delete $3; } + ; + +propertylist: ID { g_lingo->code1(g_lingo->c_property); g_lingo->codeString($1->c_str()); delete $1; } + | propertylist ',' ID { g_lingo->code1(g_lingo->c_property); g_lingo->codeString($3->c_str()); delete $3; } ; instancelist: ID { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString($1->c_str()); delete $1; } diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp index 829a423a01..c468801b63 100644 --- a/engines/director/lingo/lingo-lex.cpp +++ b/engines/director/lingo/lingo-lex.cpp @@ -364,8 +364,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 70 -#define YY_END_OF_BUFFER 71 +#define YY_NUM_RULES 71 +#define YY_END_OF_BUFFER 72 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -373,36 +373,37 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[256] = +static yyconst flex_int16_t yy_accept[262] = { 0, - 0, 0, 71, 69, 3, 67, 67, 69, 69, 69, - 66, 66, 66, 65, 66, 66, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 2, 2, 3, 67, 0, 0, - 0, 0, 0, 68, 4, 62, 1, 64, 65, 61, - 59, 60, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 22, 12, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 35, 36, 63, 38, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 52, - 63, 63, 63, 2, 2, 0, 4, 1, 64, 63, - - 6, 63, 63, 63, 63, 63, 63, 16, 63, 63, - 63, 63, 0, 63, 63, 63, 63, 63, 63, 63, - 31, 63, 63, 34, 63, 63, 63, 42, 63, 44, - 63, 63, 63, 63, 63, 63, 63, 63, 0, 63, - 63, 8, 63, 10, 11, 15, 0, 16, 18, 63, - 63, 63, 0, 63, 63, 25, 26, 27, 28, 63, - 63, 63, 33, 37, 39, 63, 63, 63, 63, 46, - 0, 51, 56, 63, 54, 58, 14, 5, 63, 63, - 16, 16, 63, 19, 63, 21, 63, 63, 29, 63, - 32, 63, 63, 63, 63, 63, 50, 50, 57, 63, - - 0, 7, 63, 16, 63, 20, 63, 63, 30, 63, - 63, 43, 53, 45, 0, 0, 50, 55, 0, 63, - 17, 63, 63, 63, 63, 0, 0, 0, 0, 50, - 13, 9, 23, 63, 63, 41, 0, 0, 0, 50, - 63, 40, 0, 0, 0, 0, 24, 49, 48, 49, - 0, 0, 0, 47, 0 + 0, 0, 72, 70, 3, 68, 68, 70, 70, 70, + 67, 67, 67, 66, 67, 67, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 2, 2, 3, 68, 0, 0, + 0, 0, 0, 69, 4, 63, 1, 65, 66, 62, + 60, 61, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 22, 12, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 35, 36, 64, 38, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 53, + 64, 64, 64, 2, 2, 0, 4, 1, 65, 64, + + 6, 64, 64, 64, 64, 64, 64, 16, 64, 64, + 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 31, 64, 64, 34, 64, 64, 64, 64, 43, 64, + 45, 64, 64, 64, 64, 64, 64, 64, 64, 0, + 64, 64, 8, 64, 10, 11, 15, 0, 16, 18, + 64, 64, 64, 0, 64, 64, 25, 26, 27, 28, + 64, 64, 64, 33, 37, 39, 64, 64, 64, 64, + 64, 47, 0, 52, 57, 64, 55, 59, 14, 5, + 64, 64, 16, 16, 64, 19, 64, 21, 64, 64, + 29, 64, 32, 64, 64, 64, 64, 64, 64, 51, + + 51, 58, 64, 0, 7, 64, 16, 64, 20, 64, + 64, 30, 64, 64, 64, 44, 54, 46, 0, 0, + 51, 56, 0, 64, 17, 64, 64, 64, 64, 64, + 0, 0, 0, 0, 51, 13, 9, 23, 64, 64, + 41, 42, 0, 0, 0, 51, 64, 40, 0, 0, + 0, 0, 24, 50, 49, 50, 0, 0, 0, 48, + 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -448,73 +449,75 @@ static yyconst flex_int32_t yy_meta[65] = 5, 5, 5, 5 } ; -static yyconst flex_int16_t yy_base[267] = +static yyconst flex_int16_t yy_base[273] = { 0, - 0, 63, 159, 646, 67, 71, 75, 79, 147, 0, - 646, 133, 126, 54, 70, 94, 65, 67, 65, 61, + 0, 63, 159, 660, 67, 71, 75, 79, 147, 0, + 660, 133, 126, 54, 70, 94, 65, 67, 65, 61, 71, 87, 72, 0, 103, 81, 119, 109, 135, 118, - 82, 112, 153, 155, 191, 208, 212, 646, 216, 179, - 224, 119, 99, 646, 0, 646, 0, 88, 95, 646, - 646, 646, 0, 113, 96, 105, 159, 169, 194, 172, + 82, 112, 153, 155, 191, 208, 212, 660, 216, 179, + 224, 119, 99, 660, 0, 660, 0, 88, 95, 660, + 660, 660, 0, 113, 96, 105, 159, 169, 194, 172, 188, 199, 215, 218, 201, 88, 0, 203, 218, 212, 212, 224, 213, 226, 211, 216, 0, 0, 223, 0, - 235, 232, 222, 227, 232, 240, 237, 249, 259, 0, - 263, 248, 253, 290, 299, 256, 0, 0, 84, 275, - - 0, 268, 266, 271, 287, 282, 291, 184, 280, 281, - 289, 300, 322, 285, 304, 300, 305, 298, 298, 312, - 0, 313, 297, 0, 313, 305, 309, 0, 326, 0, - 323, 321, 332, 360, 331, 337, 325, 347, 347, 338, - 342, 0, 359, 0, 0, 0, 375, 0, 0, 349, - 361, 368, 357, 373, 361, 0, 0, 0, 0, 366, - 367, 370, 0, 0, 381, 375, 385, 369, 370, 0, - 404, 0, 0, 387, 387, 0, 412, 0, 398, 397, - 0, 0, 391, 0, 399, 646, 401, 397, 0, 412, - 0, 415, 406, 404, 419, 408, 441, 451, 0, 416, - - 447, 0, 429, 0, 424, 0, 448, 447, 0, 451, - 438, 0, 0, 0, 471, 451, 475, 0, 453, 444, - 0, 458, 465, 466, 447, 509, 473, 472, 474, 516, - 646, 0, 0, 454, 476, 0, 482, 518, 494, 526, - 495, 0, 512, 532, 514, 542, 0, 646, 538, 646, - 540, 526, 547, 552, 646, 601, 603, 606, 609, 615, - 620, 625, 628, 633, 635, 640 + 235, 237, 219, 226, 238, 243, 262, 255, 259, 0, + 263, 251, 257, 290, 313, 262, 0, 0, 84, 277, + + 0, 271, 269, 268, 278, 278, 287, 184, 276, 277, + 291, 303, 327, 293, 309, 306, 301, 306, 307, 317, + 0, 317, 309, 0, 316, 308, 312, 319, 0, 330, + 0, 328, 323, 330, 377, 330, 333, 341, 350, 350, + 342, 344, 0, 368, 0, 0, 0, 386, 0, 0, + 357, 368, 375, 364, 380, 367, 0, 0, 0, 0, + 372, 373, 377, 0, 0, 387, 382, 387, 392, 377, + 378, 0, 414, 0, 0, 394, 395, 0, 423, 0, + 400, 406, 0, 0, 402, 0, 411, 660, 410, 407, + 0, 422, 0, 424, 417, 416, 415, 423, 417, 450, + + 456, 0, 424, 474, 0, 425, 0, 417, 0, 445, + 449, 0, 461, 446, 448, 0, 0, 0, 488, 466, + 482, 0, 463, 462, 0, 470, 475, 476, 468, 463, + 526, 487, 487, 488, 530, 660, 0, 0, 482, 494, + 0, 0, 495, 541, 508, 547, 503, 0, 523, 546, + 529, 553, 0, 660, 557, 660, 561, 531, 562, 566, + 660, 615, 617, 620, 623, 629, 634, 639, 642, 647, + 649, 654 } ; -static yyconst flex_int16_t yy_def[267] = +static yyconst flex_int16_t yy_def[273] = { 0, - 255, 1, 255, 255, 255, 255, 255, 255, 256, 257, - 255, 255, 255, 255, 255, 255, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 255, 255, 255, 255, 255, 255, - 255, 255, 256, 255, 259, 255, 260, 255, 255, 255, - 255, 255, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 255, 255, 255, 259, 260, 255, 258, - - 258, 258, 258, 258, 258, 258, 258, 261, 258, 258, - 258, 258, 255, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 255, 258, - 258, 258, 258, 258, 258, 258, 262, 263, 258, 258, - 258, 258, 255, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 264, 258, 258, 258, 258, 258, 255, 258, 258, 258, - 265, 263, 258, 258, 258, 255, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 264, 264, 258, 258, - - 255, 258, 258, 265, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 255, 255, 264, 258, 255, 258, - 258, 258, 258, 258, 258, 255, 255, 255, 255, 264, - 255, 258, 258, 258, 258, 258, 255, 255, 255, 264, - 258, 258, 255, 266, 255, 255, 258, 255, 266, 255, - 255, 255, 255, 266, 0, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255 + 261, 1, 261, 261, 261, 261, 261, 261, 262, 263, + 261, 261, 261, 261, 261, 261, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 261, 261, 261, 261, 261, 261, + 261, 261, 262, 261, 265, 261, 266, 261, 261, 261, + 261, 261, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 261, 261, 261, 265, 266, 261, 264, + + 264, 264, 264, 264, 264, 264, 264, 267, 264, 264, + 264, 264, 261, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 261, + 264, 264, 264, 264, 264, 264, 264, 268, 269, 264, + 264, 264, 264, 261, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 270, 264, 264, 264, 264, 264, 261, 264, + 264, 264, 271, 269, 264, 264, 264, 261, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 270, + + 270, 264, 264, 261, 264, 264, 271, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 261, 261, + 270, 264, 261, 264, 264, 264, 264, 264, 264, 264, + 261, 261, 261, 261, 270, 261, 264, 264, 264, 264, + 264, 264, 261, 261, 261, 270, 264, 264, 261, 272, + 261, 261, 264, 261, 272, 261, 261, 261, 261, 272, + 0, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261 } ; -static yyconst flex_int16_t yy_nxt[711] = +static yyconst flex_int16_t yy_nxt[725] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 13, 4, 14, 15, 11, 16, 17, 18, 19, 20, @@ -532,71 +535,73 @@ static yyconst flex_int16_t yy_nxt[711] = 42, 60, 65, 61, 67, 66, 102, 84, 63, 75, 70, 68, 85, 62, 71, 72, 47, 69, 76, 73, 101, 46, 86, 64, 81, 96, 87, 100, 74, 67, - 82, 102, 44, 83, 75, 68, 77, 85, 255, 255, + 82, 102, 44, 83, 75, 68, 77, 85, 261, 261, 72, 69, 76, 78, 73, 79, 86, 80, 81, 96, 87, 100, 74, 88, 82, 103, 89, 83, 91, 92, - 40, 77, 90, 40, 93, 147, 255, 78, 147, 79, - 255, 80, 94, 38, 38, 95, 53, 104, 88, 42, + 40, 77, 90, 40, 93, 148, 261, 78, 148, 79, + 261, 80, 94, 38, 38, 95, 53, 104, 88, 42, - 103, 89, 255, 91, 92, 107, 90, 108, 93, 95, + 103, 89, 261, 91, 92, 107, 90, 108, 93, 95, 38, 38, 95, 37, 38, 38, 39, 39, 38, 38, 39, 104, 105, 109, 42, 40, 41, 41, 40, 107, - 112, 106, 108, 110, 111, 255, 114, 115, 116, 255, + 112, 106, 108, 110, 111, 261, 114, 115, 116, 261, 117, 118, 119, 125, 42, 121, 105, 120, 109, 123, - 124, 126, 127, 132, 112, 106, 128, 129, 110, 111, - 114, 115, 122, 116, 117, 118, 130, 119, 125, 42, - 121, 120, 131, 123, 124, 133, 126, 127, 132, 134, - 128, 129, 137, 135, 255, 138, 122, 136, 255, 139, - 130, 94, 38, 38, 95, 140, 131, 141, 142, 133, - - 95, 38, 38, 95, 134, 143, 137, 144, 135, 138, - 145, 146, 136, 139, 149, 150, 151, 152, 255, 154, - 140, 141, 142, 113, 155, 158, 113, 157, 159, 143, - 160, 163, 144, 156, 145, 161, 146, 162, 149, 150, - 151, 164, 152, 154, 165, 166, 167, 168, 175, 155, - 158, 157, 159, 169, 160, 163, 153, 156, 170, 173, - 161, 171, 162, 174, 171, 164, 176, 177, 165, 166, - 178, 167, 168, 175, 179, 180, 147, 169, 183, 147, - 153, 184, 170, 173, 185, 255, 186, 174, 172, 187, - 191, 176, 177, 188, 178, 189, 190, 192, 179, 193, - - 180, 194, 183, 195, 196, 171, 184, 199, 171, 185, - 186, 200, 172, 201, 187, 191, 201, 188, 202, 189, - 190, 203, 192, 205, 193, 206, 194, 195, 196, 207, - 208, 209, 199, 210, 255, 211, 200, 198, 212, 213, - 255, 214, 215, 202, 218, 215, 203, 205, 201, 206, - 216, 201, 215, 207, 208, 215, 209, 220, 210, 211, - 216, 198, 212, 221, 213, 214, 222, 223, 218, 224, - 227, 219, 226, 225, 231, 226, 215, 232, 233, 215, - 236, 220, 217, 234, 216, 229, 235, 221, 241, 237, - 227, 222, 223, 238, 224, 227, 219, 225, 239, 231, - - 228, 232, 242, 233, 236, 229, 217, 230, 234, 229, - 226, 235, 241, 226, 237, 227, 243, 215, 238, 244, - 215, 245, 244, 239, 228, 216, 242, 246, 247, 229, - 246, 230, 248, 244, 250, 216, 244, 255, 228, 255, - 243, 251, 255, 251, 251, 245, 251, 253, 254, 255, - 240, 254, 247, 254, 255, 255, 254, 248, 255, 250, - 255, 227, 228, 255, 255, 255, 255, 255, 255, 252, - 255, 252, 253, 255, 240, 255, 229, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 227, 255, 255, 255, - 255, 255, 255, 252, 255, 252, 255, 255, 255, 255, - - 229, 43, 43, 255, 43, 43, 43, 45, 45, 53, - 53, 53, 97, 97, 97, 98, 98, 255, 98, 98, - 98, 148, 255, 148, 148, 148, 181, 255, 255, 181, - 181, 182, 182, 182, 197, 255, 255, 197, 204, 204, - 204, 249, 255, 255, 249, 3, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 + 124, 126, 261, 129, 112, 106, 130, 127, 110, 111, + 114, 115, 122, 116, 117, 118, 128, 119, 125, 42, + 121, 120, 131, 123, 124, 132, 126, 129, 133, 135, + 130, 134, 127, 136, 261, 138, 122, 137, 261, 139, + 128, 94, 38, 38, 95, 140, 131, 141, 145, 132, + + 142, 143, 144, 133, 135, 134, 146, 147, 136, 138, + 150, 151, 137, 139, 95, 38, 38, 95, 152, 140, + 153, 159, 141, 145, 142, 143, 144, 155, 113, 156, + 146, 113, 147, 158, 150, 151, 160, 261, 157, 161, + 162, 163, 152, 164, 165, 153, 159, 166, 167, 168, + 169, 155, 170, 261, 156, 171, 172, 158, 175, 176, + 160, 154, 157, 161, 177, 162, 163, 164, 165, 178, + 179, 166, 167, 168, 180, 169, 181, 170, 173, 171, + 172, 173, 175, 176, 182, 154, 185, 148, 186, 177, + 148, 187, 261, 188, 178, 179, 189, 193, 180, 190, + + 181, 191, 192, 194, 261, 174, 195, 196, 197, 182, + 185, 198, 199, 186, 202, 173, 187, 188, 173, 203, + 205, 189, 193, 190, 204, 191, 192, 204, 194, 174, + 206, 195, 196, 197, 208, 198, 199, 209, 210, 202, + 211, 212, 213, 217, 203, 205, 214, 201, 215, 216, + 218, 219, 222, 224, 219, 206, 225, 219, 208, 220, + 219, 209, 210, 226, 211, 220, 212, 213, 217, 227, + 214, 201, 215, 216, 218, 204, 222, 224, 204, 228, + 225, 229, 230, 219, 236, 232, 219, 221, 226, 231, + 238, 220, 231, 239, 227, 237, 240, 261, 223, 261, + + 234, 241, 242, 243, 228, 229, 230, 232, 244, 236, + 232, 221, 245, 261, 235, 238, 247, 233, 239, 237, + 248, 240, 234, 223, 234, 241, 242, 231, 243, 249, + 231, 219, 232, 244, 219, 251, 253, 245, 235, 220, + 247, 233, 250, 254, 248, 250, 234, 250, 252, 256, + 250, 252, 259, 249, 257, 233, 220, 257, 261, 251, + 253, 261, 257, 260, 246, 257, 260, 260, 254, 261, + 260, 261, 232, 261, 256, 261, 261, 259, 261, 233, + 261, 261, 258, 261, 261, 261, 261, 234, 246, 261, + 258, 261, 261, 261, 261, 261, 261, 232, 261, 261, + + 261, 261, 261, 261, 261, 261, 258, 261, 261, 261, + 261, 234, 261, 261, 258, 43, 43, 261, 43, 43, + 43, 45, 45, 53, 53, 53, 97, 97, 97, 98, + 98, 261, 98, 98, 98, 149, 261, 149, 149, 149, + 183, 261, 261, 183, 183, 184, 184, 184, 200, 261, + 261, 200, 207, 207, 207, 255, 261, 261, 255, 3, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261 } ; -static yyconst flex_int16_t yy_chk[711] = +static yyconst flex_int16_t yy_chk[725] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -625,57 +630,59 @@ static yyconst flex_int16_t yy_chk[711] = 39, 58, 59, 62, 40, 41, 41, 41, 41, 60, 65, 59, 61, 63, 64, 0, 68, 68, 69, 0, 70, 71, 72, 79, 41, 74, 59, 73, 62, 75, - 76, 81, 82, 87, 65, 59, 83, 84, 63, 64, - 68, 68, 74, 69, 70, 71, 85, 72, 79, 41, - 74, 73, 86, 75, 76, 88, 81, 82, 87, 89, - 83, 84, 92, 91, 0, 93, 74, 91, 0, 96, - 85, 94, 94, 94, 94, 100, 86, 102, 103, 88, - - 95, 95, 95, 95, 89, 104, 92, 105, 91, 93, - 106, 107, 91, 96, 109, 110, 111, 112, 0, 114, - 100, 102, 103, 113, 115, 117, 113, 116, 118, 104, - 119, 123, 105, 115, 106, 120, 107, 122, 109, 110, - 111, 125, 112, 114, 126, 127, 129, 131, 137, 115, - 117, 116, 118, 132, 119, 123, 113, 115, 133, 135, - 120, 134, 122, 136, 134, 125, 138, 139, 126, 127, - 140, 129, 131, 137, 141, 143, 147, 132, 150, 147, - 113, 151, 133, 135, 152, 0, 153, 136, 134, 154, - 162, 138, 139, 155, 140, 160, 161, 165, 141, 166, - - 143, 167, 150, 168, 169, 171, 151, 174, 171, 152, - 153, 175, 134, 177, 154, 162, 177, 155, 179, 160, - 161, 180, 165, 183, 166, 185, 167, 168, 169, 187, - 188, 190, 174, 192, 0, 193, 175, 171, 194, 195, - 0, 196, 197, 179, 200, 197, 180, 183, 201, 185, - 197, 201, 198, 187, 188, 198, 190, 203, 192, 193, - 198, 171, 194, 205, 195, 196, 207, 208, 200, 210, - 216, 201, 215, 211, 219, 215, 217, 220, 222, 217, - 225, 203, 198, 223, 217, 216, 224, 205, 234, 227, - 215, 207, 208, 228, 210, 216, 201, 211, 229, 219, - - 215, 220, 235, 222, 225, 215, 198, 217, 223, 216, - 226, 224, 234, 226, 227, 215, 237, 230, 228, 238, - 230, 239, 238, 229, 215, 230, 235, 240, 241, 215, - 240, 217, 243, 244, 245, 240, 244, 0, 226, 249, - 237, 251, 249, 246, 251, 239, 246, 252, 253, 0, - 230, 253, 241, 254, 0, 0, 254, 243, 0, 245, - 0, 246, 226, 0, 0, 0, 0, 0, 0, 251, - 0, 246, 252, 0, 230, 0, 246, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, - 0, 0, 0, 251, 0, 246, 0, 0, 0, 0, - - 246, 256, 256, 0, 256, 256, 256, 257, 257, 258, - 258, 258, 259, 259, 259, 260, 260, 0, 260, 260, - 260, 261, 0, 261, 261, 261, 262, 0, 0, 262, - 262, 263, 263, 263, 264, 0, 0, 264, 265, 265, - 265, 266, 0, 0, 266, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 + 76, 81, 0, 83, 65, 59, 84, 82, 63, 64, + 68, 68, 74, 69, 70, 71, 82, 72, 79, 41, + 74, 73, 85, 75, 76, 86, 81, 83, 87, 89, + 84, 88, 82, 91, 0, 92, 74, 91, 0, 93, + 82, 94, 94, 94, 94, 96, 85, 100, 105, 86, + + 102, 103, 104, 87, 89, 88, 106, 107, 91, 92, + 109, 110, 91, 93, 95, 95, 95, 95, 111, 96, + 112, 117, 100, 105, 102, 103, 104, 114, 113, 115, + 106, 113, 107, 116, 109, 110, 118, 0, 115, 119, + 120, 122, 111, 123, 125, 112, 117, 126, 127, 128, + 130, 114, 132, 0, 115, 133, 134, 116, 136, 137, + 118, 113, 115, 119, 138, 120, 122, 123, 125, 139, + 140, 126, 127, 128, 141, 130, 142, 132, 135, 133, + 134, 135, 136, 137, 144, 113, 151, 148, 152, 138, + 148, 153, 0, 154, 139, 140, 155, 163, 141, 156, + + 142, 161, 162, 166, 0, 135, 167, 168, 169, 144, + 151, 170, 171, 152, 176, 173, 153, 154, 173, 177, + 181, 155, 163, 156, 179, 161, 162, 179, 166, 135, + 182, 167, 168, 169, 185, 170, 171, 187, 189, 176, + 190, 192, 194, 198, 177, 181, 195, 173, 196, 197, + 199, 200, 203, 206, 200, 182, 208, 201, 185, 200, + 201, 187, 189, 210, 190, 201, 192, 194, 198, 211, + 195, 173, 196, 197, 199, 204, 203, 206, 204, 213, + 208, 214, 215, 221, 223, 220, 221, 201, 210, 219, + 226, 221, 219, 227, 211, 224, 228, 0, 204, 0, + + 220, 229, 230, 232, 213, 214, 215, 219, 233, 223, + 220, 201, 234, 0, 221, 226, 239, 219, 227, 224, + 240, 228, 219, 204, 220, 229, 230, 231, 232, 243, + 231, 235, 219, 233, 235, 245, 247, 234, 221, 235, + 239, 219, 244, 249, 240, 244, 219, 250, 246, 251, + 250, 246, 258, 243, 252, 231, 246, 252, 255, 245, + 247, 255, 257, 259, 235, 257, 259, 260, 249, 0, + 260, 0, 252, 0, 251, 0, 0, 258, 0, 231, + 0, 0, 252, 0, 0, 0, 0, 252, 235, 0, + 257, 0, 0, 0, 0, 0, 0, 252, 0, 0, + + 0, 0, 0, 0, 0, 0, 252, 0, 0, 0, + 0, 252, 0, 0, 257, 262, 262, 0, 262, 262, + 262, 263, 263, 264, 264, 264, 265, 265, 265, 266, + 266, 0, 266, 266, 266, 267, 0, 267, 267, 267, + 268, 0, 0, 268, 268, 269, 269, 269, 270, 0, + 0, 270, 271, 271, 271, 272, 0, 0, 272, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261 } ; static yy_state_type yy_last_accepting_state; @@ -760,7 +767,7 @@ static int checkImmediate(int token) { return token; } -#line 764 "engines/director/lingo/lingo-lex.cpp" +#line 771 "engines/director/lingo/lingo-lex.cpp" #define INITIAL 0 @@ -946,7 +953,7 @@ YY_DECL #line 82 "engines/director/lingo/lingo-lex.l" -#line 950 "engines/director/lingo/lingo-lex.cpp" +#line 957 "engines/director/lingo/lingo-lex.cpp" if ( !(yy_init) ) { @@ -1000,13 +1007,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 >= 256 ) + if ( yy_current_state >= 262 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 646 ); + while ( yy_base[yy_current_state] != 660 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1250,31 +1257,36 @@ YY_RULE_SETUP case 42: YY_RULE_SETUP #line 137 "engines/director/lingo/lingo-lex.l" -{ count(); return tPUT; } +{ count(); return tPROPERTY; } // D4 YY_BREAK case 43: YY_RULE_SETUP #line 138 "engines/director/lingo/lingo-lex.l" -{ count(); return checkImmediate(tREPEAT); } +{ count(); return tPUT; } YY_BREAK case 44: YY_RULE_SETUP #line 139 "engines/director/lingo/lingo-lex.l" -{ count(); return tSET; } +{ count(); return checkImmediate(tREPEAT); } YY_BREAK case 45: YY_RULE_SETUP #line 140 "engines/director/lingo/lingo-lex.l" -{ count(); return tSTARTS; } +{ count(); return tSET; } YY_BREAK case 46: YY_RULE_SETUP #line 141 "engines/director/lingo/lingo-lex.l" -{ count(); return tTELL; } +{ count(); return tSTARTS; } YY_BREAK case 47: YY_RULE_SETUP #line 142 "engines/director/lingo/lingo-lex.l" +{ count(); return tTELL; } + YY_BREAK +case 48: +YY_RULE_SETUP +#line 143 "engines/director/lingo/lingo-lex.l" { count(); @@ -1287,9 +1299,9 @@ YY_RULE_SETUP return THEENTITYWITHID; } YY_BREAK -case 48: +case 49: YY_RULE_SETUP -#line 153 "engines/director/lingo/lingo-lex.l" +#line 154 "engines/director/lingo/lingo-lex.l" { count(); @@ -1334,9 +1346,9 @@ YY_RULE_SETUP warning("Unhandled the entity %s", ptr); } YY_BREAK -case 49: +case 50: YY_RULE_SETUP -#line 196 "engines/director/lingo/lingo-lex.l" +#line 197 "engines/director/lingo/lingo-lex.l" { count(); @@ -1372,9 +1384,9 @@ YY_RULE_SETUP return THEENTITY; } YY_BREAK -case 50: +case 51: YY_RULE_SETUP -#line 230 "engines/director/lingo/lingo-lex.l" +#line 231 "engines/director/lingo/lingo-lex.l" { count(); @@ -1398,69 +1410,69 @@ YY_RULE_SETUP warning("Unhandled the entity %s", ptr); } YY_BREAK -case 51: -YY_RULE_SETUP -#line 252 "engines/director/lingo/lingo-lex.l" -{ count(); return tTHEN; } - YY_BREAK case 52: YY_RULE_SETUP #line 253 "engines/director/lingo/lingo-lex.l" -{ count(); return tTO; } +{ count(); return tTHEN; } YY_BREAK case 53: YY_RULE_SETUP #line 254 "engines/director/lingo/lingo-lex.l" -{ count(); return tSPRITE; } +{ count(); return tTO; } YY_BREAK case 54: YY_RULE_SETUP #line 255 "engines/director/lingo/lingo-lex.l" -{ count(); return tWITH; } +{ count(); return tSPRITE; } YY_BREAK case 55: YY_RULE_SETUP #line 256 "engines/director/lingo/lingo-lex.l" -{ count(); return tWITHIN; } +{ count(); return tWITH; } YY_BREAK case 56: YY_RULE_SETUP #line 257 "engines/director/lingo/lingo-lex.l" -{ count(); return tWHEN; } +{ count(); return tWITHIN; } YY_BREAK case 57: YY_RULE_SETUP #line 258 "engines/director/lingo/lingo-lex.l" -{ count(); return tWHILE; } +{ count(); return tWHEN; } YY_BREAK case 58: YY_RULE_SETUP #line 259 "engines/director/lingo/lingo-lex.l" -{ count(); return tWORD; } +{ count(); return tWHILE; } YY_BREAK case 59: YY_RULE_SETUP -#line 261 "engines/director/lingo/lingo-lex.l" -{ count(); return tNEQ; } +#line 260 "engines/director/lingo/lingo-lex.l" +{ count(); return tWORD; } YY_BREAK case 60: YY_RULE_SETUP #line 262 "engines/director/lingo/lingo-lex.l" -{ count(); return tGE; } +{ count(); return tNEQ; } YY_BREAK case 61: YY_RULE_SETUP #line 263 "engines/director/lingo/lingo-lex.l" -{ count(); return tLE; } +{ count(); return tGE; } YY_BREAK case 62: YY_RULE_SETUP #line 264 "engines/director/lingo/lingo-lex.l" -{ count(); return tCONCAT; } +{ count(); return tLE; } YY_BREAK case 63: YY_RULE_SETUP -#line 266 "engines/director/lingo/lingo-lex.l" +#line 265 "engines/director/lingo/lingo-lex.l" +{ count(); return tCONCAT; } + YY_BREAK +case 64: +YY_RULE_SETUP +#line 267 "engines/director/lingo/lingo-lex.l" { count(); yylval.s = new Common::String(yytext); @@ -1504,43 +1516,43 @@ YY_RULE_SETUP return ID; } YY_BREAK -case 64: -YY_RULE_SETUP -#line 308 "engines/director/lingo/lingo-lex.l" -{ count(); yylval.f = atof(yytext); return FLOAT; } - YY_BREAK case 65: YY_RULE_SETUP #line 309 "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 66: YY_RULE_SETUP #line 310 "engines/director/lingo/lingo-lex.l" -{ count(); return *yytext; } +{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; } YY_BREAK case 67: -/* rule 67 can match eol */ YY_RULE_SETUP #line 311 "engines/director/lingo/lingo-lex.l" -{ return '\n'; } +{ count(); return *yytext; } YY_BREAK case 68: +/* rule 68 can match eol */ YY_RULE_SETUP #line 312 "engines/director/lingo/lingo-lex.l" -{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; } +{ return '\n'; } YY_BREAK case 69: YY_RULE_SETUP #line 313 "engines/director/lingo/lingo-lex.l" - +{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; } YY_BREAK case 70: YY_RULE_SETUP -#line 315 "engines/director/lingo/lingo-lex.l" +#line 314 "engines/director/lingo/lingo-lex.l" + + YY_BREAK +case 71: +YY_RULE_SETUP +#line 316 "engines/director/lingo/lingo-lex.l" ECHO; YY_BREAK -#line 1544 "engines/director/lingo/lingo-lex.cpp" +#line 1556 "engines/director/lingo/lingo-lex.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1833,7 +1845,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 >= 256 ) + if ( yy_current_state >= 262 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1861,11 +1873,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 >= 256 ) + if ( yy_current_state >= 262 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 255); + yy_is_jam = (yy_current_state == 261); return yy_is_jam ? 0 : yy_current_state; } @@ -2503,7 +2515,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 315 "engines/director/lingo/lingo-lex.l" +#line 316 "engines/director/lingo/lingo-lex.l" diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l index d6bf59ad5d..ff8eb8fe72 100644 --- a/engines/director/lingo/lingo-lex.l +++ b/engines/director/lingo/lingo-lex.l @@ -134,6 +134,7 @@ whitespace [\t ] (?i:play) { count(); return tPLAY; } (?i:playAccel) { count(); yylval.s = new Common::String(yytext); return tPLAYACCEL; } (?i:previous) { count(); return tPREVIOUS; } +(?i:property) { count(); return tPROPERTY; } // D4 (?i:put) { count(); return tPUT; } (?i:repeat) { count(); return checkImmediate(tREPEAT); } (?i:set) { count(); return tSET; } diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index 66f3d3a3d3..42aa2328fd 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -309,6 +309,7 @@ public: static void c_gotoprevious(); static void c_global(); static void c_instance(); + static void c_property(); static void c_play(); static void c_playdone(); @@ -377,6 +378,7 @@ public: static void b_symbolp(int nargs); static void b_alert(int nargs); + static void b_birth(int nargs); static void b_cursor(int nargs); static void b_framesToHMS(int nargs); static void b_HMStoFrames(int nargs); @@ -461,6 +463,7 @@ public: static void b_soundPlayFile(int nargs); static void b_soundStop(int nargs); + static void b_ancestor(int nargs); static void b_backspace(int nargs); static void b_empty(int nargs); static void b_enter(int nargs); @@ -477,6 +480,7 @@ public: static void b_cast(int nargs); static void b_field(int nargs); static void b_me(int nargs); + static void b_script(int nargs); void func_mci(Common::String &s); void func_mciwait(Common::String &s); -- cgit v1.2.3