diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index fa3ca071ffa..900a296bb08 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -159,72 +159,73 @@ extern int yydebug; ARGCNORET = 269, THEENTITY = 270, THEENTITYWITHID = 271, - FLOAT = 272, - BLTIN = 273, - FBLTIN = 274, - RBLTIN = 275, - ID = 276, - STRING = 277, - HANDLER = 278, - SYMBOL = 279, - ENDCLAUSE = 280, - tPLAYACCEL = 281, - tMETHOD = 282, - THEOBJECTFIELD = 283, - tDOWN = 284, - tELSE = 285, - tELSIF = 286, - tEXIT = 287, - tGLOBAL = 288, - tGO = 289, - tIF = 290, - tINTO = 291, - tLOOP = 292, - tMACRO = 293, - tMOVIE = 294, - tNEXT = 295, - tOF = 296, - tPREVIOUS = 297, - tPUT = 298, - tREPEAT = 299, - tSET = 300, - tTHEN = 301, - tTO = 302, - tWHEN = 303, - tWITH = 304, - tWHILE = 305, - tNLELSE = 306, - tFACTORY = 307, - tOPEN = 308, - tPLAY = 309, - tDONE = 310, - tINSTANCE = 311, - tGE = 312, - tLE = 313, - tEQ = 314, - tNEQ = 315, - tAND = 316, - tOR = 317, - tNOT = 318, - tMOD = 319, - tAFTER = 320, - tBEFORE = 321, - tCONCAT = 322, - tCONTAINS = 323, - tSTARTS = 324, - tCHAR = 325, - tITEM = 326, - tLINE = 327, - tWORD = 328, - tSPRITE = 329, - tINTERSECTS = 330, - tWITHIN = 331, - tTELL = 332, - tPROPERTY = 333, - tON = 334, - tENDIF = 335, - tENDREPEAT = 336, - tENDTELL = 337 + THEMENUITEMENTITY = 272, + FLOAT = 273, + BLTIN = 274, + FBLTIN = 275, + RBLTIN = 276, + ID = 277, + STRING = 278, + HANDLER = 279, + SYMBOL = 280, + ENDCLAUSE = 281, + tPLAYACCEL = 282, + tMETHOD = 283, + THEOBJECTFIELD = 284, + tDOWN = 285, + tELSE = 286, + tELSIF = 287, + tEXIT = 288, + tGLOBAL = 289, + tGO = 290, + tIF = 291, + tINTO = 292, + tLOOP = 293, + tMACRO = 294, + tMOVIE = 295, + tNEXT = 296, + tOF = 297, + tPREVIOUS = 298, + tPUT = 299, + tREPEAT = 300, + tSET = 301, + tTHEN = 302, + tTO = 303, + tWHEN = 304, + tWITH = 305, + tWHILE = 306, + tNLELSE = 307, + tFACTORY = 308, + tOPEN = 309, + tPLAY = 310, + tDONE = 311, + tINSTANCE = 312, + tGE = 313, + tLE = 314, + tEQ = 315, + tNEQ = 316, + tAND = 317, + tOR = 318, + tNOT = 319, + tMOD = 320, + tAFTER = 321, + tBEFORE = 322, + tCONCAT = 323, + tCONTAINS = 324, + tSTARTS = 325, + tCHAR = 326, + tITEM = 327, + tLINE = 328, + tWORD = 329, + tSPRITE = 330, + tINTERSECTS = 331, + tWITHIN = 332, + tTELL = 333, + tPROPERTY = 334, + tON = 335, + tENDIF = 336, + tENDREPEAT = 337, + tENDTELL = 338 }; #endif @@ -247,7 +248,7 @@ union YYSTYPE int oe; } objectfield; -#line 251 "engines/director/lingo/lingo-gr.cpp" +#line 252 "engines/director/lingo/lingo-gr.cpp" }; typedef union YYSTYPE YYSTYPE; @@ -564,21 +565,21 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 123 +#define YYFINAL 124 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 1601 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 98 +#define YYNTOKENS 99 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 49 /* YYNRULES -- Number of rules. */ -#define YYNRULES 166 +#define YYNRULES 167 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 352 +#define YYNSTATES 359 #define YYUNDEFTOK 2 -#define YYMAXUTOK 337 +#define YYMAXUTOK 338 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -591,15 +592,15 @@ union yyalloc static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 91, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 92, 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, 90, 85, 2, - 92, 93, 88, 86, 94, 87, 2, 89, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 97, 2, - 83, 2, 84, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 91, 86, 2, + 93, 94, 89, 87, 95, 88, 2, 90, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 98, 2, + 84, 2, 85, 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, 95, 2, 96, 2, 2, 2, 2, 2, 2, + 2, 96, 2, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -623,7 +624,7 @@ static const yytype_int8 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 + 75, 76, 77, 78, 79, 80, 81, 82, 83 }; #if YYDEBUG @@ -631,22 +632,22 @@ static const yytype_int8 yytranslate[] = static const yytype_int16 yyrline[] = { 0, 135, 135, 136, 137, 139, 140, 141, 143, 149, - 152, 153, 154, 160, 167, 173, 180, 186, 192, 199, - 200, 201, 203, 204, 205, 206, 208, 209, 214, 225, - 242, 254, 259, 263, 268, 272, 282, 293, 294, 296, - 303, 313, 324, 326, 332, 338, 345, 347, 349, 350, - 351, 353, 359, 362, 365, 369, 373, 377, 379, 380, - 381, 384, 387, 390, 398, 404, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 442, 446, - 447, 448, 449, 450, 451, 451, 452, 453, 454, 457, - 460, 461, 463, 467, 472, 476, 481, 485, 497, 498, - 499, 500, 504, 508, 513, 514, 516, 517, 521, 525, - 529, 529, 559, 559, 559, 566, 567, 567, 574, 584, - 592, 592, 594, 595, 596, 597, 599, 600, 601, 603, - 605, 613, 614, 615, 617, 618, 620, 622, 623, 624, - 625, 627, 628, 630, 631, 633, 637 + 152, 153, 154, 160, 167, 173, 180, 186, 193, 204, + 211, 212, 213, 215, 216, 217, 218, 220, 221, 226, + 237, 254, 266, 271, 275, 280, 284, 294, 305, 306, + 308, 315, 325, 336, 338, 344, 350, 357, 359, 361, + 362, 363, 365, 371, 374, 377, 381, 385, 389, 391, + 392, 393, 396, 399, 402, 410, 416, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 454, + 458, 459, 460, 461, 462, 463, 463, 464, 465, 466, + 469, 472, 473, 475, 479, 484, 488, 493, 497, 509, + 510, 511, 512, 516, 520, 525, 526, 528, 529, 533, + 537, 541, 541, 571, 571, 571, 578, 579, 579, 586, + 596, 604, 604, 606, 607, 608, 609, 611, 612, 613, + 615, 617, 625, 626, 627, 629, 630, 632, 634, 635, + 636, 637, 639, 640, 642, 643, 645, 649 }; #endif @@ -657,26 +658,26 @@ static const char *const yytname[] = { "$end", "error", "$undefined", "UNARY", "CASTREF", "VOID", "VAR", "POINT", "RECT", "ARRAY", "OBJECT", "REFERENCE", "INT", "ARGC", - "ARGCNORET", "THEENTITY", "THEENTITYWITHID", "FLOAT", "BLTIN", "FBLTIN", - "RBLTIN", "ID", "STRING", "HANDLER", "SYMBOL", "ENDCLAUSE", "tPLAYACCEL", - "tMETHOD", "THEOBJECTFIELD", "tDOWN", "tELSE", "tELSIF", "tEXIT", - "tGLOBAL", "tGO", "tIF", "tINTO", "tLOOP", "tMACRO", "tMOVIE", "tNEXT", - "tOF", "tPREVIOUS", "tPUT", "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", - "tWITH", "tWHILE", "tNLELSE", "tFACTORY", "tOPEN", "tPLAY", "tDONE", - "tINSTANCE", "tGE", "tLE", "tEQ", "tNEQ", "tAND", "tOR", "tNOT", "tMOD", - "tAFTER", "tBEFORE", "tCONCAT", "tCONTAINS", "tSTARTS", "tCHAR", "tITEM", - "tLINE", "tWORD", "tSPRITE", "tINTERSECTS", "tWITHIN", "tTELL", - "tPROPERTY", "tON", "tENDIF", "tENDREPEAT", "tENDTELL", "'<'", "'>'", - "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'\\n'", "'('", "')'", "','", - "'['", "']'", "':'", "$accept", "program", "programline", "asgn", - "stmtoneliner", "stmtonelinerwithif", "stmt", "tellstart", "ifstmt", - "elseifstmtlist", "elseifstmt", "ifoneliner", "repeatwhile", - "repeatwith", "if", "elseif", "begin", "end", "stmtlist", "when", - "simpleexpr", "expr", "reference", "proc", "$@1", "globallist", - "propertylist", "instancelist", "gotofunc", "gotomovie", "playfunc", - "$@2", "defn", "$@3", "$@4", "$@5", "on", "$@6", "argdef", "endargdef", - "argstore", "macro", "arglist", "nonemptyarglist", "list", "valuelist", - "linearlist", "proplist", "proppair", YY_NULLPTR + "ARGCNORET", "THEENTITY", "THEENTITYWITHID", "THEMENUITEMENTITY", + "FLOAT", "BLTIN", "FBLTIN", "RBLTIN", "ID", "STRING", "HANDLER", + "SYMBOL", "ENDCLAUSE", "tPLAYACCEL", "tMETHOD", "THEOBJECTFIELD", + "tDOWN", "tELSE", "tELSIF", "tEXIT", "tGLOBAL", "tGO", "tIF", "tINTO", + "tLOOP", "tMACRO", "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", + "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tNLELSE", + "tFACTORY", "tOPEN", "tPLAY", "tDONE", "tINSTANCE", "tGE", "tLE", "tEQ", + "tNEQ", "tAND", "tOR", "tNOT", "tMOD", "tAFTER", "tBEFORE", "tCONCAT", + "tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE", + "tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tENDIF", + "tENDREPEAT", "tENDTELL", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", + "'/'", "'%'", "'\\n'", "'('", "')'", "','", "'['", "']'", "':'", + "$accept", "program", "programline", "asgn", "stmtoneliner", + "stmtonelinerwithif", "stmt", "tellstart", "ifstmt", "elseifstmtlist", + "elseifstmt", "ifoneliner", "repeatwhile", "repeatwith", "if", "elseif", + "begin", "end", "stmtlist", "when", "simpleexpr", "expr", "reference", + "proc", "$@1", "globallist", "propertylist", "instancelist", "gotofunc", + "gotomovie", "playfunc", "$@2", "defn", "$@3", "$@4", "$@5", "on", "$@6", + "argdef", "endargdef", "argstore", "macro", "arglist", "nonemptyarglist", + "list", "valuelist", "linearlist", "proplist", "proppair", YY_NULLPTR }; #endif @@ -693,12 +694,12 @@ static const yytype_int16 yytoknum[] = 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 60, 62, 38, 43, 45, 42, 47, - 37, 10, 40, 41, 44, 91, 93, 58 + 335, 336, 337, 338, 60, 62, 38, 43, 45, 42, + 47, 37, 10, 40, 41, 44, 91, 93, 58 }; # endif -#define YYPACT_NINF (-261) +#define YYPACT_NINF (-267) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -712,42 +713,42 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 271, -82, -261, -261, 874, -261, 908, 989, 75, 1023, - -261, -261, -261, -261, -261, -29, -261, 757, -261, -261, - 874, 44, 85, 26, 37, 874, 793, 39, 874, 874, - 874, 874, 874, 874, 874, 56, -261, 874, 874, 874, - 61, 7, -261, -261, -261, -261, -261, 874, 22, 874, - 595, -261, 1512, -261, -261, -261, -261, -261, -261, -261, - -261, -261, -8, 874, 1512, 874, 1512, -6, 874, -6, - -261, -261, 874, 1512, 18, 874, -261, -261, 102, -261, - 874, -261, 88, -261, 1075, -261, 103, 1062, 108, -261, - -7, 75, 15, 104, 107, -261, 1429, -261, 1075, -261, - -261, 55, -261, 1124, 1157, 1190, 1223, 1479, 1388, -261, - 60, 129, -261, -261, 1442, 62, 65, -261, -261, 67, - 63, 70, -261, -261, 352, 1512, 874, 1512, -261, -261, - 874, 1512, -261, -261, 874, 874, 874, 874, 874, 874, - 874, 874, 874, 874, 874, 874, 874, 874, 874, 874, - 874, 146, 874, 1062, 1442, 9, 874, 21, 27, 874, - -6, 146, -261, 80, 1512, 874, -261, -261, 89, 874, - 874, -261, 874, 874, 16, 874, 874, 874, -261, 874, - -261, 155, 874, 874, 874, 874, 874, 874, 874, 874, - 874, 874, -261, -261, 156, -261, -261, 75, 75, -261, - 75, -5, -261, -261, 1512, 142, -261, 1512, 180, 180, - 180, 180, 133, 133, -261, -33, 180, 180, 180, 180, - -33, -52, -52, -261, -261, -261, -50, -261, 1512, -261, - -261, 1512, 13, 173, 1512, -261, -261, -261, 1512, 1512, - 1512, 180, 874, 874, 1512, 180, 1512, 1512, -261, 1512, - 1256, 1512, 1289, 1512, 1322, 1512, 1355, 1512, 1512, 676, - -261, -261, -261, -261, -261, 62, 65, -261, 514, 10, - -261, 153, 109, 185, 109, -261, 146, 1512, 180, 874, - 874, 874, 874, -261, 514, -261, -261, 126, 161, 874, - 514, 676, 188, -261, -261, -261, 17, 1512, 1512, 1512, - 1512, -261, 128, -261, 874, 1512, -261, -261, -261, 433, - 514, 109, -261, 1512, -261, 86, -10, 191, -261, -261, - 514, -261, -261, -261, 874, 134, -261, -261, -261, 119, - 514, 514, 143, -261, 1512, -261, 676, 194, 144, -261, - 514, 177, -261, -261, -261, 147, -261, 149, -261, 514, - -261, -261 + 275, -50, -267, -267, 864, -267, 897, 976, 82, 1009, + -267, -267, -267, -267, -267, 4, -267, 749, -267, -267, + 864, 46, 208, 30, 45, 864, 785, 53, 864, 864, + 864, 864, 864, 864, 864, 56, -267, 864, 864, 864, + 61, 6, -267, -267, -267, -267, -267, 864, 22, 864, + 591, -267, 1498, -267, -267, -267, -267, -267, -267, -267, + -267, -267, -8, 864, 1498, 864, 1498, 18, 864, 18, + -267, -267, 864, 1498, 21, 864, -267, -267, 69, -267, + 864, -267, 81, -267, 1061, -267, 100, 1048, 102, -267, + -9, 82, 82, 9, 77, 79, -267, 1415, -267, 1061, + -267, -267, 34, -267, 1110, 1143, 1176, 1209, 1465, 1374, + -267, 35, 128, -267, -267, 1428, 54, 57, -267, -267, + 63, 59, 66, -267, -267, 354, 1498, 864, 1498, -267, + -267, 864, 1498, -267, -267, 864, 864, 864, 864, 864, + 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, + 864, 864, 129, 864, 1048, 1428, -32, 864, 8, 15, + 864, 18, 129, -267, 68, 1498, 864, -267, -267, 90, + 864, 864, -267, 864, 864, 10, 116, 864, 864, 864, + -267, 864, -267, 142, 864, 864, 864, 864, 864, 864, + 864, 864, 864, 864, -267, -267, 146, -267, -267, 82, + 82, -267, 82, 83, -267, -267, 1498, 124, -267, 1498, + 125, 125, 125, 125, 1511, 1511, -267, -34, 125, 125, + 125, 125, -34, 0, 0, -267, -267, -267, -80, -267, + 1498, -267, -267, 1498, -75, 150, 1498, -267, -267, -267, + 1498, 1498, 1498, 125, 864, 864, 154, 1498, 125, 1498, + 1498, -267, 1498, 1242, 1498, 1275, 1498, 1308, 1498, 1341, + 1498, 1498, 670, -267, -267, -267, -267, -267, 54, 57, + -267, 512, -16, -267, 144, 97, 172, 97, -267, 129, + 1498, 125, 82, 864, 864, 864, 864, -267, 512, -267, + -267, 115, 151, 864, 512, 670, 176, -267, -267, -267, + -48, 156, 1498, 1498, 1498, 1498, -267, 122, -267, 864, + 1498, -267, -267, -267, 433, 512, 97, 864, -267, 1498, + -267, 88, -21, 184, -267, 1498, -267, 512, -267, -267, + -267, 864, 126, -267, -267, -267, 113, 512, 512, 127, + -267, 1498, -267, 670, 188, 134, -267, 512, 170, -267, + -267, -267, 138, -267, 140, -267, 512, -267, -267 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -755,62 +756,62 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 52, 63, 0, 53, 151, 151, 0, 56, - 55, 54, 130, 136, 65, 103, 104, 0, 44, 132, + 0, 0, 53, 64, 0, 54, 152, 152, 0, 57, + 56, 55, 131, 137, 66, 104, 105, 0, 45, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, - 157, 0, 3, 66, 26, 7, 27, 0, 0, 0, - 0, 58, 20, 59, 21, 100, 101, 6, 46, 19, - 57, 4, 56, 0, 64, 151, 152, 109, 151, 61, - 56, 98, 151, 154, 150, 151, 46, 102, 0, 118, - 0, 119, 0, 120, 121, 123, 0, 99, 0, 42, - 0, 0, 0, 0, 0, 135, 111, 126, 127, 129, - 116, 107, 80, 0, 0, 0, 0, 0, 0, 114, - 106, 0, 85, 86, 0, 55, 54, 158, 161, 0, - 159, 160, 163, 1, 5, 47, 0, 47, 47, 25, - 0, 23, 24, 22, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, + 158, 0, 3, 67, 27, 7, 28, 0, 0, 0, + 0, 59, 21, 60, 22, 101, 102, 6, 47, 20, + 58, 4, 57, 0, 65, 152, 153, 110, 152, 62, + 57, 99, 152, 155, 151, 152, 47, 103, 0, 119, + 0, 120, 0, 121, 122, 124, 0, 100, 0, 43, + 0, 0, 0, 0, 0, 0, 136, 112, 127, 128, + 130, 117, 108, 81, 0, 0, 0, 0, 0, 0, + 115, 107, 0, 86, 87, 0, 56, 55, 159, 162, + 0, 160, 161, 164, 1, 5, 48, 0, 48, 48, + 26, 0, 24, 25, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 151, 0, 152, 0, 0, 0, 0, 0, - 131, 142, 112, 105, 125, 0, 122, 133, 0, 0, - 0, 43, 0, 0, 0, 0, 0, 0, 51, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 34, 0, 141, 87, 0, 0, 156, - 0, 0, 2, 48, 47, 0, 31, 47, 76, 77, - 74, 75, 78, 79, 71, 82, 83, 84, 73, 72, - 81, 67, 68, 69, 70, 143, 0, 108, 153, 60, - 62, 155, 0, 0, 124, 46, 8, 9, 10, 11, - 15, 13, 0, 0, 14, 12, 18, 110, 117, 90, - 0, 92, 0, 94, 0, 96, 0, 88, 89, 0, - 48, 115, 166, 165, 162, 0, 0, 164, 47, 0, - 48, 0, 149, 0, 149, 113, 142, 16, 17, 0, - 0, 0, 0, 47, 47, 49, 50, 0, 0, 0, - 47, 0, 0, 48, 144, 48, 0, 91, 93, 95, - 97, 33, 0, 28, 0, 47, 37, 47, 145, 139, - 137, 149, 32, 47, 48, 47, 0, 146, 48, 48, - 47, 46, 45, 38, 0, 0, 46, 41, 147, 138, - 134, 47, 0, 48, 47, 35, 0, 0, 0, 29, - 47, 0, 47, 148, 30, 0, 48, 0, 36, 47, - 40, 39 + 0, 0, 143, 152, 0, 153, 0, 0, 0, 0, + 0, 132, 143, 113, 106, 126, 0, 123, 134, 0, + 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 129, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 35, 0, 142, 88, 0, + 0, 157, 0, 0, 2, 49, 48, 0, 32, 48, + 77, 78, 75, 76, 79, 80, 72, 83, 84, 85, + 74, 73, 82, 68, 69, 70, 71, 144, 0, 109, + 154, 61, 63, 156, 0, 0, 125, 47, 8, 9, + 10, 11, 15, 13, 0, 0, 0, 14, 12, 19, + 111, 118, 91, 0, 93, 0, 95, 0, 97, 0, + 89, 90, 0, 49, 116, 167, 166, 163, 0, 0, + 165, 48, 0, 49, 0, 150, 0, 150, 114, 143, + 16, 17, 0, 0, 0, 0, 0, 48, 48, 50, + 51, 0, 0, 0, 48, 0, 0, 49, 145, 49, + 0, 0, 92, 94, 96, 98, 34, 0, 29, 0, + 48, 38, 48, 146, 140, 138, 150, 0, 33, 48, + 49, 48, 0, 147, 49, 18, 49, 48, 47, 46, + 39, 0, 0, 47, 42, 148, 139, 135, 48, 0, + 49, 48, 36, 0, 0, 0, 30, 48, 0, 48, + 149, 31, 0, 49, 0, 37, 48, 41, 40 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -261, -261, 106, -261, -241, -261, 23, 38, -261, -261, - -261, -261, -261, -261, 182, -261, -75, -79, -228, -261, - -2, -4, 69, 183, -261, -261, -261, -261, -261, -18, - -261, -261, -261, -261, -261, -261, -261, -261, -157, -261, - -260, 190, 4, -261, -261, -261, -261, -261, 34 + -267, -267, 101, -267, -255, -267, 23, 27, -267, -267, + -267, -267, -267, -267, 178, -267, -72, -92, -225, -267, + 1, -4, 62, 182, -267, -267, -267, -267, -267, -18, + -267, -267, -267, -267, -267, -267, -267, -267, -161, -267, + -266, 183, 12, -267, -267, -267, -267, -267, 31 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 41, 42, 43, 44, 128, 286, 259, 46, 315, - 323, 129, 47, 48, 49, 324, 151, 203, 268, 50, - 51, 52, 53, 54, 78, 163, 110, 101, 55, 85, - 56, 75, 57, 86, 235, 76, 58, 111, 226, 329, - 293, 59, 158, 74, 60, 119, 120, 121, 122 + -1, 41, 42, 43, 44, 129, 290, 262, 46, 321, + 330, 130, 47, 48, 49, 331, 152, 205, 271, 50, + 51, 52, 53, 54, 78, 164, 111, 102, 55, 85, + 56, 75, 57, 86, 237, 76, 58, 112, 228, 336, + 297, 59, 159, 74, 60, 120, 121, 122, 123 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -818,418 +819,418 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 64, 161, 66, 66, 232, 73, 71, 123, 99, 61, - 67, 69, 140, 84, 295, 77, 87, 265, 283, 266, - 326, 96, 98, 45, 102, 103, 104, 105, 106, 107, - 108, 140, 284, 112, 113, 114, 149, 150, 118, 288, - 172, 272, 290, 125, 273, 127, 131, 94, 205, 206, - 307, 318, 173, 147, 148, 149, 150, 289, 95, 153, - 100, 154, 175, 242, 154, 309, 166, 310, 154, 155, - 327, 66, 157, 2, 176, 243, 164, 109, 5, 160, - 180, 126, 70, 115, 152, 116, 320, 2, 156, 174, - 330, 331, 5, 88, 89, 342, 70, 10, 124, 11, - 90, 91, 227, 156, 274, 340, 92, 273, 311, 8, - 236, 273, 159, 93, 229, 156, 321, 322, 349, 296, - 230, 156, 204, 162, 167, 269, 207, 165, 271, 171, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 45, 66, 181, - 195, 177, 228, 178, 194, 231, 40, 200, 117, 197, - 276, 234, 198, 199, 201, 238, 239, 225, 240, 241, - 40, 244, 245, 246, 233, 247, 248, 261, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 270, 287, - 134, 135, 136, 137, 275, 262, 263, 140, 264, 291, - 141, 142, 143, 292, 301, 302, 294, 303, 304, 308, - 312, 306, 328, 337, 335, 343, 144, 145, 146, 147, - 148, 149, 150, 346, 339, 344, 314, 348, 316, 350, - 202, 260, 130, 132, 319, 267, 325, 237, 277, 278, - 133, 332, 0, 0, 140, 0, 333, 141, 0, 0, - 0, 336, 338, 0, 0, 341, 0, 0, 0, 0, - 0, 345, 0, 347, 0, 146, 147, 148, 149, 150, - 351, -5, 1, 0, 0, 297, 298, 299, 300, 0, - 0, 0, 0, 2, 0, 305, 3, 4, 5, 6, - 7, 8, 9, 10, 0, 11, 0, 12, 13, 14, - 313, 0, 0, 15, 16, 17, 18, 0, 0, 19, - 0, 0, 0, 0, 20, 21, 22, 0, 0, 23, - 334, 0, 0, 24, 25, 26, 0, 27, 0, 0, - 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, - 0, 29, 30, 31, 32, 33, 0, 0, 34, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, -5, 39, 2, 0, 40, 3, 4, 5, - 6, 7, 8, 9, 10, 0, 11, 0, 12, 13, - 14, 0, 0, 0, 15, 16, 17, 18, 0, 0, - 19, 0, 0, 0, 0, 20, 21, 22, 0, 0, - 23, 0, 0, 0, 24, 25, 26, 0, 27, 0, - 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, - 0, 0, 29, 30, 31, 32, 33, 0, 0, 34, - 35, 36, 0, 0, 0, 0, 0, 0, 37, 38, - 0, 0, 0, 0, 39, 2, 0, 40, 3, 4, - 5, 6, 7, 8, 9, 10, 0, 11, 317, 12, - 0, 14, 0, 0, 0, 15, 16, 17, 18, 0, - 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, - 0, 23, 0, 0, 0, 0, 25, 26, 0, 27, - 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, - 0, 0, 0, 29, 30, 31, 32, 33, 0, 0, - 34, 35, 0, 0, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 285, 39, 2, 0, 40, 3, - 4, 5, 6, 7, 8, 9, 10, 0, 11, 0, + 64, 234, 66, 66, 162, 73, 124, 287, 100, 71, + 333, 299, 275, 84, 292, 276, 87, 277, 67, 69, + 276, 97, 99, 45, 103, 104, 105, 106, 107, 108, + 109, 141, 293, 113, 114, 115, 207, 208, 288, 173, + 312, 119, 61, 126, 316, 128, 132, 276, 294, 77, + 324, 174, 95, 148, 149, 150, 151, 177, 244, 154, + 334, 155, 229, 157, 155, 141, 167, 96, 155, 178, + 245, 66, 314, 2, 315, 101, 165, 156, 110, 5, + 158, 182, 127, 70, 116, 153, 117, 161, 349, 150, + 151, 163, 175, 176, 2, 327, 88, 89, 125, 337, + 5, 338, 231, 157, 70, 10, 268, 11, 269, 232, + 157, 8, 238, 157, 272, 347, 160, 274, 300, 328, + 329, 166, 168, 206, 172, 179, 180, 209, 356, 183, + 196, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 45, 66, + 197, 227, 199, 230, 202, 200, 233, 40, 246, 118, + 201, 203, 236, 235, 251, 279, 240, 241, 264, 242, + 243, 273, 278, 247, 248, 249, 282, 250, 40, 291, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 141, 295, 296, 142, 298, 306, 307, 308, 313, 309, + 265, 266, 311, 267, 317, 318, 335, 342, 344, 346, + 350, 147, 148, 149, 150, 151, 351, 353, 320, 355, + 322, 357, 263, 90, 91, 92, 204, 326, 131, 332, + 93, 239, 133, 134, 270, 339, 0, 94, 0, 0, + 280, 281, 0, 0, 0, 0, 345, 0, 0, 348, + 0, 0, 0, 0, 0, 352, 340, 354, 0, 0, + 0, 343, 0, 0, 358, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -5, 1, 0, 0, 302, + 303, 304, 305, 301, 0, 0, 0, 2, 0, 310, + 3, 4, 0, 5, 6, 7, 8, 9, 10, 0, + 11, 0, 12, 13, 14, 319, 0, 0, 15, 16, + 17, 18, 0, 325, 19, 0, 0, 0, 0, 20, + 21, 22, 0, 0, 23, 0, 0, 341, 24, 25, + 26, 0, 27, 0, 0, 0, 0, 0, 0, 28, + 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, + 33, 0, 0, 34, 35, 36, 0, 0, 0, 0, + 0, 0, 37, 38, 0, 0, 2, -5, 39, 3, + 4, 40, 5, 6, 7, 8, 9, 10, 0, 11, + 0, 12, 13, 14, 0, 0, 0, 15, 16, 17, + 18, 0, 0, 19, 0, 0, 0, 0, 20, 21, + 22, 0, 0, 23, 0, 0, 0, 24, 25, 26, + 0, 27, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, + 0, 0, 34, 35, 36, 0, 0, 0, 0, 0, + 0, 37, 38, 0, 0, 2, 0, 39, 3, 4, + 40, 5, 6, 7, 8, 9, 10, 0, 11, 323, 12, 0, 14, 0, 0, 0, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, 23, 0, 0, 0, 0, 25, 26, 0, 27, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 0, 0, 34, 35, 0, 0, 0, 0, 0, 0, 0, - 37, 38, 0, 0, 0, 285, 39, 2, 0, 40, - 3, 4, 5, 6, 7, 8, 9, 10, 0, 11, - 0, 12, 0, 14, 0, 0, 0, 15, 16, 17, - 18, 0, 0, 0, 0, 0, 0, 0, 20, 0, - 22, 0, 0, 0, 0, 0, 0, 0, 25, 26, - 0, 27, 0, 0, 0, 0, 0, 0, 28, 0, - 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, - 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, - 0, 37, 38, 0, 0, 0, 0, 39, 2, 0, - 40, 3, 4, 5, 6, 7, 8, 9, 10, 0, - 11, 0, 12, 0, 14, 0, 0, 0, 15, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 0, 22, 0, 0, 0, 0, 0, 0, 0, 25, - 26, 0, 27, 0, 0, 0, 0, 0, 0, 28, - 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, - 33, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 0, 0, 37, 38, 0, 0, 0, 0, 39, 2, - 0, 40, 3, 4, 5, 0, 7, 8, 62, 10, - 0, 11, 0, 0, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 0, 80, 81, 82, 83, - 63, 0, 22, 0, 0, 2, 0, 0, 3, 4, - 5, 0, 7, 8, 62, 10, 0, 11, 0, 0, - 28, 14, 0, 0, 0, 0, 0, 29, 30, 31, - 32, 33, 80, 0, 82, 0, 63, 0, 22, 0, - 0, 0, 0, 37, 38, 0, 0, 0, 97, 39, - 0, 0, 40, 0, 0, 0, 28, 0, 0, 0, + 37, 38, 0, 0, 2, 289, 39, 3, 4, 40, + 5, 6, 7, 8, 9, 10, 0, 11, 0, 12, + 0, 14, 0, 0, 0, 15, 16, 17, 18, 0, + 0, 0, 0, 0, 0, 0, 20, 21, 22, 0, + 0, 23, 0, 0, 0, 0, 25, 26, 0, 27, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 0, 39, 2, 0, 40, 3, - 4, 5, 0, 7, 8, 62, 10, 0, 11, 0, - 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 22, - 2, 0, 0, 3, 4, 5, 0, 7, 8, 62, - 10, 0, 11, 0, 0, 0, 14, 28, 0, 0, - 0, 0, 0, 0, 29, 30, 31, 32, 33, 0, + 34, 35, 0, 0, 0, 0, 0, 0, 0, 37, + 38, 0, 0, 2, 289, 39, 3, 4, 40, 5, + 6, 7, 8, 9, 10, 0, 11, 0, 12, 0, + 14, 0, 0, 0, 15, 16, 17, 18, 0, 0, + 0, 0, 0, 0, 0, 20, 0, 22, 0, 0, + 0, 0, 0, 0, 0, 25, 26, 0, 27, 0, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, + 0, 0, 29, 30, 31, 32, 33, 0, 0, 0, + 35, 0, 0, 0, 0, 0, 0, 0, 37, 38, + 0, 0, 2, 0, 39, 3, 4, 40, 5, 6, + 7, 8, 9, 10, 0, 11, 0, 12, 0, 14, + 0, 0, 0, 15, 16, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 25, 26, 0, 27, 0, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, + 0, 29, 30, 31, 32, 33, 0, 0, 0, 35, + 0, 0, 0, 0, 0, 0, 0, 37, 38, 0, + 0, 2, 0, 39, 3, 4, 40, 5, 0, 7, + 8, 62, 10, 0, 11, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 79, 0, 80, + 81, 82, 83, 63, 0, 22, 0, 2, 0, 0, + 3, 4, 0, 5, 0, 7, 8, 62, 10, 0, + 11, 0, 0, 28, 14, 0, 0, 0, 0, 0, + 29, 30, 31, 32, 33, 80, 0, 82, 0, 63, + 0, 22, 0, 0, 0, 0, 37, 38, 0, 0, + 0, 98, 39, 0, 0, 40, 0, 0, 0, 28, + 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 37, 38, 0, 0, 2, 0, 39, 3, + 4, 40, 5, 0, 7, 8, 62, 10, 0, 11, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 63, 2, + 22, 0, 3, 4, 0, 5, 0, 7, 8, 62, + 10, 0, 11, 0, 0, 0, 14, 0, 28, 0, + 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 0, 63, 0, 22, 0, 0, 0, 0, 0, 0, - 37, 38, 0, 0, 0, 0, 39, 0, 0, 40, - 0, 28, 0, 0, 0, 0, 0, 0, 29, 30, + 0, 37, 38, 0, 0, 0, 0, 39, 0, 0, + 40, 28, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, - 65, 2, 0, 40, 3, 4, 5, 0, 7, 8, - 62, 10, 0, 11, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 37, 38, 0, 0, 2, 0, + 65, 3, 4, 40, 5, 0, 7, 8, 62, 10, + 0, 11, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 63, 0, 22, 2, 0, 0, 3, 4, - 5, 0, 7, 8, 62, 10, 0, 11, 0, 0, - 0, 14, 28, 0, 0, 0, 0, 0, 0, 29, - 30, 31, 32, 33, 0, 0, 63, 0, 22, 0, - 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, - 0, 68, 0, 0, 40, 0, 28, 0, 0, 0, - 0, 0, 0, 29, 30, 31, 32, 33, 168, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 80, 72, 82, 0, 40, 134, - 135, 136, 137, 138, 139, 0, 140, 169, 170, 141, - 142, 143, 134, 135, 136, 137, 138, 139, 0, 140, - 0, 0, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 0, 0, 0, 0, 0, 0, 144, 145, - 146, 147, 148, 149, 150, 182, 0, 0, 0, 0, - 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 134, 135, 136, 137, 138, 139, 0, 140, 0, - 0, 141, 142, 143, 0, 0, 0, 0, 184, 0, - 0, 0, 0, 0, 185, 0, 0, 144, 145, 146, - 147, 148, 149, 150, 134, 135, 136, 137, 138, 139, - 0, 140, 0, 0, 141, 142, 143, 0, 0, 0, - 0, 186, 0, 0, 0, 0, 0, 187, 0, 0, - 144, 145, 146, 147, 148, 149, 150, 134, 135, 136, - 137, 138, 139, 0, 140, 0, 0, 141, 142, 143, - 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, - 189, 0, 0, 144, 145, 146, 147, 148, 149, 150, - 134, 135, 136, 137, 138, 139, 0, 140, 0, 0, - 141, 142, 143, 0, 0, 0, 0, 279, 0, 0, - 0, 0, 0, 0, 0, 0, 144, 145, 146, 147, - 148, 149, 150, 134, 135, 136, 137, 138, 139, 0, - 140, 0, 0, 141, 142, 143, 0, 0, 0, 0, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 144, - 145, 146, 147, 148, 149, 150, 134, 135, 136, 137, - 138, 139, 0, 140, 0, 0, 141, 142, 143, 0, - 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 144, 145, 146, 147, 148, 149, 150, 134, - 135, 136, 137, 138, 139, 0, 140, 0, 0, 141, - 142, 143, 0, 0, 0, 0, 282, 0, 0, 0, - 0, 0, 0, 0, 0, 144, 145, 146, 147, 148, - 149, 150, 134, 135, 136, 137, 138, 139, 0, 140, - 0, 0, 141, 142, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 192, 0, 0, 144, 145, - 146, 147, 148, 149, 150, 134, 135, 136, 137, 138, - 139, 0, 140, 0, 0, 141, 142, 143, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 144, 145, 146, 147, 148, 149, 150, 179, 193, - 0, 0, 0, 0, 0, 0, 134, 135, 136, 137, - 138, 139, 0, 140, 0, 0, 141, 142, 143, 134, - 135, 136, 137, 138, 139, 0, 140, 0, 0, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 0, - 0, 0, 0, 0, 0, 144, 145, 146, 147, 148, - 149, 150, 0, 0, 0, 196, 134, 135, 136, 137, - 138, 139, 0, 140, 0, 0, 141, 142, 143, 0, - 0, 0, 0, 0, 190, 191, 0, 0, 0, 0, - 0, 0, 144, 145, 146, 147, 148, 149, 150, 134, - 135, 136, 137, 138, 139, 0, 140, 0, 0, 141, - 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 144, 145, 146, 147, 148, - 149, 150 + 63, 2, 22, 0, 3, 4, 0, 5, 0, 7, + 8, 62, 10, 0, 11, 0, 0, 0, 14, 0, + 28, 0, 0, 0, 0, 0, 0, 29, 30, 31, + 32, 33, 0, 63, 0, 22, 0, 0, 0, 0, + 0, 0, 0, 37, 38, 0, 0, 0, 0, 68, + 0, 0, 40, 28, 0, 0, 0, 0, 0, 0, + 29, 30, 31, 32, 33, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 38, 0, 0, + 0, 80, 72, 82, 0, 40, 135, 136, 137, 138, + 139, 140, 0, 141, 170, 171, 142, 143, 144, 135, + 136, 137, 138, 139, 140, 0, 141, 0, 0, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 0, + 0, 0, 0, 0, 0, 145, 146, 147, 148, 149, + 150, 151, 184, 0, 0, 0, 0, 0, 185, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 135, 136, + 137, 138, 139, 140, 0, 141, 0, 0, 142, 143, + 144, 0, 0, 0, 0, 186, 0, 0, 0, 0, + 0, 187, 0, 0, 145, 146, 147, 148, 149, 150, + 151, 135, 136, 137, 138, 139, 140, 0, 141, 0, + 0, 142, 143, 144, 0, 0, 0, 0, 188, 0, + 0, 0, 0, 0, 189, 0, 0, 145, 146, 147, + 148, 149, 150, 151, 135, 136, 137, 138, 139, 140, + 0, 141, 0, 0, 142, 143, 144, 0, 0, 0, + 0, 190, 0, 0, 0, 0, 0, 191, 0, 0, + 145, 146, 147, 148, 149, 150, 151, 135, 136, 137, + 138, 139, 140, 0, 141, 0, 0, 142, 143, 144, + 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 146, 147, 148, 149, 150, 151, + 135, 136, 137, 138, 139, 140, 0, 141, 0, 0, + 142, 143, 144, 0, 0, 0, 0, 284, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 146, 147, 148, + 149, 150, 151, 135, 136, 137, 138, 139, 140, 0, + 141, 0, 0, 142, 143, 144, 0, 0, 0, 0, + 285, 0, 0, 0, 0, 0, 0, 0, 0, 145, + 146, 147, 148, 149, 150, 151, 135, 136, 137, 138, + 139, 140, 0, 141, 0, 0, 142, 143, 144, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 0, 0, 145, 146, 147, 148, 149, 150, 151, 135, + 136, 137, 138, 139, 140, 0, 141, 0, 0, 142, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 194, 0, 0, 145, 146, 147, 148, 149, + 150, 151, 135, 136, 137, 138, 139, 140, 0, 141, + 0, 0, 142, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, + 147, 148, 149, 150, 151, 181, 195, 0, 0, 0, + 0, 0, 0, 135, 136, 137, 138, 139, 140, 0, + 141, 0, 0, 142, 143, 144, 135, 136, 137, 138, + 139, 140, 0, 141, 0, 0, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, + 0, 0, 145, 146, 147, 148, 149, 150, 151, 0, + 0, 0, 198, 135, 136, 137, 138, 139, 140, 0, + 141, 0, 0, 142, 143, 144, 0, 0, 0, 0, + 0, 192, 193, 0, 0, 0, 0, 0, 0, 145, + 146, 147, 148, 149, 150, 151, 135, 136, 137, 138, + 139, 140, 0, 141, 0, 0, 142, 143, 144, 135, + 136, 137, 138, 0, 0, 0, 141, 0, 0, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 0, + 0, 0, 0, 0, 0, 145, 146, 147, 148, 149, + 150, 151 }; static const yytype_int16 yycheck[] = { - 4, 76, 6, 7, 161, 9, 8, 0, 26, 91, - 6, 7, 64, 17, 274, 44, 20, 22, 259, 24, - 30, 25, 26, 0, 28, 29, 30, 31, 32, 33, - 34, 64, 260, 37, 38, 39, 88, 89, 40, 29, - 47, 91, 270, 47, 94, 49, 50, 21, 127, 128, - 291, 311, 59, 86, 87, 88, 89, 47, 21, 63, - 21, 65, 47, 47, 68, 293, 84, 295, 72, 65, - 80, 75, 68, 12, 59, 59, 80, 21, 17, 75, - 98, 59, 21, 22, 92, 24, 314, 12, 94, 91, - 318, 319, 17, 49, 50, 336, 21, 22, 91, 24, - 15, 16, 93, 94, 91, 333, 21, 94, 91, 20, - 21, 94, 94, 28, 93, 94, 30, 31, 346, 276, - 93, 94, 126, 21, 21, 204, 130, 39, 207, 21, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 124, 152, 94, - 21, 47, 156, 46, 94, 159, 95, 94, 97, 97, - 235, 165, 97, 96, 94, 169, 170, 21, 172, 173, - 95, 175, 176, 177, 94, 179, 21, 21, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 46, 268, - 57, 58, 59, 60, 21, 197, 198, 64, 200, 46, - 67, 68, 69, 94, 283, 284, 21, 81, 47, 21, - 82, 290, 21, 94, 80, 21, 83, 84, 85, 86, - 87, 88, 89, 46, 81, 81, 305, 80, 307, 80, - 124, 193, 50, 50, 313, 201, 315, 168, 242, 243, - 50, 320, -1, -1, 64, -1, 321, 67, -1, -1, - -1, 326, 331, -1, -1, 334, -1, -1, -1, -1, - -1, 340, -1, 342, -1, 85, 86, 87, 88, 89, - 349, 0, 1, -1, -1, 279, 280, 281, 282, -1, - -1, -1, -1, 12, -1, 289, 15, 16, 17, 18, - 19, 20, 21, 22, -1, 24, -1, 26, 27, 28, - 304, -1, -1, 32, 33, 34, 35, -1, -1, 38, - -1, -1, -1, -1, 43, 44, 45, -1, -1, 48, - 324, -1, -1, 52, 53, 54, -1, 56, -1, -1, - -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, - -1, 70, 71, 72, 73, 74, -1, -1, 77, 78, - 79, -1, -1, -1, -1, -1, -1, 86, 87, -1, - -1, -1, 91, 92, 12, -1, 95, 15, 16, 17, - 18, 19, 20, 21, 22, -1, 24, -1, 26, 27, - 28, -1, -1, -1, 32, 33, 34, 35, -1, -1, - 38, -1, -1, -1, -1, 43, 44, 45, -1, -1, - 48, -1, -1, -1, 52, 53, 54, -1, 56, -1, - -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, - -1, -1, 70, 71, 72, 73, 74, -1, -1, 77, - 78, 79, -1, -1, -1, -1, -1, -1, 86, 87, - -1, -1, -1, -1, 92, 12, -1, 95, 15, 16, - 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, - -1, 28, -1, -1, -1, 32, 33, 34, 35, -1, - -1, -1, -1, -1, -1, -1, 43, 44, 45, -1, - -1, 48, -1, -1, -1, -1, 53, 54, -1, 56, - -1, -1, -1, -1, -1, -1, 63, -1, -1, -1, - -1, -1, -1, 70, 71, 72, 73, 74, -1, -1, - 77, 78, -1, -1, -1, -1, -1, -1, -1, 86, - 87, -1, -1, -1, 91, 92, 12, -1, 95, 15, - 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, - 26, -1, 28, -1, -1, -1, 32, 33, 34, 35, - -1, -1, -1, -1, -1, -1, -1, 43, 44, 45, - -1, -1, 48, -1, -1, -1, -1, 53, 54, -1, - 56, -1, -1, -1, -1, -1, -1, 63, -1, -1, - -1, -1, -1, -1, 70, 71, 72, 73, 74, -1, - -1, 77, 78, -1, -1, -1, -1, -1, -1, -1, - 86, 87, -1, -1, -1, 91, 92, 12, -1, 95, - 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, - -1, 26, -1, 28, -1, -1, -1, 32, 33, 34, - 35, -1, -1, -1, -1, -1, -1, -1, 43, -1, - 45, -1, -1, -1, -1, -1, -1, -1, 53, 54, - -1, 56, -1, -1, -1, -1, -1, -1, 63, -1, - -1, -1, -1, -1, -1, 70, 71, 72, 73, 74, - -1, -1, -1, 78, -1, -1, -1, -1, -1, -1, - -1, 86, 87, -1, -1, -1, -1, 92, 12, -1, - 95, 15, 16, 17, 18, 19, 20, 21, 22, -1, - 24, -1, 26, -1, 28, -1, -1, -1, 32, 33, - 34, -1, -1, -1, -1, -1, -1, -1, -1, 43, - -1, 45, -1, -1, -1, -1, -1, -1, -1, 53, - 54, -1, 56, -1, -1, -1, -1, -1, -1, 63, - -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 78, -1, -1, -1, -1, -1, - -1, -1, 86, 87, -1, -1, -1, -1, 92, 12, - -1, 95, 15, 16, 17, -1, 19, 20, 21, 22, - -1, 24, -1, -1, -1, 28, -1, -1, -1, -1, - -1, -1, -1, -1, 37, -1, 39, 40, 41, 42, - 43, -1, 45, -1, -1, 12, -1, -1, 15, 16, - 17, -1, 19, 20, 21, 22, -1, 24, -1, -1, - 63, 28, -1, -1, -1, -1, -1, 70, 71, 72, - 73, 74, 39, -1, 41, -1, 43, -1, 45, -1, - -1, -1, -1, 86, 87, -1, -1, -1, 55, 92, - -1, -1, 95, -1, -1, -1, 63, -1, -1, -1, - -1, -1, -1, 70, 71, 72, 73, 74, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, - 87, -1, -1, -1, -1, 92, 12, -1, 95, 15, - 16, 17, -1, 19, 20, 21, 22, -1, 24, -1, - -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 43, -1, 45, - 12, -1, -1, 15, 16, 17, -1, 19, 20, 21, - 22, -1, 24, -1, -1, -1, 28, 63, -1, -1, - -1, -1, -1, -1, 70, 71, 72, 73, 74, -1, - -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, - 86, 87, -1, -1, -1, -1, 92, -1, -1, 95, - -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, - 72, 73, 74, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 86, 87, -1, -1, -1, -1, - 92, 12, -1, 95, 15, 16, 17, -1, 19, 20, - 21, 22, -1, 24, -1, -1, -1, 28, -1, -1, + 4, 162, 6, 7, 76, 9, 0, 262, 26, 8, + 31, 277, 92, 17, 30, 95, 20, 92, 6, 7, + 95, 25, 26, 0, 28, 29, 30, 31, 32, 33, + 34, 65, 48, 37, 38, 39, 128, 129, 263, 48, + 295, 40, 92, 47, 92, 49, 50, 95, 273, 45, + 316, 60, 22, 87, 88, 89, 90, 48, 48, 63, + 81, 65, 94, 95, 68, 65, 84, 22, 72, 60, + 60, 75, 297, 12, 299, 22, 80, 65, 22, 18, + 68, 99, 60, 22, 23, 93, 25, 75, 343, 89, + 90, 22, 91, 92, 12, 320, 50, 51, 92, 324, + 18, 326, 94, 95, 22, 23, 23, 25, 25, 94, + 95, 21, 22, 95, 206, 340, 95, 209, 279, 31, + 32, 40, 22, 127, 22, 48, 47, 131, 353, 95, + 95, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 125, 153, + 22, 22, 98, 157, 95, 98, 160, 96, 42, 98, + 97, 95, 166, 95, 22, 237, 170, 171, 22, 173, + 174, 47, 22, 177, 178, 179, 22, 181, 96, 271, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 65, 47, 95, 68, 22, 287, 288, 82, 22, 48, + 199, 200, 294, 202, 48, 83, 22, 81, 95, 82, + 22, 86, 87, 88, 89, 90, 82, 47, 310, 81, + 312, 81, 195, 15, 16, 17, 125, 319, 50, 321, + 22, 169, 50, 50, 203, 327, -1, 29, -1, -1, + 244, 245, -1, -1, -1, -1, 338, -1, -1, 341, + -1, -1, -1, -1, -1, 347, 328, 349, -1, -1, + -1, 333, -1, -1, 356, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, 1, -1, -1, 283, + 284, 285, 286, 282, -1, -1, -1, 12, -1, 293, + 15, 16, -1, 18, 19, 20, 21, 22, 23, -1, + 25, -1, 27, 28, 29, 309, -1, -1, 33, 34, + 35, 36, -1, 317, 39, -1, -1, -1, -1, 44, + 45, 46, -1, -1, 49, -1, -1, 331, 53, 54, + 55, -1, 57, -1, -1, -1, -1, -1, -1, 64, + -1, -1, -1, -1, -1, -1, 71, 72, 73, 74, + 75, -1, -1, 78, 79, 80, -1, -1, -1, -1, + -1, -1, 87, 88, -1, -1, 12, 92, 93, 15, + 16, 96, 18, 19, 20, 21, 22, 23, -1, 25, + -1, 27, 28, 29, -1, -1, -1, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, 44, 45, + 46, -1, -1, 49, -1, -1, -1, 53, 54, 55, + -1, 57, -1, -1, -1, -1, -1, -1, 64, -1, + -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, + -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, + -1, 87, 88, -1, -1, 12, -1, 93, 15, 16, + 96, 18, 19, 20, 21, 22, 23, -1, 25, 26, + 27, -1, 29, -1, -1, -1, 33, 34, 35, 36, + -1, -1, -1, -1, -1, -1, -1, 44, 45, 46, + -1, -1, 49, -1, -1, -1, -1, 54, 55, -1, + 57, -1, -1, -1, -1, -1, -1, 64, -1, -1, + -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, + -1, 78, 79, -1, -1, -1, -1, -1, -1, -1, + 87, 88, -1, -1, 12, 92, 93, 15, 16, 96, + 18, 19, 20, 21, 22, 23, -1, 25, -1, 27, + -1, 29, -1, -1, -1, 33, 34, 35, 36, -1, + -1, -1, -1, -1, -1, -1, 44, 45, 46, -1, + -1, 49, -1, -1, -1, -1, 54, 55, -1, 57, + -1, -1, -1, -1, -1, -1, 64, -1, -1, -1, + -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, + 78, 79, -1, -1, -1, -1, -1, -1, -1, 87, + 88, -1, -1, 12, 92, 93, 15, 16, 96, 18, + 19, 20, 21, 22, 23, -1, 25, -1, 27, -1, + 29, -1, -1, -1, 33, 34, 35, 36, -1, -1, + -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, + -1, -1, -1, -1, -1, 54, 55, -1, 57, -1, + -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, + -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, + 79, -1, -1, -1, -1, -1, -1, -1, 87, 88, + -1, -1, 12, -1, 93, 15, 16, 96, 18, 19, + 20, 21, 22, 23, -1, 25, -1, 27, -1, 29, + -1, -1, -1, 33, 34, 35, -1, -1, -1, -1, + -1, -1, -1, -1, 44, -1, 46, -1, -1, -1, + -1, -1, -1, -1, 54, 55, -1, 57, -1, -1, + -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, + -1, 71, 72, 73, 74, 75, -1, -1, -1, 79, + -1, -1, -1, -1, -1, -1, -1, 87, 88, -1, + -1, 12, -1, 93, 15, 16, 96, 18, -1, 20, + 21, 22, 23, -1, 25, -1, -1, -1, 29, -1, + -1, -1, -1, -1, -1, -1, -1, 38, -1, 40, + 41, 42, 43, 44, -1, 46, -1, 12, -1, -1, + 15, 16, -1, 18, -1, 20, 21, 22, 23, -1, + 25, -1, -1, 64, 29, -1, -1, -1, -1, -1, + 71, 72, 73, 74, 75, 40, -1, 42, -1, 44, + -1, 46, -1, -1, -1, -1, 87, 88, -1, -1, + -1, 56, 93, -1, -1, 96, -1, -1, -1, 64, + -1, -1, -1, -1, -1, -1, 71, 72, 73, 74, + 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, 88, -1, -1, 12, -1, 93, 15, + 16, 96, 18, -1, 20, 21, 22, 23, -1, 25, + -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 44, 12, + 46, -1, 15, 16, -1, 18, -1, 20, 21, 22, + 23, -1, 25, -1, -1, -1, 29, -1, 64, -1, + -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, + -1, 44, -1, 46, -1, -1, -1, -1, -1, -1, + -1, 87, 88, -1, -1, -1, -1, 93, -1, -1, + 96, 64, -1, -1, -1, -1, -1, -1, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 87, 88, -1, -1, 12, -1, + 93, 15, 16, 96, 18, -1, 20, 21, 22, 23, + -1, 25, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 43, -1, 45, 12, -1, -1, 15, 16, - 17, -1, 19, 20, 21, 22, -1, 24, -1, -1, - -1, 28, 63, -1, -1, -1, -1, -1, -1, 70, - 71, 72, 73, 74, -1, -1, 43, -1, 45, -1, - -1, -1, -1, -1, -1, 86, 87, -1, -1, -1, - -1, 92, -1, -1, 95, -1, 63, -1, -1, -1, - -1, -1, -1, 70, 71, 72, 73, 74, 36, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, - 87, -1, -1, -1, 39, 92, 41, -1, 95, 57, - 58, 59, 60, 61, 62, -1, 64, 65, 66, 67, - 68, 69, 57, 58, 59, 60, 61, 62, -1, 64, - -1, -1, 67, 68, 69, 83, 84, 85, 86, 87, - 88, 89, -1, -1, -1, -1, -1, -1, 83, 84, - 85, 86, 87, 88, 89, 41, -1, -1, -1, -1, - -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 57, 58, 59, 60, 61, 62, -1, 64, -1, - -1, 67, 68, 69, -1, -1, -1, -1, 41, -1, - -1, -1, -1, -1, 47, -1, -1, 83, 84, 85, - 86, 87, 88, 89, 57, 58, 59, 60, 61, 62, - -1, 64, -1, -1, 67, 68, 69, -1, -1, -1, - -1, 41, -1, -1, -1, -1, -1, 47, -1, -1, - 83, 84, 85, 86, 87, 88, 89, 57, 58, 59, - 60, 61, 62, -1, 64, -1, -1, 67, 68, 69, - -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, - 47, -1, -1, 83, 84, 85, 86, 87, 88, 89, - 57, 58, 59, 60, 61, 62, -1, 64, -1, -1, - 67, 68, 69, -1, -1, -1, -1, 41, -1, -1, - -1, -1, -1, -1, -1, -1, 83, 84, 85, 86, - 87, 88, 89, 57, 58, 59, 60, 61, 62, -1, - 64, -1, -1, 67, 68, 69, -1, -1, -1, -1, - 41, -1, -1, -1, -1, -1, -1, -1, -1, 83, - 84, 85, 86, 87, 88, 89, 57, 58, 59, 60, - 61, 62, -1, 64, -1, -1, 67, 68, 69, -1, - -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, - -1, -1, 83, 84, 85, 86, 87, 88, 89, 57, - 58, 59, 60, 61, 62, -1, 64, -1, -1, 67, - 68, 69, -1, -1, -1, -1, 41, -1, -1, -1, - -1, -1, -1, -1, -1, 83, 84, 85, 86, 87, - 88, 89, 57, 58, 59, 60, 61, 62, -1, 64, - -1, -1, 67, 68, 69, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 47, -1, -1, 83, 84, - 85, 86, 87, 88, 89, 57, 58, 59, 60, 61, - 62, -1, 64, -1, -1, 67, 68, 69, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 83, 84, 85, 86, 87, 88, 89, 49, 91, - -1, -1, -1, -1, -1, -1, 57, 58, 59, 60, - 61, 62, -1, 64, -1, -1, 67, 68, 69, 57, - 58, 59, 60, 61, 62, -1, 64, -1, -1, 67, - 68, 69, 83, 84, 85, 86, 87, 88, 89, -1, - -1, -1, -1, -1, -1, 83, 84, 85, 86, 87, - 88, 89, -1, -1, -1, 93, 57, 58, 59, 60, - 61, 62, -1, 64, -1, -1, 67, 68, 69, -1, - -1, -1, -1, -1, 75, 76, -1, -1, -1, -1, - -1, -1, 83, 84, 85, 86, 87, 88, 89, 57, - 58, 59, 60, 61, 62, -1, 64, -1, -1, 67, - 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 83, 84, 85, 86, 87, - 88, 89 + 44, 12, 46, -1, 15, 16, -1, 18, -1, 20, + 21, 22, 23, -1, 25, -1, -1, -1, 29, -1, + 64, -1, -1, -1, -1, -1, -1, 71, 72, 73, + 74, 75, -1, 44, -1, 46, -1, -1, -1, -1, + -1, -1, -1, 87, 88, -1, -1, -1, -1, 93, + -1, -1, 96, 64, -1, -1, -1, -1, -1, -1, + 71, 72, 73, 74, 75, 37, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, 88, -1, -1, + -1, 40, 93, 42, -1, 96, 58, 59, 60, 61, + 62, 63, -1, 65, 66, 67, 68, 69, 70, 58, + 59, 60, 61, 62, 63, -1, 65, -1, -1, 68, + 69, 70, 84, 85, 86, 87, 88, 89, 90, -1, + -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 42, -1, -1, -1, -1, -1, 48, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, + 60, 61, 62, 63, -1, 65, -1, -1, 68, 69, + 70, -1, -1, -1, -1, 42, -1, -1, -1, -1, + -1, 48, -1, -1, 84, 85, 86, 87, 88, 89, + 90, 58, 59, 60, 61, 62, 63, -1, 65, -1, + -1, 68, 69, 70, -1, -1, -1, -1, 42, -1, + -1, -1, -1, -1, 48, -1, -1, 84, 85, 86, + 87, 88, 89, 90, 58, 59, 60, 61, 62, 63, + -1, 65, -1, -1, 68, 69, 70, -1, -1, -1, + -1, 42, -1, -1, -1, -1, -1, 48, -1, -1, + 84, 85, 86, 87, 88, 89, 90, 58, 59, 60, + 61, 62, 63, -1, 65, -1, -1, 68, 69, 70, + -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + 58, 59, 60, 61, 62, 63, -1, 65, -1, -1, + 68, 69, 70, -1, -1, -1, -1, 42, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, 87, + 88, 89, 90, 58, 59, 60, 61, 62, 63, -1, + 65, -1, -1, 68, 69, 70, -1, -1, -1, -1, + 42, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, 58, 59, 60, 61, + 62, 63, -1, 65, -1, -1, 68, 69, 70, -1, + -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, 86, 87, 88, 89, 90, 58, + 59, 60, 61, 62, 63, -1, 65, -1, -1, 68, + 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 48, -1, -1, 84, 85, 86, 87, 88, + 89, 90, 58, 59, 60, 61, 62, 63, -1, 65, + -1, -1, 68, 69, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + 86, 87, 88, 89, 90, 50, 92, -1, -1, -1, + -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, + 65, -1, -1, 68, 69, 70, 58, 59, 60, 61, + 62, 63, -1, 65, -1, -1, 68, 69, 70, 84, + 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, + -1, -1, 84, 85, 86, 87, 88, 89, 90, -1, + -1, -1, 94, 58, 59, 60, 61, 62, 63, -1, + 65, -1, -1, 68, 69, 70, -1, -1, -1, -1, + -1, 76, 77, -1, -1, -1, -1, -1, -1, 84, + 85, 86, 87, 88, 89, 90, 58, 59, 60, 61, + 62, 63, -1, 65, -1, -1, 68, 69, 70, 58, + 59, 60, 61, -1, -1, -1, 65, -1, -1, 68, + 69, 70, 84, 85, 86, 87, 88, 89, 90, -1, + -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, + 89, 90 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 1, 12, 15, 16, 17, 18, 19, 20, 21, - 22, 24, 26, 27, 28, 32, 33, 34, 35, 38, - 43, 44, 45, 48, 52, 53, 54, 56, 63, 70, - 71, 72, 73, 74, 77, 78, 79, 86, 87, 92, - 95, 99, 100, 101, 102, 104, 106, 110, 111, 112, - 117, 118, 119, 120, 121, 126, 128, 130, 134, 139, - 142, 91, 21, 43, 119, 92, 119, 140, 92, 140, - 21, 118, 92, 119, 141, 129, 133, 44, 122, 37, - 39, 40, 41, 42, 119, 127, 131, 119, 49, 50, - 15, 16, 21, 28, 21, 21, 119, 55, 119, 127, - 21, 125, 119, 119, 119, 119, 119, 119, 119, 21, - 124, 135, 119, 119, 119, 22, 24, 97, 118, 143, - 144, 145, 146, 0, 91, 119, 59, 119, 103, 109, - 112, 119, 121, 139, 57, 58, 59, 60, 61, 62, - 64, 67, 68, 69, 83, 84, 85, 86, 87, 88, - 89, 114, 92, 119, 119, 140, 94, 140, 140, 94, - 140, 114, 21, 123, 119, 39, 127, 21, 36, 65, - 66, 21, 47, 59, 118, 47, 59, 47, 46, 49, - 127, 94, 41, 47, 41, 47, 41, 47, 41, 47, - 75, 76, 47, 91, 94, 21, 93, 97, 97, 96, - 94, 94, 100, 115, 119, 115, 115, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 21, 136, 93, 119, 93, - 93, 119, 136, 94, 119, 132, 21, 120, 119, 119, - 119, 119, 47, 59, 119, 119, 119, 119, 21, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 105, - 105, 21, 118, 118, 118, 22, 24, 146, 116, 115, - 46, 115, 91, 94, 91, 21, 114, 119, 119, 41, - 41, 41, 41, 102, 116, 91, 104, 115, 29, 47, - 116, 46, 94, 138, 21, 138, 136, 119, 119, 119, - 119, 115, 115, 81, 47, 119, 115, 102, 21, 116, - 116, 91, 82, 119, 115, 107, 115, 25, 138, 115, - 116, 30, 31, 108, 113, 115, 30, 80, 21, 137, - 116, 116, 115, 114, 119, 80, 114, 94, 115, 81, - 116, 115, 102, 21, 81, 115, 46, 115, 80, 116, - 80, 115 + 0, 1, 12, 15, 16, 18, 19, 20, 21, 22, + 23, 25, 27, 28, 29, 33, 34, 35, 36, 39, + 44, 45, 46, 49, 53, 54, 55, 57, 64, 71, + 72, 73, 74, 75, 78, 79, 80, 87, 88, 93, + 96, 100, 101, 102, 103, 105, 107, 111, 112, 113, + 118, 119, 120, 121, 122, 127, 129, 131, 135, 140, + 143, 92, 22, 44, 120, 93, 120, 141, 93, 141, + 22, 119, 93, 120, 142, 130, 134, 45, 123, 38, + 40, 41, 42, 43, 120, 128, 132, 120, 50, 51, + 15, 16, 17, 22, 29, 22, 22, 120, 56, 120, + 128, 22, 126, 120, 120, 120, 120, 120, 120, 120, + 22, 125, 136, 120, 120, 120, 23, 25, 98, 119, + 144, 145, 146, 147, 0, 92, 120, 60, 120, 104, + 110, 113, 120, 122, 140, 58, 59, 60, 61, 62, + 63, 65, 68, 69, 70, 84, 85, 86, 87, 88, + 89, 90, 115, 93, 120, 120, 141, 95, 141, 141, + 95, 141, 115, 22, 124, 120, 40, 128, 22, 37, + 66, 67, 22, 48, 60, 119, 119, 48, 60, 48, + 47, 50, 128, 95, 42, 48, 42, 48, 42, 48, + 42, 48, 76, 77, 48, 92, 95, 22, 94, 98, + 98, 97, 95, 95, 101, 116, 120, 116, 116, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 22, 137, 94, + 120, 94, 94, 120, 137, 95, 120, 133, 22, 121, + 120, 120, 120, 120, 48, 60, 42, 120, 120, 120, + 120, 22, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 106, 106, 22, 119, 119, 119, 23, 25, + 147, 117, 116, 47, 116, 92, 95, 92, 22, 115, + 120, 120, 22, 42, 42, 42, 42, 103, 117, 92, + 105, 116, 30, 48, 117, 47, 95, 139, 22, 139, + 137, 119, 120, 120, 120, 120, 116, 116, 82, 48, + 120, 116, 103, 22, 117, 117, 92, 48, 83, 120, + 116, 108, 116, 26, 139, 120, 116, 117, 31, 32, + 109, 114, 116, 31, 81, 22, 138, 117, 117, 116, + 115, 120, 81, 115, 95, 116, 82, 117, 116, 103, + 22, 82, 116, 47, 116, 81, 117, 81, 116 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 98, 99, 99, 99, 100, 100, 100, 101, 101, - 101, 101, 101, 101, 101, 101, 101, 101, 101, 102, - 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, - 104, 104, 104, 104, 105, 106, 106, 107, 107, 108, - 109, 109, 110, 111, 112, 113, 114, 115, 116, 116, - 116, 117, 118, 118, 118, 118, 118, 118, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 120, 121, - 121, 121, 121, 121, 122, 121, 121, 121, 121, 121, - 121, 121, 123, 123, 124, 124, 125, 125, 126, 126, - 126, 126, 126, 126, 127, 127, 128, 128, 128, 128, - 129, 128, 131, 132, 130, 130, 133, 130, 130, 130, - 135, 134, 136, 136, 136, 136, 137, 137, 137, 138, - 139, 140, 140, 140, 141, 141, 142, 143, 143, 143, - 143, 144, 144, 145, 145, 146, 146 + 0, 99, 100, 100, 100, 101, 101, 101, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 103, 103, 103, 104, 104, 104, 104, 105, 105, 105, + 105, 105, 105, 105, 105, 106, 107, 107, 108, 108, + 109, 110, 110, 111, 112, 113, 114, 115, 116, 117, + 117, 117, 118, 119, 119, 119, 119, 119, 119, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 121, + 122, 122, 122, 122, 122, 123, 122, 122, 122, 122, + 122, 122, 122, 124, 124, 125, 125, 126, 126, 127, + 127, 127, 127, 127, 127, 128, 128, 129, 129, 129, + 129, 130, 129, 132, 133, 131, 131, 134, 131, 131, + 131, 136, 135, 137, 137, 137, 137, 138, 138, 138, + 139, 140, 141, 141, 141, 142, 142, 143, 144, 144, + 144, 144, 145, 145, 146, 146, 147, 147 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_int8 yyr2[] = { 0, 2, 3, 1, 2, 0, 1, 1, 4, 4, - 4, 4, 4, 4, 4, 4, 5, 5, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 6, 10, - 11, 3, 7, 6, 0, 9, 12, 0, 2, 6, - 11, 7, 2, 3, 1, 1, 0, 0, 0, 2, - 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 2, 4, 1, 2, 1, 1, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 5, 5, 8, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, + 10, 11, 3, 7, 6, 0, 9, 12, 0, 2, + 6, 11, 7, 2, 3, 1, 1, 0, 0, 0, + 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 2, 4, 1, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 3, 3, 3, 3, 2, 2, 3, 4, 4, - 4, 6, 4, 6, 4, 6, 4, 6, 2, 2, - 1, 1, 2, 1, 0, 3, 2, 2, 4, 2, - 4, 2, 1, 3, 1, 3, 1, 3, 2, 2, - 2, 2, 3, 2, 3, 2, 2, 2, 3, 2, - 0, 3, 0, 0, 9, 2, 0, 7, 8, 6, - 0, 3, 0, 1, 3, 4, 0, 1, 3, 0, - 2, 0, 1, 3, 1, 3, 3, 0, 1, 1, - 1, 1, 3, 1, 3, 3, 3 + 3, 2, 3, 3, 3, 3, 2, 2, 3, 4, + 4, 4, 6, 4, 6, 4, 6, 4, 6, 2, + 2, 1, 1, 2, 1, 0, 3, 2, 2, 4, + 2, 4, 2, 1, 3, 1, 3, 1, 3, 2, + 2, 2, 2, 3, 2, 3, 2, 2, 2, 3, + 2, 0, 3, 0, 0, 9, 2, 0, 7, 8, + 6, 0, 3, 0, 1, 3, 4, 0, 1, 3, + 0, 2, 0, 1, 3, 1, 3, 3, 0, 1, + 1, 1, 1, 3, 1, 3, 3, 3 }; @@ -1664,76 +1665,76 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN switch (yytype) { - case 18: /* BLTIN */ + case 19: /* BLTIN */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1671 "engines/director/lingo/lingo-gr.cpp" +#line 1672 "engines/director/lingo/lingo-gr.cpp" break; - case 19: /* FBLTIN */ + case 20: /* FBLTIN */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1677 "engines/director/lingo/lingo-gr.cpp" +#line 1678 "engines/director/lingo/lingo-gr.cpp" break; - case 20: /* RBLTIN */ + case 21: /* RBLTIN */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1683 "engines/director/lingo/lingo-gr.cpp" +#line 1684 "engines/director/lingo/lingo-gr.cpp" break; - case 21: /* ID */ + case 22: /* ID */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1689 "engines/director/lingo/lingo-gr.cpp" +#line 1690 "engines/director/lingo/lingo-gr.cpp" break; - case 22: /* STRING */ + case 23: /* STRING */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1695 "engines/director/lingo/lingo-gr.cpp" +#line 1696 "engines/director/lingo/lingo-gr.cpp" break; - case 23: /* HANDLER */ + case 24: /* HANDLER */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1701 "engines/director/lingo/lingo-gr.cpp" +#line 1702 "engines/director/lingo/lingo-gr.cpp" break; - case 24: /* SYMBOL */ + case 25: /* SYMBOL */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1707 "engines/director/lingo/lingo-gr.cpp" +#line 1708 "engines/director/lingo/lingo-gr.cpp" break; - case 25: /* ENDCLAUSE */ + case 26: /* ENDCLAUSE */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1713 "engines/director/lingo/lingo-gr.cpp" +#line 1714 "engines/director/lingo/lingo-gr.cpp" break; - case 26: /* tPLAYACCEL */ + case 27: /* tPLAYACCEL */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1719 "engines/director/lingo/lingo-gr.cpp" +#line 1720 "engines/director/lingo/lingo-gr.cpp" break; - case 27: /* tMETHOD */ + case 28: /* tMETHOD */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1725 "engines/director/lingo/lingo-gr.cpp" +#line 1726 "engines/director/lingo/lingo-gr.cpp" break; - case 28: /* THEOBJECTFIELD */ + case 29: /* THEOBJECTFIELD */ #line 131 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).objectfield).os; } -#line 1731 "engines/director/lingo/lingo-gr.cpp" +#line 1732 "engines/director/lingo/lingo-gr.cpp" break; - case 134: /* on */ + case 135: /* on */ #line 130 "engines/director/lingo/lingo-gr.y" { delete ((*yyvaluep).s); } -#line 1737 "engines/director/lingo/lingo-gr.cpp" +#line 1738 "engines/director/lingo/lingo-gr.cpp" break; default: @@ -2003,7 +2004,7 @@ yyreduce: case 4: #line 137 "engines/director/lingo/lingo-gr.y" { yyerrok; } -#line 2007 "engines/director/lingo/lingo-gr.cpp" +#line 2008 "engines/director/lingo/lingo-gr.cpp" break; case 8: @@ -2014,7 +2015,7 @@ yyreduce: g_lingo->code1(LC::c_assign); (yyval.code) = (yyvsp[-2].code); delete (yyvsp[0].s); } -#line 2018 "engines/director/lingo/lingo-gr.cpp" +#line 2019 "engines/director/lingo/lingo-gr.cpp" break; case 9: @@ -2022,19 +2023,19 @@ yyreduce: { g_lingo->code1(LC::c_assign); (yyval.code) = (yyvsp[-2].code); } -#line 2026 "engines/director/lingo/lingo-gr.cpp" +#line 2027 "engines/director/lingo/lingo-gr.cpp" break; case 10: #line 152 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(LC::c_after); } -#line 2032 "engines/director/lingo/lingo-gr.cpp" +#line 2033 "engines/director/lingo/lingo-gr.cpp" break; case 11: #line 153 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(LC::c_before); } -#line 2038 "engines/director/lingo/lingo-gr.cpp" +#line 2039 "engines/director/lingo/lingo-gr.cpp" break; case 12: @@ -2045,7 +2046,7 @@ yyreduce: g_lingo->code1(LC::c_assign); (yyval.code) = (yyvsp[0].code); delete (yyvsp[-2].s); } -#line 2049 "engines/director/lingo/lingo-gr.cpp" +#line 2050 "engines/director/lingo/lingo-gr.cpp" break; case 13: @@ -2057,7 +2058,7 @@ yyreduce: g_lingo->codeInt((yyvsp[-2].e)[0]); g_lingo->codeInt((yyvsp[-2].e)[1]); (yyval.code) = (yyvsp[0].code); } -#line 2061 "engines/director/lingo/lingo-gr.cpp" +#line 2062 "engines/director/lingo/lingo-gr.cpp" break; case 14: @@ -2068,7 +2069,7 @@ yyreduce: g_lingo->code1(LC::c_assign); (yyval.code) = (yyvsp[0].code); delete (yyvsp[-2].s); } -#line 2072 "engines/director/lingo/lingo-gr.cpp" +#line 2073 "engines/director/lingo/lingo-gr.cpp" break; case 15: @@ -2080,7 +2081,7 @@ yyreduce: g_lingo->codeInt((yyvsp[-2].e)[0]); g_lingo->codeInt((yyvsp[-2].e)[1]); (yyval.code) = (yyvsp[0].code); } -#line 2084 "engines/director/lingo/lingo-gr.cpp" +#line 2085 "engines/director/lingo/lingo-gr.cpp" break; case 16: @@ -2091,7 +2092,7 @@ yyreduce: g_lingo->codeInt((yyvsp[-3].e)[0]); g_lingo->codeInt((yyvsp[-3].e)[1]); (yyval.code) = (yyvsp[0].code); } -#line 2095 "engines/director/lingo/lingo-gr.cpp" +#line 2096 "engines/director/lingo/lingo-gr.cpp" break; case 17: @@ -2102,33 +2103,49 @@ yyreduce: g_lingo->codeInt((yyvsp[-3].e)[0]); g_lingo->codeInt((yyvsp[-3].e)[1]); (yyval.code) = (yyvsp[0].code); } -#line 2106 "engines/director/lingo/lingo-gr.cpp" +#line 2107 "engines/director/lingo/lingo-gr.cpp" break; case 18: -#line 192 "engines/director/lingo/lingo-gr.y" +#line 193 "engines/director/lingo/lingo-gr.y" + { + if (!(yyvsp[-3].s)->equalsIgnoreCase("menu")) { + error("LEXER: keyword 'menu' expected"); + } + + warning("STUB: menuItem entity"); + g_lingo->code1(LC::c_swap); + g_lingo->code1(LC::c_theentityassign); + g_lingo->codeInt((yyvsp[-6].e)[0]); + g_lingo->codeInt((yyvsp[-6].e)[1]); + (yyval.code) = (yyvsp[0].code); } +#line 2123 "engines/director/lingo/lingo-gr.cpp" + break; + + case 19: +#line 204 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_objectfieldassign); g_lingo->codeString((yyvsp[-2].objectfield).os->c_str()); g_lingo->codeInt((yyvsp[-2].objectfield).oe); delete (yyvsp[-2].objectfield).os; (yyval.code) = (yyvsp[0].code); } -#line 2117 "engines/director/lingo/lingo-gr.cpp" +#line 2134 "engines/director/lingo/lingo-gr.cpp" break; - case 28: -#line 214 "engines/director/lingo/lingo-gr.y" + case 29: +#line 226 "engines/director/lingo/lingo-gr.y" { inst body = 0, end = 0; WRITE_UINT32(&body, (yyvsp[-3].code) - (yyvsp[-5].code)); WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-5].code)); (*g_lingo->_currentScript)[(yyvsp[-5].code) + 1] = body; /* body of loop */ (*g_lingo->_currentScript)[(yyvsp[-5].code) + 2] = end; } -#line 2128 "engines/director/lingo/lingo-gr.cpp" +#line 2145 "engines/director/lingo/lingo-gr.cpp" break; - case 29: -#line 225 "engines/director/lingo/lingo-gr.y" + case 30: +#line 237 "engines/director/lingo/lingo-gr.y" { inst init = 0, finish = 0, body = 0, end = 0, inc = 0; WRITE_UINT32(&init, (yyvsp[-7].code) - (yyvsp[-9].code)); @@ -2141,11 +2158,11 @@ yyreduce: (*g_lingo->_currentScript)[(yyvsp[-9].code) + 3] = body; /* body of loop */ (*g_lingo->_currentScript)[(yyvsp[-9].code) + 4] = inc; /* increment */ (*g_lingo->_currentScript)[(yyvsp[-9].code) + 5] = end; } -#line 2145 "engines/director/lingo/lingo-gr.cpp" +#line 2162 "engines/director/lingo/lingo-gr.cpp" break; - case 30: -#line 242 "engines/director/lingo/lingo-gr.y" + case 31: +#line 254 "engines/director/lingo/lingo-gr.y" { inst init = 0, finish = 0, body = 0, end = 0, inc = 0; WRITE_UINT32(&init, (yyvsp[-8].code) - (yyvsp[-10].code)); @@ -2158,47 +2175,47 @@ yyreduce: (*g_lingo->_currentScript)[(yyvsp[-10].code) + 3] = body; /* body of loop */ (*g_lingo->_currentScript)[(yyvsp[-10].code) + 4] = inc; /* increment */ (*g_lingo->_currentScript)[(yyvsp[-10].code) + 5] = end; } -#line 2162 "engines/director/lingo/lingo-gr.cpp" +#line 2179 "engines/director/lingo/lingo-gr.cpp" break; - case 31: -#line 254 "engines/director/lingo/lingo-gr.y" + case 32: +#line 266 "engines/director/lingo/lingo-gr.y" { inst end = 0; WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code)); g_lingo->code1(STOP); (*g_lingo->_currentScript)[(yyvsp[-2].code) + 1] = end; } -#line 2172 "engines/director/lingo/lingo-gr.cpp" +#line 2189 "engines/director/lingo/lingo-gr.cpp" break; - case 32: -#line 259 "engines/director/lingo/lingo-gr.y" + case 33: +#line 271 "engines/director/lingo/lingo-gr.y" { inst end; WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-3].code)); (*g_lingo->_currentScript)[(yyvsp[-3].code) + 1] = end; } -#line 2181 "engines/director/lingo/lingo-gr.cpp" +#line 2198 "engines/director/lingo/lingo-gr.cpp" break; - case 33: -#line 263 "engines/director/lingo/lingo-gr.y" + case 34: +#line 275 "engines/director/lingo/lingo-gr.y" { inst end; WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code)); (*g_lingo->_currentScript)[(yyvsp[-2].code) + 1] = end; } -#line 2190 "engines/director/lingo/lingo-gr.cpp" - break; - - case 34: -#line 268 "engines/director/lingo/lingo-gr.y" - { - (yyval.code) = g_lingo->code1(LC::c_tellcode); - g_lingo->code1(STOP); } -#line 2198 "engines/director/lingo/lingo-gr.cpp" +#line 2207 "engines/director/lingo/lingo-gr.cpp" break; case 35: -#line 272 "engines/director/lingo/lingo-gr.y" +#line 280 "engines/director/lingo/lingo-gr.y" + { + (yyval.code) = g_lingo->code1(LC::c_tellcode); + g_lingo->code1(STOP); } +#line 2215 "engines/director/lingo/lingo-gr.cpp" + break; + + case 36: +#line 284 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[-6].code) - (yyvsp[-8].code)); @@ -2209,11 +2226,11 @@ yyreduce: (*g_lingo->_currentScript)[(yyvsp[-8].code) + 3] = end; /* end, if cond fails */ g_lingo->processIf((yyvsp[-8].code), (yyvsp[-1].code) - (yyvsp[-8].code), 0); } -#line 2213 "engines/director/lingo/lingo-gr.cpp" +#line 2230 "engines/director/lingo/lingo-gr.cpp" break; - case 36: -#line 282 "engines/director/lingo/lingo-gr.y" + case 37: +#line 294 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[-9].code) - (yyvsp[-11].code)); @@ -2224,22 +2241,22 @@ yyreduce: (*g_lingo->_currentScript)[(yyvsp[-11].code) + 3] = end; /* end, if cond fails */ g_lingo->processIf((yyvsp[-11].code), (yyvsp[-1].code) - (yyvsp[-11].code), (yyvsp[-3].code) - (yyvsp[-11].code)); } -#line 2228 "engines/director/lingo/lingo-gr.cpp" +#line 2245 "engines/director/lingo/lingo-gr.cpp" break; - case 39: -#line 296 "engines/director/lingo/lingo-gr.y" + case 40: +#line 308 "engines/director/lingo/lingo-gr.y" { inst then = 0; WRITE_UINT32(&then, (yyvsp[-3].code) - (yyvsp[-5].code)); (*g_lingo->_currentScript)[(yyvsp[-5].code) + 1] = then; /* thenpart */ g_lingo->codeLabel((yyvsp[-5].code)); } -#line 2239 "engines/director/lingo/lingo-gr.cpp" +#line 2256 "engines/director/lingo/lingo-gr.cpp" break; - case 40: -#line 303 "engines/director/lingo/lingo-gr.y" + case 41: +#line 315 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[-8].code) - (yyvsp[-10].code)); @@ -2250,11 +2267,11 @@ yyreduce: (*g_lingo->_currentScript)[(yyvsp[-10].code) + 3] = end; /* end, if cond fails */ g_lingo->processIf((yyvsp[-10].code), (yyvsp[-1].code) - (yyvsp[-10].code), (yyvsp[-3].code) - (yyvsp[-10].code)); } -#line 2254 "engines/director/lingo/lingo-gr.cpp" +#line 2271 "engines/director/lingo/lingo-gr.cpp" break; - case 41: -#line 313 "engines/director/lingo/lingo-gr.y" + case 42: +#line 325 "engines/director/lingo/lingo-gr.y" { inst then = 0, else1 = 0, end = 0; WRITE_UINT32(&then, (yyvsp[-4].code) - (yyvsp[-6].code)); @@ -2265,149 +2282,149 @@ yyreduce: (*g_lingo->_currentScript)[(yyvsp[-6].code) + 3] = end; /* end, if cond fails */ g_lingo->processIf((yyvsp[-6].code), (yyvsp[-1].code) - (yyvsp[-6].code), (yyvsp[-1].code) - (yyvsp[-6].code)); } -#line 2269 "engines/director/lingo/lingo-gr.cpp" - break; - - case 42: -#line 324 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = g_lingo->code3(LC::c_repeatwhilecode, STOP, STOP); } -#line 2275 "engines/director/lingo/lingo-gr.cpp" +#line 2286 "engines/director/lingo/lingo-gr.cpp" break; case 43: -#line 326 "engines/director/lingo/lingo-gr.y" +#line 336 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = g_lingo->code3(LC::c_repeatwhilecode, STOP, STOP); } +#line 2292 "engines/director/lingo/lingo-gr.cpp" + break; + + case 44: +#line 338 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code3(LC::c_repeatwithcode, STOP, STOP); g_lingo->code3(STOP, STOP, STOP); g_lingo->codeString((yyvsp[0].s)->c_str()); delete (yyvsp[0].s); } -#line 2285 "engines/director/lingo/lingo-gr.cpp" +#line 2302 "engines/director/lingo/lingo-gr.cpp" break; - case 44: -#line 332 "engines/director/lingo/lingo-gr.y" + case 45: +#line 344 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(LC::c_ifcode); g_lingo->code3(STOP, STOP, STOP); g_lingo->code1(0); // Do not skip end g_lingo->codeLabel(0); } -#line 2295 "engines/director/lingo/lingo-gr.cpp" +#line 2312 "engines/director/lingo/lingo-gr.cpp" break; - case 45: -#line 338 "engines/director/lingo/lingo-gr.y" + case 46: +#line 350 "engines/director/lingo/lingo-gr.y" { inst skipEnd; WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions (yyval.code) = g_lingo->code1(LC::c_ifcode); g_lingo->code3(STOP, STOP, STOP); g_lingo->code1(skipEnd); } -#line 2306 "engines/director/lingo/lingo-gr.cpp" - break; - - case 46: -#line 345 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = g_lingo->_currentScript->size(); } -#line 2312 "engines/director/lingo/lingo-gr.cpp" +#line 2323 "engines/director/lingo/lingo-gr.cpp" break; case 47: -#line 347 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); } -#line 2318 "engines/director/lingo/lingo-gr.cpp" +#line 357 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = g_lingo->_currentScript->size(); } +#line 2329 "engines/director/lingo/lingo-gr.cpp" break; case 48: -#line 349 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = g_lingo->_currentScript->size(); } -#line 2324 "engines/director/lingo/lingo-gr.cpp" +#line 359 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); } +#line 2335 "engines/director/lingo/lingo-gr.cpp" break; - case 51: -#line 353 "engines/director/lingo/lingo-gr.y" + case 49: +#line 361 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = g_lingo->_currentScript->size(); } +#line 2341 "engines/director/lingo/lingo-gr.cpp" + break; + + case 52: +#line 365 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(LC::c_whencode); g_lingo->code1(STOP); g_lingo->codeString((yyvsp[-1].s)->c_str()); delete (yyvsp[-1].s); } -#line 2334 "engines/director/lingo/lingo-gr.cpp" - break; - - case 52: -#line 359 "engines/director/lingo/lingo-gr.y" - { - (yyval.code) = g_lingo->code1(LC::c_intpush); - g_lingo->codeInt((yyvsp[0].i)); } -#line 2342 "engines/director/lingo/lingo-gr.cpp" +#line 2351 "engines/director/lingo/lingo-gr.cpp" break; case 53: -#line 362 "engines/director/lingo/lingo-gr.y" +#line 371 "engines/director/lingo/lingo-gr.y" { - (yyval.code) = g_lingo->code1(LC::c_floatpush); - g_lingo->codeFloat((yyvsp[0].f)); } -#line 2350 "engines/director/lingo/lingo-gr.cpp" + (yyval.code) = g_lingo->code1(LC::c_intpush); + g_lingo->codeInt((yyvsp[0].i)); } +#line 2359 "engines/director/lingo/lingo-gr.cpp" break; case 54: -#line 365 "engines/director/lingo/lingo-gr.y" +#line 374 "engines/director/lingo/lingo-gr.y" + { + (yyval.code) = g_lingo->code1(LC::c_floatpush); + g_lingo->codeFloat((yyvsp[0].f)); } +#line 2367 "engines/director/lingo/lingo-gr.cpp" + break; + + case 55: +#line 377 "engines/director/lingo/lingo-gr.y" { // D3 (yyval.code) = g_lingo->code1(LC::c_symbolpush); g_lingo->codeString((yyvsp[0].s)->c_str()); delete (yyvsp[0].s); } -#line 2359 "engines/director/lingo/lingo-gr.cpp" +#line 2376 "engines/director/lingo/lingo-gr.cpp" break; - case 55: -#line 369 "engines/director/lingo/lingo-gr.y" + case 56: +#line 381 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(LC::c_stringpush); g_lingo->codeString((yyvsp[0].s)->c_str()); delete (yyvsp[0].s); } -#line 2368 "engines/director/lingo/lingo-gr.cpp" +#line 2385 "engines/director/lingo/lingo-gr.cpp" break; - case 56: -#line 373 "engines/director/lingo/lingo-gr.y" + case 57: +#line 385 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(LC::c_eval); g_lingo->codeString((yyvsp[0].s)->c_str()); delete (yyvsp[0].s); } -#line 2377 "engines/director/lingo/lingo-gr.cpp" +#line 2394 "engines/director/lingo/lingo-gr.cpp" break; - case 58: -#line 379 "engines/director/lingo/lingo-gr.y" + case 59: +#line 391 "engines/director/lingo/lingo-gr.y" { (yyval.code) = (yyvsp[0].code); } -#line 2383 "engines/director/lingo/lingo-gr.cpp" - break; - - case 60: -#line 381 "engines/director/lingo/lingo-gr.y" - { - g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg)); - delete (yyvsp[-3].s); } -#line 2391 "engines/director/lingo/lingo-gr.cpp" +#line 2400 "engines/director/lingo/lingo-gr.cpp" break; case 61: -#line 384 "engines/director/lingo/lingo-gr.y" - { - g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg)); - delete (yyvsp[-1].s); } -#line 2399 "engines/director/lingo/lingo-gr.cpp" +#line 393 "engines/director/lingo/lingo-gr.y" + { + g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg)); + delete (yyvsp[-3].s); } +#line 2408 "engines/director/lingo/lingo-gr.cpp" break; case 62: -#line 387 "engines/director/lingo/lingo-gr.y" +#line 396 "engines/director/lingo/lingo-gr.y" { - (yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg)); - delete (yyvsp[-3].s); } -#line 2407 "engines/director/lingo/lingo-gr.cpp" + g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg)); + delete (yyvsp[-1].s); } +#line 2416 "engines/director/lingo/lingo-gr.cpp" break; case 63: -#line 390 "engines/director/lingo/lingo-gr.y" +#line 399 "engines/director/lingo/lingo-gr.y" + { + (yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg)); + delete (yyvsp[-3].s); } +#line 2424 "engines/director/lingo/lingo-gr.cpp" + break; + + case 64: +#line 402 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(LC::c_intpush); g_lingo->codeInt(0); // Put dummy id @@ -2416,477 +2433,477 @@ yyreduce: WRITE_UINT32(&e, (yyvsp[0].e)[0]); WRITE_UINT32(&f, (yyvsp[0].e)[1]); g_lingo->code2(e, f); } -#line 2420 "engines/director/lingo/lingo-gr.cpp" +#line 2437 "engines/director/lingo/lingo-gr.cpp" break; - case 64: -#line 398 "engines/director/lingo/lingo-gr.y" + case 65: +#line 410 "engines/director/lingo/lingo-gr.y" { (yyval.code) = g_lingo->code1(LC::c_theentitypush); inst e = 0, f = 0; WRITE_UINT32(&e, (yyvsp[-1].e)[0]); WRITE_UINT32(&f, (yyvsp[-1].e)[1]); g_lingo->code2(e, f); } -#line 2431 "engines/director/lingo/lingo-gr.cpp" +#line 2448 "engines/director/lingo/lingo-gr.cpp" break; - case 65: -#line 404 "engines/director/lingo/lingo-gr.y" + case 66: +#line 416 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_objectfieldpush); g_lingo->codeString((yyvsp[0].objectfield).os->c_str()); g_lingo->codeInt((yyvsp[0].objectfield).oe); delete (yyvsp[0].objectfield).os; } -#line 2441 "engines/director/lingo/lingo-gr.cpp" - break; - - case 67: -#line 410 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_add); } -#line 2447 "engines/director/lingo/lingo-gr.cpp" +#line 2458 "engines/director/lingo/lingo-gr.cpp" break; case 68: -#line 411 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_sub); } -#line 2453 "engines/director/lingo/lingo-gr.cpp" +#line 422 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_add); } +#line 2464 "engines/director/lingo/lingo-gr.cpp" break; case 69: -#line 412 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_mul); } -#line 2459 "engines/director/lingo/lingo-gr.cpp" +#line 423 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_sub); } +#line 2470 "engines/director/lingo/lingo-gr.cpp" break; case 70: -#line 413 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_div); } -#line 2465 "engines/director/lingo/lingo-gr.cpp" +#line 424 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_mul); } +#line 2476 "engines/director/lingo/lingo-gr.cpp" break; case 71: -#line 414 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_mod); } -#line 2471 "engines/director/lingo/lingo-gr.cpp" +#line 425 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_div); } +#line 2482 "engines/director/lingo/lingo-gr.cpp" break; case 72: -#line 415 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_gt); } -#line 2477 "engines/director/lingo/lingo-gr.cpp" +#line 426 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_mod); } +#line 2488 "engines/director/lingo/lingo-gr.cpp" break; case 73: -#line 416 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_lt); } -#line 2483 "engines/director/lingo/lingo-gr.cpp" +#line 427 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_gt); } +#line 2494 "engines/director/lingo/lingo-gr.cpp" break; case 74: -#line 417 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_eq); } -#line 2489 "engines/director/lingo/lingo-gr.cpp" +#line 428 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_lt); } +#line 2500 "engines/director/lingo/lingo-gr.cpp" break; case 75: -#line 418 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_neq); } -#line 2495 "engines/director/lingo/lingo-gr.cpp" +#line 429 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_eq); } +#line 2506 "engines/director/lingo/lingo-gr.cpp" break; case 76: -#line 419 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_ge); } -#line 2501 "engines/director/lingo/lingo-gr.cpp" +#line 430 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_neq); } +#line 2512 "engines/director/lingo/lingo-gr.cpp" break; case 77: -#line 420 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_le); } -#line 2507 "engines/director/lingo/lingo-gr.cpp" +#line 431 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_ge); } +#line 2518 "engines/director/lingo/lingo-gr.cpp" break; case 78: -#line 421 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_and); } -#line 2513 "engines/director/lingo/lingo-gr.cpp" +#line 432 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_le); } +#line 2524 "engines/director/lingo/lingo-gr.cpp" break; case 79: -#line 422 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_or); } -#line 2519 "engines/director/lingo/lingo-gr.cpp" +#line 433 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_and); } +#line 2530 "engines/director/lingo/lingo-gr.cpp" break; case 80: -#line 423 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_not); } -#line 2525 "engines/director/lingo/lingo-gr.cpp" +#line 434 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_or); } +#line 2536 "engines/director/lingo/lingo-gr.cpp" break; case 81: -#line 424 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_ampersand); } -#line 2531 "engines/director/lingo/lingo-gr.cpp" +#line 435 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_not); } +#line 2542 "engines/director/lingo/lingo-gr.cpp" break; case 82: -#line 425 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_concat); } -#line 2537 "engines/director/lingo/lingo-gr.cpp" +#line 436 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_ampersand); } +#line 2548 "engines/director/lingo/lingo-gr.cpp" break; case 83: -#line 426 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_contains); } -#line 2543 "engines/director/lingo/lingo-gr.cpp" +#line 437 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_concat); } +#line 2554 "engines/director/lingo/lingo-gr.cpp" break; case 84: -#line 427 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_starts); } -#line 2549 "engines/director/lingo/lingo-gr.cpp" +#line 438 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_contains); } +#line 2560 "engines/director/lingo/lingo-gr.cpp" break; case 85: -#line 428 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = (yyvsp[0].code); } -#line 2555 "engines/director/lingo/lingo-gr.cpp" +#line 439 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_starts); } +#line 2566 "engines/director/lingo/lingo-gr.cpp" break; case 86: -#line 429 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); } -#line 2561 "engines/director/lingo/lingo-gr.cpp" +#line 440 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = (yyvsp[0].code); } +#line 2572 "engines/director/lingo/lingo-gr.cpp" break; case 87: -#line 430 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = (yyvsp[-1].code); } -#line 2567 "engines/director/lingo/lingo-gr.cpp" +#line 441 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); } +#line 2578 "engines/director/lingo/lingo-gr.cpp" break; case 88: -#line 431 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_intersects); } -#line 2573 "engines/director/lingo/lingo-gr.cpp" +#line 442 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = (yyvsp[-1].code); } +#line 2584 "engines/director/lingo/lingo-gr.cpp" break; case 89: -#line 432 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_within); } -#line 2579 "engines/director/lingo/lingo-gr.cpp" +#line 443 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_intersects); } +#line 2590 "engines/director/lingo/lingo-gr.cpp" break; case 90: -#line 433 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_charOf); } -#line 2585 "engines/director/lingo/lingo-gr.cpp" +#line 444 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_within); } +#line 2596 "engines/director/lingo/lingo-gr.cpp" break; case 91: -#line 434 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_charToOf); } -#line 2591 "engines/director/lingo/lingo-gr.cpp" +#line 445 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_charOf); } +#line 2602 "engines/director/lingo/lingo-gr.cpp" break; case 92: -#line 435 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_itemOf); } -#line 2597 "engines/director/lingo/lingo-gr.cpp" +#line 446 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_charToOf); } +#line 2608 "engines/director/lingo/lingo-gr.cpp" break; case 93: -#line 436 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_itemToOf); } -#line 2603 "engines/director/lingo/lingo-gr.cpp" +#line 447 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_itemOf); } +#line 2614 "engines/director/lingo/lingo-gr.cpp" break; case 94: -#line 437 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_lineOf); } -#line 2609 "engines/director/lingo/lingo-gr.cpp" +#line 448 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_itemToOf); } +#line 2620 "engines/director/lingo/lingo-gr.cpp" break; case 95: -#line 438 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_lineToOf); } -#line 2615 "engines/director/lingo/lingo-gr.cpp" +#line 449 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_lineOf); } +#line 2626 "engines/director/lingo/lingo-gr.cpp" break; case 96: -#line 439 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_wordOf); } -#line 2621 "engines/director/lingo/lingo-gr.cpp" +#line 450 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_lineToOf); } +#line 2632 "engines/director/lingo/lingo-gr.cpp" break; case 97: -#line 440 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_wordToOf); } -#line 2627 "engines/director/lingo/lingo-gr.cpp" +#line 451 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_wordOf); } +#line 2638 "engines/director/lingo/lingo-gr.cpp" break; case 98: -#line 442 "engines/director/lingo/lingo-gr.y" - { - g_lingo->codeFunc((yyvsp[-1].s), 1); - delete (yyvsp[-1].s); } -#line 2635 "engines/director/lingo/lingo-gr.cpp" +#line 452 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_wordToOf); } +#line 2644 "engines/director/lingo/lingo-gr.cpp" break; case 99: -#line 446 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_printtop); } -#line 2641 "engines/director/lingo/lingo-gr.cpp" +#line 454 "engines/director/lingo/lingo-gr.y" + { + g_lingo->codeFunc((yyvsp[-1].s), 1); + delete (yyvsp[-1].s); } +#line 2652 "engines/director/lingo/lingo-gr.cpp" break; - case 102: -#line 449 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_exitRepeat); } -#line 2647 "engines/director/lingo/lingo-gr.cpp" + case 100: +#line 458 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_printtop); } +#line 2658 "engines/director/lingo/lingo-gr.cpp" break; case 103: -#line 450 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_procret); } -#line 2653 "engines/director/lingo/lingo-gr.cpp" +#line 461 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_exitRepeat); } +#line 2664 "engines/director/lingo/lingo-gr.cpp" break; case 104: -#line 451 "engines/director/lingo/lingo-gr.y" - { g_lingo->_indef = kStateInArgs; } -#line 2659 "engines/director/lingo/lingo-gr.cpp" +#line 462 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_procret); } +#line 2670 "engines/director/lingo/lingo-gr.cpp" break; case 105: -#line 451 "engines/director/lingo/lingo-gr.y" - { g_lingo->_indef = kStateNone; } -#line 2665 "engines/director/lingo/lingo-gr.cpp" +#line 463 "engines/director/lingo/lingo-gr.y" + { g_lingo->_indef = kStateInArgs; } +#line 2676 "engines/director/lingo/lingo-gr.cpp" break; - case 108: -#line 454 "engines/director/lingo/lingo-gr.y" - { - g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg)); - delete (yyvsp[-3].s); } -#line 2673 "engines/director/lingo/lingo-gr.cpp" + case 106: +#line 463 "engines/director/lingo/lingo-gr.y" + { g_lingo->_indef = kStateNone; } +#line 2682 "engines/director/lingo/lingo-gr.cpp" break; case 109: -#line 457 "engines/director/lingo/lingo-gr.y" - { - g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg)); - delete (yyvsp[-1].s); } -#line 2681 "engines/director/lingo/lingo-gr.cpp" +#line 466 "engines/director/lingo/lingo-gr.y" + { + g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg)); + delete (yyvsp[-3].s); } +#line 2690 "engines/director/lingo/lingo-gr.cpp" break; case 110: -#line 460 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_open); } -#line 2687 "engines/director/lingo/lingo-gr.cpp" +#line 469 "engines/director/lingo/lingo-gr.y" + { + g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg)); + delete (yyvsp[-1].s); } +#line 2698 "engines/director/lingo/lingo-gr.cpp" break; case 111: -#line 461 "engines/director/lingo/lingo-gr.y" - { g_lingo->code2(LC::c_voidpush, LC::c_open); } -#line 2693 "engines/director/lingo/lingo-gr.cpp" +#line 472 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_open); } +#line 2704 "engines/director/lingo/lingo-gr.cpp" break; case 112: -#line 463 "engines/director/lingo/lingo-gr.y" - { - g_lingo->code1(LC::c_global); - g_lingo->codeString((yyvsp[0].s)->c_str()); - delete (yyvsp[0].s); } -#line 2702 "engines/director/lingo/lingo-gr.cpp" +#line 473 "engines/director/lingo/lingo-gr.y" + { g_lingo->code2(LC::c_voidpush, LC::c_open); } +#line 2710 "engines/director/lingo/lingo-gr.cpp" break; case 113: -#line 467 "engines/director/lingo/lingo-gr.y" +#line 475 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_global); g_lingo->codeString((yyvsp[0].s)->c_str()); delete (yyvsp[0].s); } -#line 2711 "engines/director/lingo/lingo-gr.cpp" +#line 2719 "engines/director/lingo/lingo-gr.cpp" break; case 114: -#line 472 "engines/director/lingo/lingo-gr.y" +#line 479 "engines/director/lingo/lingo-gr.y" { - g_lingo->code1(LC::c_property); + g_lingo->code1(LC::c_global); g_lingo->codeString((yyvsp[0].s)->c_str()); delete (yyvsp[0].s); } -#line 2720 "engines/director/lingo/lingo-gr.cpp" +#line 2728 "engines/director/lingo/lingo-gr.cpp" break; case 115: -#line 476 "engines/director/lingo/lingo-gr.y" +#line 484 "engines/director/lingo/lingo-gr.y" + { + g_lingo->code1(LC::c_property); + g_lingo->codeString((yyvsp[0].s)->c_str()); + delete (yyvsp[0].s); } +#line 2737 "engines/director/lingo/lingo-gr.cpp" + break; + + case 116: +#line 488 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_property); g_lingo->codeString((yyvsp[0].s)->c_str()); delete (yyvsp[0].s); } -#line 2729 "engines/director/lingo/lingo-gr.cpp" +#line 2746 "engines/director/lingo/lingo-gr.cpp" break; - case 116: -#line 481 "engines/director/lingo/lingo-gr.y" + case 117: +#line 493 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_instance); g_lingo->codeString((yyvsp[0].s)->c_str()); delete (yyvsp[0].s); } -#line 2738 "engines/director/lingo/lingo-gr.cpp" - break; - - case 117: -#line 485 "engines/director/lingo/lingo-gr.y" - { - g_lingo->code1(LC::c_instance); - g_lingo->codeString((yyvsp[0].s)->c_str()); - delete (yyvsp[0].s); } -#line 2747 "engines/director/lingo/lingo-gr.cpp" +#line 2755 "engines/director/lingo/lingo-gr.cpp" break; case 118: #line 497 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_gotoloop); } -#line 2753 "engines/director/lingo/lingo-gr.cpp" + { + g_lingo->code1(LC::c_instance); + g_lingo->codeString((yyvsp[0].s)->c_str()); + delete (yyvsp[0].s); } +#line 2764 "engines/director/lingo/lingo-gr.cpp" break; case 119: -#line 498 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_gotonext); } -#line 2759 "engines/director/lingo/lingo-gr.cpp" +#line 509 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_gotoloop); } +#line 2770 "engines/director/lingo/lingo-gr.cpp" break; case 120: -#line 499 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_gotoprevious); } -#line 2765 "engines/director/lingo/lingo-gr.cpp" +#line 510 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_gotonext); } +#line 2776 "engines/director/lingo/lingo-gr.cpp" break; case 121: -#line 500 "engines/director/lingo/lingo-gr.y" +#line 511 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_gotoprevious); } +#line 2782 "engines/director/lingo/lingo-gr.cpp" + break; + + case 122: +#line 512 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_intpush); g_lingo->codeInt(1); g_lingo->code1(LC::c_goto); } -#line 2774 "engines/director/lingo/lingo-gr.cpp" +#line 2791 "engines/director/lingo/lingo-gr.cpp" break; - case 122: -#line 504 "engines/director/lingo/lingo-gr.y" + case 123: +#line 516 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_intpush); g_lingo->codeInt(3); g_lingo->code1(LC::c_goto); } -#line 2783 "engines/director/lingo/lingo-gr.cpp" +#line 2800 "engines/director/lingo/lingo-gr.cpp" break; - case 123: -#line 508 "engines/director/lingo/lingo-gr.y" + case 124: +#line 520 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_intpush); g_lingo->codeInt(2); g_lingo->code1(LC::c_goto); } -#line 2792 "engines/director/lingo/lingo-gr.cpp" - break; - - case 126: -#line 516 "engines/director/lingo/lingo-gr.y" - { g_lingo->code1(LC::c_playdone); } -#line 2798 "engines/director/lingo/lingo-gr.cpp" +#line 2809 "engines/director/lingo/lingo-gr.cpp" break; case 127: -#line 517 "engines/director/lingo/lingo-gr.y" +#line 528 "engines/director/lingo/lingo-gr.y" + { g_lingo->code1(LC::c_playdone); } +#line 2815 "engines/director/lingo/lingo-gr.cpp" + break; + + case 128: +#line 529 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_intpush); g_lingo->codeInt(1); g_lingo->code1(LC::c_play); } -#line 2807 "engines/director/lingo/lingo-gr.cpp" +#line 2824 "engines/director/lingo/lingo-gr.cpp" break; - case 128: -#line 521 "engines/director/lingo/lingo-gr.y" + case 129: +#line 533 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_intpush); g_lingo->codeInt(3); g_lingo->code1(LC::c_play); } -#line 2816 "engines/director/lingo/lingo-gr.cpp" +#line 2833 "engines/director/lingo/lingo-gr.cpp" break; - case 129: -#line 525 "engines/director/lingo/lingo-gr.y" + case 130: +#line 537 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_intpush); g_lingo->codeInt(2); g_lingo->code1(LC::c_play); } -#line 2825 "engines/director/lingo/lingo-gr.cpp" - break; - - case 130: -#line 529 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeSetImmediate(true); } -#line 2831 "engines/director/lingo/lingo-gr.cpp" +#line 2842 "engines/director/lingo/lingo-gr.cpp" break; case 131: -#line 529 "engines/director/lingo/lingo-gr.y" +#line 541 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeSetImmediate(true); } +#line 2848 "engines/director/lingo/lingo-gr.cpp" + break; + + case 132: +#line 541 "engines/director/lingo/lingo-gr.y" { g_lingo->codeSetImmediate(false); g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg)); delete (yyvsp[-2].s); } -#line 2840 "engines/director/lingo/lingo-gr.cpp" - break; - - case 132: -#line 559 "engines/director/lingo/lingo-gr.y" - { g_lingo->_indef = kStateInArgs; } -#line 2846 "engines/director/lingo/lingo-gr.cpp" +#line 2857 "engines/director/lingo/lingo-gr.cpp" break; case 133: -#line 559 "engines/director/lingo/lingo-gr.y" - { g_lingo->_currentFactory.clear(); } -#line 2852 "engines/director/lingo/lingo-gr.cpp" +#line 571 "engines/director/lingo/lingo-gr.y" + { g_lingo->_indef = kStateInArgs; } +#line 2863 "engines/director/lingo/lingo-gr.cpp" break; case 134: -#line 560 "engines/director/lingo/lingo-gr.y" +#line 571 "engines/director/lingo/lingo-gr.y" + { g_lingo->_currentFactory.clear(); } +#line 2869 "engines/director/lingo/lingo-gr.cpp" + break; + + case 135: +#line 572 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_procret); g_lingo->define(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg)); g_lingo->clearArgStack(); g_lingo->_indef = kStateNone; delete (yyvsp[-6].s); } -#line 2863 "engines/director/lingo/lingo-gr.cpp" - break; - - case 135: -#line 566 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); } -#line 2869 "engines/director/lingo/lingo-gr.cpp" +#line 2880 "engines/director/lingo/lingo-gr.cpp" break; case 136: -#line 567 "engines/director/lingo/lingo-gr.y" - { g_lingo->_indef = kStateInArgs; } -#line 2875 "engines/director/lingo/lingo-gr.cpp" +#line 578 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); } +#line 2886 "engines/director/lingo/lingo-gr.cpp" break; case 137: -#line 568 "engines/director/lingo/lingo-gr.y" +#line 579 "engines/director/lingo/lingo-gr.y" + { g_lingo->_indef = kStateInArgs; } +#line 2892 "engines/director/lingo/lingo-gr.cpp" + break; + + case 138: +#line 580 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_procret); g_lingo->define(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1, &g_lingo->_currentFactory); g_lingo->clearArgStack(); g_lingo->_indef = kStateNone; delete (yyvsp[-6].s); } -#line 2886 "engines/director/lingo/lingo-gr.cpp" +#line 2903 "engines/director/lingo/lingo-gr.cpp" break; - case 138: -#line 574 "engines/director/lingo/lingo-gr.y" + case 139: +#line 586 "engines/director/lingo/lingo-gr.y" { // D3 g_lingo->code1(LC::c_procret); g_lingo->define(*(yyvsp[-7].s), (yyvsp[-6].code), (yyvsp[-5].narg)); @@ -2897,11 +2914,11 @@ yyreduce: checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false); delete (yyvsp[-7].s); delete (yyvsp[-1].s); } -#line 2901 "engines/director/lingo/lingo-gr.cpp" +#line 2918 "engines/director/lingo/lingo-gr.cpp" break; - case 139: -#line 584 "engines/director/lingo/lingo-gr.y" + case 140: +#line 596 "engines/director/lingo/lingo-gr.y" { // D4. No 'end' clause g_lingo->code1(LC::c_procret); g_lingo->define(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg)); @@ -2909,65 +2926,65 @@ yyreduce: g_lingo->clearArgStack(); g_lingo->_ignoreMe = false; delete (yyvsp[-5].s); } -#line 2913 "engines/director/lingo/lingo-gr.cpp" - break; - - case 140: -#line 592 "engines/director/lingo/lingo-gr.y" - { g_lingo->_indef = kStateInArgs; } -#line 2919 "engines/director/lingo/lingo-gr.cpp" +#line 2930 "engines/director/lingo/lingo-gr.cpp" break; case 141: -#line 592 "engines/director/lingo/lingo-gr.y" - { (yyval.s) = (yyvsp[0].s); g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; } -#line 2925 "engines/director/lingo/lingo-gr.cpp" +#line 604 "engines/director/lingo/lingo-gr.y" + { g_lingo->_indef = kStateInArgs; } +#line 2936 "engines/director/lingo/lingo-gr.cpp" break; case 142: -#line 594 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 0; } -#line 2931 "engines/director/lingo/lingo-gr.cpp" +#line 604 "engines/director/lingo/lingo-gr.y" + { (yyval.s) = (yyvsp[0].s); g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; } +#line 2942 "engines/director/lingo/lingo-gr.cpp" break; case 143: -#line 595 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = 1; delete (yyvsp[0].s); } -#line 2937 "engines/director/lingo/lingo-gr.cpp" +#line 606 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = 0; } +#line 2948 "engines/director/lingo/lingo-gr.cpp" break; case 144: -#line 596 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); } -#line 2943 "engines/director/lingo/lingo-gr.cpp" +#line 607 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = 1; delete (yyvsp[0].s); } +#line 2954 "engines/director/lingo/lingo-gr.cpp" break; case 145: -#line 597 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = (yyvsp[-3].narg) + 1; delete (yyvsp[0].s); } -#line 2949 "engines/director/lingo/lingo-gr.cpp" +#line 608 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); } +#line 2960 "engines/director/lingo/lingo-gr.cpp" break; - case 147: -#line 600 "engines/director/lingo/lingo-gr.y" - { delete (yyvsp[0].s); } -#line 2955 "engines/director/lingo/lingo-gr.cpp" + case 146: +#line 609 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = (yyvsp[-3].narg) + 1; delete (yyvsp[0].s); } +#line 2966 "engines/director/lingo/lingo-gr.cpp" break; case 148: -#line 601 "engines/director/lingo/lingo-gr.y" - { delete (yyvsp[0].s); } -#line 2961 "engines/director/lingo/lingo-gr.cpp" +#line 612 "engines/director/lingo/lingo-gr.y" + { delete (yyvsp[0].s); } +#line 2972 "engines/director/lingo/lingo-gr.cpp" break; case 149: -#line 603 "engines/director/lingo/lingo-gr.y" - { g_lingo->codeArgStore(); g_lingo->_indef = kStateInDef; } -#line 2967 "engines/director/lingo/lingo-gr.cpp" +#line 613 "engines/director/lingo/lingo-gr.y" + { delete (yyvsp[0].s); } +#line 2978 "engines/director/lingo/lingo-gr.cpp" break; case 150: -#line 605 "engines/director/lingo/lingo-gr.y" +#line 615 "engines/director/lingo/lingo-gr.y" + { g_lingo->codeArgStore(); g_lingo->_indef = kStateInDef; } +#line 2984 "engines/director/lingo/lingo-gr.cpp" + break; + + case 151: +#line 617 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_call); g_lingo->codeString((yyvsp[-1].s)->c_str()); @@ -2975,113 +2992,113 @@ yyreduce: WRITE_UINT32(&numpar, (yyvsp[0].narg)); g_lingo->code1(numpar); delete (yyvsp[-1].s); } -#line 2979 "engines/director/lingo/lingo-gr.cpp" - break; - - case 151: -#line 613 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 0; } -#line 2985 "engines/director/lingo/lingo-gr.cpp" +#line 2996 "engines/director/lingo/lingo-gr.cpp" break; case 152: -#line 614 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 1; } -#line 2991 "engines/director/lingo/lingo-gr.cpp" +#line 625 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = 0; } +#line 3002 "engines/director/lingo/lingo-gr.cpp" break; case 153: -#line 615 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = (yyvsp[-2].narg) + 1; } -#line 2997 "engines/director/lingo/lingo-gr.cpp" +#line 626 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = 1; } +#line 3008 "engines/director/lingo/lingo-gr.cpp" break; case 154: -#line 617 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 1; } -#line 3003 "engines/director/lingo/lingo-gr.cpp" +#line 627 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = (yyvsp[-2].narg) + 1; } +#line 3014 "engines/director/lingo/lingo-gr.cpp" break; case 155: -#line 618 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = (yyvsp[-2].narg) + 1; } -#line 3009 "engines/director/lingo/lingo-gr.cpp" +#line 629 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = 1; } +#line 3020 "engines/director/lingo/lingo-gr.cpp" break; case 156: -#line 620 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = (yyvsp[-1].code); } -#line 3015 "engines/director/lingo/lingo-gr.cpp" +#line 630 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = (yyvsp[-2].narg) + 1; } +#line 3026 "engines/director/lingo/lingo-gr.cpp" break; case 157: -#line 622 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); } -#line 3021 "engines/director/lingo/lingo-gr.cpp" +#line 632 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = (yyvsp[-1].code); } +#line 3032 "engines/director/lingo/lingo-gr.cpp" break; case 158: -#line 623 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); } -#line 3027 "engines/director/lingo/lingo-gr.cpp" +#line 634 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); } +#line 3038 "engines/director/lingo/lingo-gr.cpp" break; case 159: -#line 624 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); } -#line 3033 "engines/director/lingo/lingo-gr.cpp" +#line 635 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); } +#line 3044 "engines/director/lingo/lingo-gr.cpp" break; case 160: -#line 625 "engines/director/lingo/lingo-gr.y" - { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); } -#line 3039 "engines/director/lingo/lingo-gr.cpp" +#line 636 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); } +#line 3050 "engines/director/lingo/lingo-gr.cpp" break; case 161: -#line 627 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 1; } -#line 3045 "engines/director/lingo/lingo-gr.cpp" +#line 637 "engines/director/lingo/lingo-gr.y" + { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); } +#line 3056 "engines/director/lingo/lingo-gr.cpp" break; case 162: -#line 628 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = (yyvsp[-2].narg) + 1; } -#line 3051 "engines/director/lingo/lingo-gr.cpp" +#line 639 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = 1; } +#line 3062 "engines/director/lingo/lingo-gr.cpp" break; case 163: -#line 630 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = 1; } -#line 3057 "engines/director/lingo/lingo-gr.cpp" +#line 640 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = (yyvsp[-2].narg) + 1; } +#line 3068 "engines/director/lingo/lingo-gr.cpp" break; case 164: -#line 631 "engines/director/lingo/lingo-gr.y" - { (yyval.narg) = (yyvsp[-2].narg) + 1; } -#line 3063 "engines/director/lingo/lingo-gr.cpp" +#line 642 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = 1; } +#line 3074 "engines/director/lingo/lingo-gr.cpp" break; case 165: -#line 633 "engines/director/lingo/lingo-gr.y" +#line 643 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = (yyvsp[-2].narg) + 1; } +#line 3080 "engines/director/lingo/lingo-gr.cpp" + break; + + case 166: +#line 645 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_symbolpush); g_lingo->codeString((yyvsp[-2].s)->c_str()); delete (yyvsp[-2].s); } -#line 3072 "engines/director/lingo/lingo-gr.cpp" +#line 3089 "engines/director/lingo/lingo-gr.cpp" break; - case 166: -#line 637 "engines/director/lingo/lingo-gr.y" + case 167: +#line 649 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(LC::c_stringpush); g_lingo->codeString((yyvsp[-2].s)->c_str()); delete (yyvsp[-2].s); } -#line 3081 "engines/director/lingo/lingo-gr.cpp" +#line 3098 "engines/director/lingo/lingo-gr.cpp" break; -#line 3085 "engines/director/lingo/lingo-gr.cpp" +#line 3102 "engines/director/lingo/lingo-gr.cpp" default: break; } @@ -3313,5 +3330,5 @@ yyreturn: #endif return yyresult; } -#line 643 "engines/director/lingo/lingo-gr.y" +#line 655 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h index 652eb2ed5fc..9d15da08e6b 100644 --- a/engines/director/lingo/lingo-gr.h +++ b/engines/director/lingo/lingo-gr.h @@ -63,72 +63,73 @@ extern int yydebug; ARGCNORET = 269, THEENTITY = 270, THEENTITYWITHID = 271, - FLOAT = 272, - BLTIN = 273, - FBLTIN = 274, - RBLTIN = 275, - ID = 276, - STRING = 277, - HANDLER = 278, - SYMBOL = 279, - ENDCLAUSE = 280, - tPLAYACCEL = 281, - tMETHOD = 282, - THEOBJECTFIELD = 283, - tDOWN = 284, - tELSE = 285, - tELSIF = 286, - tEXIT = 287, - tGLOBAL = 288, - tGO = 289, - tIF = 290, - tINTO = 291, - tLOOP = 292, - tMACRO = 293, - tMOVIE = 294, - tNEXT = 295, - tOF = 296, - tPREVIOUS = 297, - tPUT = 298, - tREPEAT = 299, - tSET = 300, - tTHEN = 301, - tTO = 302, - tWHEN = 303, - tWITH = 304, - tWHILE = 305, - tNLELSE = 306, - tFACTORY = 307, - tOPEN = 308, - tPLAY = 309, - tDONE = 310, - tINSTANCE = 311, - tGE = 312, - tLE = 313, - tEQ = 314, - tNEQ = 315, - tAND = 316, - tOR = 317, - tNOT = 318, - tMOD = 319, - tAFTER = 320, - tBEFORE = 321, - tCONCAT = 322, - tCONTAINS = 323, - tSTARTS = 324, - tCHAR = 325, - tITEM = 326, - tLINE = 327, - tWORD = 328, - tSPRITE = 329, - tINTERSECTS = 330, - tWITHIN = 331, - tTELL = 332, - tPROPERTY = 333, - tON = 334, - tENDIF = 335, - tENDREPEAT = 336, - tENDTELL = 337 + THEMENUITEMENTITY = 272, + FLOAT = 273, + BLTIN = 274, + FBLTIN = 275, + RBLTIN = 276, + ID = 277, + STRING = 278, + HANDLER = 279, + SYMBOL = 280, + ENDCLAUSE = 281, + tPLAYACCEL = 282, + tMETHOD = 283, + THEOBJECTFIELD = 284, + tDOWN = 285, + tELSE = 286, + tELSIF = 287, + tEXIT = 288, + tGLOBAL = 289, + tGO = 290, + tIF = 291, + tINTO = 292, + tLOOP = 293, + tMACRO = 294, + tMOVIE = 295, + tNEXT = 296, + tOF = 297, + tPREVIOUS = 298, + tPUT = 299, + tREPEAT = 300, + tSET = 301, + tTHEN = 302, + tTO = 303, + tWHEN = 304, + tWITH = 305, + tWHILE = 306, + tNLELSE = 307, + tFACTORY = 308, + tOPEN = 309, + tPLAY = 310, + tDONE = 311, + tINSTANCE = 312, + tGE = 313, + tLE = 314, + tEQ = 315, + tNEQ = 316, + tAND = 317, + tOR = 318, + tNOT = 319, + tMOD = 320, + tAFTER = 321, + tBEFORE = 322, + tCONCAT = 323, + tCONTAINS = 324, + tSTARTS = 325, + tCHAR = 326, + tITEM = 327, + tLINE = 328, + tWORD = 329, + tSPRITE = 330, + tINTERSECTS = 331, + tWITHIN = 332, + tTELL = 333, + tPROPERTY = 334, + tON = 335, + tENDIF = 336, + tENDREPEAT = 337, + tENDTELL = 338 }; #endif @@ -151,7 +152,7 @@ union YYSTYPE int oe; } objectfield; -#line 155 "engines/director/lingo/lingo-gr.h" +#line 156 "engines/director/lingo/lingo-gr.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index dd7b83c3c64..623ac6650d2 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -101,7 +101,7 @@ void checkEnd(Common::String *token, const char *expect, bool required) { %token UNARY %token CASTREF VOID VAR POINT RECT ARRAY OBJECT REFERENCE %token INT ARGC ARGCNORET -%token THEENTITY THEENTITYWITHID +%token THEENTITY THEENTITYWITHID THEMENUITEMENTITY %token FLOAT %token BLTIN FBLTIN RBLTIN %token ID STRING HANDLER SYMBOL @@ -189,6 +189,18 @@ asgn: tPUT expr tINTO ID { g_lingo->codeInt($THEENTITYWITHID[0]); g_lingo->codeInt($THEENTITYWITHID[1]); $$ = $expr; } + // the of menuItem " of menu + | tSET THEMENUITEMENTITY simpleexpr tOF ID simpleexpr tTO expr { + if (!$ID->equalsIgnoreCase("menu")) { + error("LEXER: keyword 'menu' expected"); + } + + warning("STUB: menuItem entity"); + g_lingo->code1(LC::c_swap); + g_lingo->code1(LC::c_theentityassign); + g_lingo->codeInt($THEMENUITEMENTITY[0]); + g_lingo->codeInt($THEMENUITEMENTITY[1]); + $$ = $expr; } | tSET THEOBJECTFIELD tTO expr { g_lingo->code1(LC::c_objectfieldassign); g_lingo->codeString($THEOBJECTFIELD.os->c_str()); diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp index 0018db5e657..056910b50ef 100644 --- a/engines/director/lingo/lingo-lex.cpp +++ b/engines/director/lingo/lingo-lex.cpp @@ -1488,6 +1488,10 @@ YY_RULE_SETUP yylval.e[0] = g_lingo->_theEntities[ptr]->entity; yylval.e[1] = g_lingo->_theEntityFields[field]->field; + // the of menuItem " of menu + if (g_lingo->_theEntityFields[field]->entity == kTheMenuItem) + return THEMENUITEMENTITY; + if (g_lingo->_theEntities[ptr]->hasId) return THEENTITYWITHID; else @@ -1512,7 +1516,7 @@ YY_RULE_SETUP YY_BREAK case 54: YY_RULE_SETUP -#line 280 "engines/director/lingo/lingo-lex.l" +#line 284 "engines/director/lingo/lingo-lex.l" { count(); @@ -1547,7 +1551,7 @@ YY_RULE_SETUP YY_BREAK case 55: YY_RULE_SETUP -#line 311 "engines/director/lingo/lingo-lex.l" +#line 315 "engines/director/lingo/lingo-lex.l" { count(); @@ -1570,72 +1574,72 @@ YY_RULE_SETUP YY_BREAK case 56: YY_RULE_SETUP -#line 330 "engines/director/lingo/lingo-lex.l" +#line 334 "engines/director/lingo/lingo-lex.l" { count(); return tTHEN; } YY_BREAK case 57: YY_RULE_SETUP -#line 331 "engines/director/lingo/lingo-lex.l" +#line 335 "engines/director/lingo/lingo-lex.l" { count(); return tTO; } YY_BREAK case 58: YY_RULE_SETUP -#line 332 "engines/director/lingo/lingo-lex.l" +#line 336 "engines/director/lingo/lingo-lex.l" { count(); return tSPRITE; } YY_BREAK case 59: YY_RULE_SETUP -#line 333 "engines/director/lingo/lingo-lex.l" +#line 337 "engines/director/lingo/lingo-lex.l" { count(); return tWITH; } YY_BREAK case 60: YY_RULE_SETUP -#line 334 "engines/director/lingo/lingo-lex.l" +#line 338 "engines/director/lingo/lingo-lex.l" { count(); return tWITHIN; } YY_BREAK case 61: YY_RULE_SETUP -#line 335 "engines/director/lingo/lingo-lex.l" +#line 339 "engines/director/lingo/lingo-lex.l" { count(); return tWHEN; } YY_BREAK case 62: YY_RULE_SETUP -#line 336 "engines/director/lingo/lingo-lex.l" +#line 340 "engines/director/lingo/lingo-lex.l" { count(); return tWHILE; } YY_BREAK case 63: YY_RULE_SETUP -#line 337 "engines/director/lingo/lingo-lex.l" +#line 341 "engines/director/lingo/lingo-lex.l" { count(); return tWORD; } YY_BREAK case 64: YY_RULE_SETUP -#line 339 "engines/director/lingo/lingo-lex.l" +#line 343 "engines/director/lingo/lingo-lex.l" { count(); return tNEQ; } YY_BREAK case 65: YY_RULE_SETUP -#line 340 "engines/director/lingo/lingo-lex.l" +#line 344 "engines/director/lingo/lingo-lex.l" { count(); return tGE; } YY_BREAK case 66: YY_RULE_SETUP -#line 341 "engines/director/lingo/lingo-lex.l" +#line 345 "engines/director/lingo/lingo-lex.l" { count(); return tLE; } YY_BREAK case 67: YY_RULE_SETUP -#line 342 "engines/director/lingo/lingo-lex.l" +#line 346 "engines/director/lingo/lingo-lex.l" { count(); return tCONCAT; } YY_BREAK case 68: YY_RULE_SETUP -#line 343 "engines/director/lingo/lingo-lex.l" +#line 347 "engines/director/lingo/lingo-lex.l" { count(); return tEQ; } YY_BREAK case 69: YY_RULE_SETUP -#line 345 "engines/director/lingo/lingo-lex.l" +#line 349 "engines/director/lingo/lingo-lex.l" { count(); yylval.s = new Common::String(yytext); @@ -1671,41 +1675,41 @@ YY_RULE_SETUP YY_BREAK case 70: YY_RULE_SETUP -#line 377 "engines/director/lingo/lingo-lex.l" +#line 381 "engines/director/lingo/lingo-lex.l" { count(); yylval.f = atof(yytext); return FLOAT; } YY_BREAK case 71: YY_RULE_SETUP -#line 378 "engines/director/lingo/lingo-lex.l" +#line 382 "engines/director/lingo/lingo-lex.l" { count(); yylval.i = strtol(yytext, NULL, 10); return INT; } YY_BREAK case 72: YY_RULE_SETUP -#line 379 "engines/director/lingo/lingo-lex.l" +#line 383 "engines/director/lingo/lingo-lex.l" { count(); return *yytext; } YY_BREAK case 73: /* rule 73 can match eol */ YY_RULE_SETUP -#line 380 "engines/director/lingo/lingo-lex.l" +#line 384 "engines/director/lingo/lingo-lex.l" { count(); return '\n'; } YY_BREAK case 74: YY_RULE_SETUP -#line 381 "engines/director/lingo/lingo-lex.l" +#line 385 "engines/director/lingo/lingo-lex.l" { count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; } YY_BREAK case 75: YY_RULE_SETUP -#line 382 "engines/director/lingo/lingo-lex.l" +#line 386 "engines/director/lingo/lingo-lex.l" { count(); } YY_BREAK case 76: YY_RULE_SETUP -#line 384 "engines/director/lingo/lingo-lex.l" +#line 388 "engines/director/lingo/lingo-lex.l" ECHO; YY_BREAK -#line 1709 "engines/director/lingo/lingo-lex.cpp" +#line 1713 "engines/director/lingo/lingo-lex.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2665,7 +2669,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 384 "engines/director/lingo/lingo-lex.l" +#line 388 "engines/director/lingo/lingo-lex.l" diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l index 6076df0b60e..e31b519732a 100644 --- a/engines/director/lingo/lingo-lex.l +++ b/engines/director/lingo/lingo-lex.l @@ -256,6 +256,10 @@ the[ \t]+[[:alpha:]]+[ \t]+of[ \t]+{identifier} { yylval.e[0] = g_lingo->_theEntities[ptr]->entity; yylval.e[1] = g_lingo->_theEntityFields[field]->field; + // the of menuItem " of menu + if (g_lingo->_theEntityFields[field]->entity == kTheMenuItem) + return THEMENUITEMENTITY; + if (g_lingo->_theEntities[ptr]->hasId) return THEENTITYWITHID; else