From 6ce34299fffce168f17ecb3564638e1f392699fb Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 19 Dec 2019 12:50:06 +0100 Subject: DIRECTOR: LINGO: Make 'method {identifier}' as a single token. This lets avoid clashes with method names matching built-ins. --- engines/director/lingo/lingo-gr.cpp | 804 ++++++++++++++++++----------------- engines/director/lingo/lingo-gr.h | 104 ++--- engines/director/lingo/lingo-gr.y | 10 +- engines/director/lingo/lingo-lex.cpp | 418 +++++++++--------- engines/director/lingo/lingo-lex.l | 12 +- 5 files changed, 694 insertions(+), 654 deletions(-) diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index 14902d00d1..489efbe762 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -99,32 +99,32 @@ SYMBOL = 288, ENDCLAUSE = 289, tPLAYACCEL = 290, - tDOWN = 291, - tELSE = 292, - tELSIF = 293, - tEXIT = 294, - tFRAME = 295, - tGLOBAL = 296, - tGO = 297, - tIF = 298, - tINTO = 299, - tLOOP = 300, - tMACRO = 301, - tMOVIE = 302, - tNEXT = 303, - tOF = 304, - tPREVIOUS = 305, - tPUT = 306, - tREPEAT = 307, - tSET = 308, - tTHEN = 309, - tTO = 310, - tWHEN = 311, - tWITH = 312, - tWHILE = 313, - tNLELSE = 314, - tFACTORY = 315, - tMETHOD = 316, + tMETHOD = 291, + tDOWN = 292, + tELSE = 293, + tELSIF = 294, + tEXIT = 295, + tFRAME = 296, + tGLOBAL = 297, + tGO = 298, + tIF = 299, + tINTO = 300, + tLOOP = 301, + tMACRO = 302, + tMOVIE = 303, + tNEXT = 304, + tOF = 305, + tPREVIOUS = 306, + tPUT = 307, + tREPEAT = 308, + tSET = 309, + tTHEN = 310, + tTO = 311, + tWHEN = 312, + tWITH = 313, + tWHILE = 314, + tNLELSE = 315, + tFACTORY = 316, tOPEN = 317, tPLAY = 318, tDONE = 319, @@ -192,32 +192,32 @@ #define SYMBOL 288 #define ENDCLAUSE 289 #define tPLAYACCEL 290 -#define tDOWN 291 -#define tELSE 292 -#define tELSIF 293 -#define tEXIT 294 -#define tFRAME 295 -#define tGLOBAL 296 -#define tGO 297 -#define tIF 298 -#define tINTO 299 -#define tLOOP 300 -#define tMACRO 301 -#define tMOVIE 302 -#define tNEXT 303 -#define tOF 304 -#define tPREVIOUS 305 -#define tPUT 306 -#define tREPEAT 307 -#define tSET 308 -#define tTHEN 309 -#define tTO 310 -#define tWHEN 311 -#define tWITH 312 -#define tWHILE 313 -#define tNLELSE 314 -#define tFACTORY 315 -#define tMETHOD 316 +#define tMETHOD 291 +#define tDOWN 292 +#define tELSE 293 +#define tELSIF 294 +#define tEXIT 295 +#define tFRAME 296 +#define tGLOBAL 297 +#define tGO 298 +#define tIF 299 +#define tINTO 300 +#define tLOOP 301 +#define tMACRO 302 +#define tMOVIE 303 +#define tNEXT 304 +#define tOF 305 +#define tPREVIOUS 306 +#define tPUT 307 +#define tREPEAT 308 +#define tSET 309 +#define tTHEN 310 +#define tTO 311 +#define tWHEN 312 +#define tWITH 313 +#define tWHILE 314 +#define tNLELSE 315 +#define tFACTORY 316 #define tOPEN 317 #define tPLAY 318 #define tDONE 319 @@ -544,7 +544,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 126 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1445 +#define YYLAST 1526 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 107 @@ -553,7 +553,7 @@ union yyalloc /* YYNRULES -- Number of rules. */ #define YYNRULES 154 /* YYNRULES -- Number of states. */ -#define YYNSTATES 327 +#define YYNSTATES 326 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -620,33 +620,33 @@ static const yytype_uint16 yyprhs[] = 385, 388, 390, 393, 396, 398, 401, 406, 413, 418, 421, 425, 427, 431, 433, 437, 439, 443, 446, 449, 452, 455, 459, 462, 465, 467, 471, 474, 477, 480, - 484, 487, 488, 492, 493, 502, 505, 506, 515, 524, - 531, 534, 535, 537, 541, 546, 547, 549, 553, 554, - 557, 558, 560, 564, 566 + 484, 487, 488, 492, 493, 502, 505, 506, 514, 523, + 530, 533, 534, 536, 540, 545, 546, 548, 552, 553, + 556, 557, 559, 563, 565 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 108, 0, -1, 108, 101, 109, -1, 109, -1, 1, - 101, -1, -1, 137, -1, 112, -1, 51, 126, 44, - 30, -1, 51, 126, 44, 127, -1, 51, 126, 74, - 126, -1, 51, 126, 75, 126, -1, 53, 30, 68, - 126, -1, 53, 15, 68, 126, -1, 53, 30, 55, - 126, -1, 53, 15, 55, 126, -1, 53, 16, 126, - 55, 126, -1, 53, 16, 125, 68, 126, -1, 144, + 101, -1, -1, 137, -1, 112, -1, 52, 126, 45, + 30, -1, 52, 126, 45, 127, -1, 52, 126, 74, + 126, -1, 52, 126, 75, 126, -1, 54, 30, 68, + 126, -1, 54, 15, 68, 126, -1, 54, 30, 56, + 126, -1, 54, 15, 56, 126, -1, 54, 16, 126, + 56, 126, -1, 54, 16, 125, 68, 126, -1, 144, -1, 126, -1, 128, -1, 111, -1, 113, -1, 116, 126, 121, 122, 121, 91, -1, 117, 68, 126, 121, - 55, 126, 121, 122, 121, 91, -1, 117, 68, 126, - 121, 36, 55, 126, 121, 122, 121, 91, -1, 123, + 56, 126, 121, 122, 121, 91, -1, 117, 68, 126, + 121, 37, 56, 126, 121, 122, 121, 91, -1, 123, 111, 121, -1, 124, 126, 101, 122, 121, 92, -1, - 124, 126, 55, 126, -1, 118, 126, 121, 54, 122, - 121, 114, 121, 90, -1, 118, 126, 121, 54, 122, - 121, 114, 37, 120, 122, 121, 90, -1, -1, 115, - 114, -1, 119, 126, 121, 54, 122, 121, -1, 52, - 58, -1, 52, 57, 30, -1, 43, -1, 38, -1, - -1, -1, -1, 122, 101, -1, 122, 112, -1, 56, - 30, 54, -1, 86, -1, 12, -1, 17, -1, 33, + 124, 126, 56, 126, -1, 118, 126, 121, 55, 122, + 121, 114, 121, 90, -1, 118, 126, 121, 55, 122, + 121, 114, 38, 120, 122, 121, 90, -1, -1, 115, + 114, -1, 119, 126, 121, 55, 122, 121, -1, 53, + 59, -1, 53, 58, 30, -1, 44, -1, 39, -1, + -1, -1, -1, 122, 101, -1, 122, 112, -1, 57, + 30, 55, -1, 86, -1, 12, -1, 17, -1, 33, -1, 31, -1, 30, -1, 125, -1, 127, -1, 25, -1, 26, 126, -1, 27, 146, -1, 30, 102, 145, 103, -1, 15, -1, 16, 126, -1, 110, -1, 126, @@ -659,32 +659,32 @@ static const yytype_int16 yyrhs[] = 126, -1, 126, 77, 126, -1, 126, 78, 126, -1, 96, 126, -1, 97, 126, -1, 102, 126, 103, -1, 104, 145, 105, -1, 83, 126, 84, 126, -1, 83, - 126, 85, 126, -1, 79, 126, 49, 126, -1, 79, - 126, 55, 126, 49, 126, -1, 80, 126, 49, 126, - -1, 80, 126, 55, 126, 49, 126, -1, 81, 126, - 49, 126, -1, 81, 126, 55, 126, 49, 126, -1, - 82, 126, 49, 126, -1, 82, 126, 55, 126, 49, - 126, -1, 89, -1, 29, 126, -1, 51, 126, -1, - 132, -1, 135, -1, 39, 52, -1, 39, -1, 41, + 126, 85, 126, -1, 79, 126, 50, 126, -1, 79, + 126, 56, 126, 50, 126, -1, 80, 126, 50, 126, + -1, 80, 126, 56, 126, 50, 126, -1, 81, 126, + 50, 126, -1, 81, 126, 56, 126, 50, 126, -1, + 82, 126, 50, 126, -1, 82, 126, 56, 126, 50, + 126, -1, 89, -1, 29, 126, -1, 52, 126, -1, + 132, -1, 135, -1, 40, 53, -1, 40, -1, 42, 129, -1, 87, 130, -1, 65, 131, -1, 19, -1, 21, 126, -1, 20, 126, -1, 20, -1, 22, 146, -1, 89, 102, 30, 103, -1, 89, 102, 30, 106, - 145, 103, -1, 62, 126, 57, 126, -1, 62, 126, + 145, 103, -1, 62, 126, 58, 126, -1, 62, 126, -1, 23, 30, 145, -1, 30, -1, 129, 106, 30, -1, 30, -1, 130, 106, 30, -1, 30, -1, 131, - 106, 30, -1, 42, 45, -1, 42, 48, -1, 42, - 50, -1, 42, 133, -1, 42, 133, 134, -1, 42, - 134, -1, 40, 126, -1, 126, -1, 49, 47, 126, - -1, 47, 126, -1, 63, 64, -1, 63, 133, -1, + 106, 30, -1, 43, 46, -1, 43, 49, -1, 43, + 51, -1, 43, 133, -1, 43, 133, 134, -1, 43, + 134, -1, 41, 126, -1, 126, -1, 50, 48, 126, + -1, 48, 126, -1, 63, 64, -1, 63, 133, -1, 63, 133, 134, -1, 63, 134, -1, -1, 35, 136, - 145, -1, -1, 46, 30, 138, 120, 141, 101, 143, - 122, -1, 60, 30, -1, -1, 61, 30, 139, 120, - 141, 101, 143, 122, -1, 140, 120, 141, 101, 143, - 122, 34, 142, -1, 140, 120, 141, 101, 143, 122, - -1, 88, 30, -1, -1, 30, -1, 141, 106, 30, - -1, 141, 101, 106, 30, -1, -1, 30, -1, 142, - 106, 30, -1, -1, 30, 146, -1, -1, 126, -1, - 145, 106, 126, -1, 126, -1, 146, 106, 126, -1 + 145, -1, -1, 47, 30, 138, 120, 141, 101, 143, + 122, -1, 61, 30, -1, -1, 36, 139, 120, 141, + 101, 143, 122, -1, 140, 120, 141, 101, 143, 122, + 34, 142, -1, 140, 120, 141, 101, 143, 122, -1, + 88, 30, -1, -1, 30, -1, 141, 106, 30, -1, + 141, 101, 106, 30, -1, -1, 30, -1, 142, 106, + 30, -1, -1, 30, 146, -1, -1, 126, -1, 145, + 106, 126, -1, 126, -1, 146, 106, 126, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -720,17 +720,17 @@ static const char *const yytname[] = "BLTINNOARGS", "BLTINNOARGSORONE", "BLTINONEARG", "BLTINARGLIST", "TWOWORDBUILTIN", "FBLTIN", "FBLTINNOARGS", "FBLTINONEARG", "FBLTINARGLIST", "RBLTIN", "RBLTINONEARG", "ID", "STRING", "HANDLER", - "SYMBOL", "ENDCLAUSE", "tPLAYACCEL", "tDOWN", "tELSE", "tELSIF", "tEXIT", - "tFRAME", "tGLOBAL", "tGO", "tIF", "tINTO", "tLOOP", "tMACRO", "tMOVIE", - "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT", "tSET", "tTHEN", "tTO", - "tWHEN", "tWITH", "tWHILE", "tNLELSE", "tFACTORY", "tMETHOD", "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", "tME", "tENDIF", "tENDREPEAT", - "tENDTELL", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", - "'\\n'", "'('", "')'", "'['", "']'", "','", "$accept", "program", - "programline", "asgn", "stmtoneliner", "stmt", "ifstmt", + "SYMBOL", "ENDCLAUSE", "tPLAYACCEL", "tMETHOD", "tDOWN", "tELSE", + "tELSIF", "tEXIT", "tFRAME", "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", "tME", "tENDIF", + "tENDREPEAT", "tENDTELL", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", + "'/'", "'%'", "'\\n'", "'('", "')'", "'['", "']'", "','", "$accept", + "program", "programline", "asgn", "stmtoneliner", "stmt", "ifstmt", "elseifstmtlist", "elseifstmt", "repeatwhile", "repeatwith", "if", "elseif", "begin", "end", "stmtlist", "when", "tell", "simpleexpr", "expr", "reference", "proc", "globallist", "propertylist", @@ -796,7 +796,7 @@ static const yytype_uint8 yyr2[] = 2, 1, 2, 2, 1, 2, 4, 6, 4, 2, 3, 1, 3, 1, 3, 1, 3, 2, 2, 2, 2, 3, 2, 2, 1, 3, 2, 2, 2, 3, - 2, 0, 3, 0, 8, 2, 0, 8, 8, 6, + 2, 0, 3, 0, 8, 2, 0, 7, 8, 6, 2, 0, 1, 3, 4, 0, 1, 3, 0, 2, 0, 1, 3, 1, 3 }; @@ -807,38 +807,38 @@ static const yytype_uint8 yyr2[] = static const yytype_uint8 yydefact[] = { 0, 0, 45, 56, 0, 46, 101, 104, 0, 0, - 0, 52, 0, 0, 0, 49, 48, 47, 131, 97, - 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0, 0, 0, 49, 48, 47, 131, 136, + 97, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 91, 0, 0, 0, 150, 0, 3, 58, 21, 7, 22, 0, 0, 0, 0, 0, 50, 19, 51, 20, 94, 95, 6, 38, 18, 4, 49, 0, 91, 57, 103, 102, 153, 105, 150, 53, 54, 92, - 150, 149, 150, 96, 111, 98, 0, 117, 0, 118, - 0, 119, 124, 120, 122, 133, 93, 0, 34, 0, - 0, 0, 0, 135, 136, 109, 127, 128, 130, 115, + 150, 149, 150, 38, 96, 111, 98, 0, 117, 0, + 118, 0, 119, 124, 120, 122, 133, 93, 0, 34, + 0, 0, 0, 0, 135, 109, 127, 128, 130, 115, 100, 72, 0, 0, 0, 0, 0, 113, 99, 140, 0, 77, 78, 0, 151, 0, 1, 5, 39, 0, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 141, 150, 0, 0, 110, 151, 0, 132, 0, 123, - 126, 0, 121, 38, 0, 0, 0, 35, 0, 0, - 50, 0, 0, 0, 43, 38, 0, 129, 0, 0, + 141, 150, 0, 0, 110, 151, 0, 132, 141, 0, + 123, 126, 0, 121, 38, 0, 0, 0, 35, 0, + 0, 50, 0, 0, 0, 43, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 0, 2, 40, 39, 0, 26, 0, 40, 68, 69, 66, 67, 70, 71, 63, 74, 75, 76, 65, 64, 73, 59, 60, 61, 62, 142, 0, - 154, 55, 112, 125, 141, 8, 9, 10, 11, 15, - 13, 0, 0, 14, 12, 141, 108, 116, 83, 0, + 154, 55, 0, 112, 125, 141, 8, 9, 10, 11, + 15, 13, 0, 0, 14, 12, 108, 116, 83, 0, 85, 0, 87, 0, 89, 0, 81, 82, 114, 106, - 150, 152, 39, 0, 40, 28, 39, 148, 0, 0, - 17, 16, 0, 0, 0, 0, 0, 0, 41, 42, - 0, 0, 0, 39, 0, 0, 40, 143, 148, 148, + 150, 152, 39, 0, 40, 28, 39, 148, 0, 148, + 0, 17, 16, 0, 0, 0, 0, 0, 41, 42, + 0, 0, 0, 39, 0, 0, 40, 143, 40, 148, 84, 86, 88, 90, 107, 23, 0, 39, 31, 27, - 144, 139, 40, 40, 39, 40, 37, 39, 31, 0, - 145, 134, 137, 40, 39, 38, 0, 32, 39, 146, - 138, 39, 0, 40, 29, 0, 0, 0, 24, 39, - 40, 147, 25, 0, 39, 30, 33 + 144, 139, 137, 40, 39, 40, 37, 39, 31, 0, + 145, 134, 40, 39, 38, 0, 32, 39, 146, 138, + 39, 0, 40, 29, 0, 0, 0, 24, 39, 40, + 147, 25, 0, 39, 30, 33 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -846,57 +846,57 @@ static const yytype_int16 yydefgoto[] = { -1, 47, 48, 49, 50, 269, 52, 297, 298, 53, 54, 55, 299, 150, 195, 252, 56, 57, 58, 59, - 60, 61, 85, 118, 110, 62, 93, 94, 63, 82, - 64, 163, 175, 65, 219, 310, 276, 66, 156, 75 + 60, 61, 86, 118, 110, 62, 94, 95, 63, 82, + 64, 164, 83, 65, 219, 309, 276, 66, 156, 75 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -170 +#define YYPACT_NINF -244 static const yytype_int16 yypact[] = { - 271, -80, -170, -170, 819, -170, -170, 819, 819, 819, - 26, -170, 819, 819, 819, 880, -170, -170, -170, 10, - 37, 718, -170, 49, 819, -42, -2, 55, 57, 59, - 819, 779, 78, 819, 819, 819, 819, 819, 819, -170, - 80, 83, 14, 819, 819, 819, 819, 2, -170, -170, - -170, -170, -170, 819, 56, 819, 635, 819, -170, 1346, - -170, -170, -170, -170, -170, -170, -170, -170, 44, 819, - -170, 1346, 1346, 1346, 1346, 46, 819, 1346, 46, 1346, - 819, 46, 819, -170, -170, 47, 819, -170, 819, -170, - 107, -170, 1346, 5, -170, -170, 24, 125, -170, -32, - 819, -5, 102, -170, -170, 1261, -170, 5, -170, -170, - 52, -170, 919, 953, 987, 1021, 1312, -170, 53, -170, - 133, -170, -170, 1274, 1346, 9, -170, 362, 1346, 819, - 1346, -170, 1191, 819, 819, 819, 819, 819, 819, 819, - 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, - 136, 819, 24, 819, 64, 1274, -26, 64, 143, 1346, - 1346, 819, -170, -170, 97, 819, 819, -170, 819, 819, - 106, 1227, 819, 819, -170, -170, 819, -170, 155, 819, - 819, 819, 819, 819, 819, 819, 819, 819, 819, 156, - -20, -170, -170, 819, -170, -170, 1346, 137, -170, 819, - -170, -38, -38, -38, -38, 851, 851, -170, 8, -38, - -38, -38, -38, 8, -51, -51, -170, -170, -170, -82, - 1346, -170, -170, 1346, 136, -170, -170, 1346, 1346, 1346, - -38, 819, 819, 1346, -38, 136, 1346, -170, 1346, 1055, - 1346, 1089, 1346, 1123, 1346, 1157, 1346, 1346, -170, -170, - 819, 1346, 544, -11, -170, 1346, 544, 81, 160, -37, - -38, 1346, -31, 819, 819, 819, 819, 6, -170, -170, - 101, 138, 819, 544, 104, 164, -170, -170, 81, 81, - 1346, 1346, 1346, 1346, -170, -170, 819, 1346, 159, -170, - -170, 453, -170, -170, 1346, -170, -170, 161, 159, 819, - 169, 544, 544, -170, 544, -170, 110, -170, 1346, -170, - 95, 544, 112, -170, -170, 150, 175, 115, -170, 544, - -170, -170, -170, 117, 544, -170, -170 + 302, -84, -244, -244, 893, -244, -244, 893, 893, 893, + 24, -244, 893, 893, 893, 926, -244, -244, -244, -244, + 9, 36, 749, -244, 57, 893, 12, -2, 66, 70, + 893, 832, 71, 893, 893, 893, 893, 893, 893, -244, + 72, 74, 3, 893, 893, 893, 893, 2, -244, -244, + -244, -244, -244, 893, 38, 893, 666, 893, -244, 1427, + -244, -244, -244, -244, -244, -244, -244, -244, 5, 893, + -244, 1427, 1427, 1427, 1427, 4, 893, 1427, 4, 1427, + 893, 4, 893, -244, -244, -244, 6, 893, -244, 893, + -244, 60, -244, 1427, 44, -244, -244, 965, 79, -244, + -1, 893, 0, 56, -244, 1321, -244, 44, -244, -244, + 7, -244, 999, 1033, 1067, 1101, 1393, -244, 8, -244, + 85, -244, -244, 1355, 1427, -7, -244, 393, 1427, 893, + 1427, -244, 1271, 893, 893, 893, 893, 893, 893, 893, + 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, + 86, 893, 965, 893, 11, 1355, -26, 11, 86, 88, + 1427, 1427, 893, -244, -244, -6, 893, 893, -244, 893, + 893, 51, 1307, 893, 893, -244, 893, -244, 90, 893, + 893, 893, 893, 893, 893, 893, 893, 893, 893, 91, + -22, -244, -244, 893, -244, -244, 1427, 67, -244, 893, + -244, -51, -51, -51, -51, 141, 141, -244, -38, -51, + -51, -51, -51, -38, -35, -35, -244, -244, -244, -86, + 1427, -244, -49, -244, 1427, 86, -244, -244, 1427, 1427, + 1427, -51, 893, 893, 1427, -51, 1427, -244, 1427, 1135, + 1427, 1169, 1427, 1203, 1427, 1237, 1427, 1427, -244, -244, + 893, 1427, 575, 13, -244, 1427, 575, 17, 94, 17, + -27, -51, 1427, 893, 893, 893, 893, -17, -244, -244, + 35, 92, 893, 575, 58, 97, -244, -244, -244, 17, + 1427, 1427, 1427, 1427, -244, -244, 893, 1427, 89, -244, + -244, 484, 575, -244, 1427, -244, -244, 113, 89, 893, + 122, 575, -244, 575, -244, 63, -244, 1427, -244, 48, + 575, 64, -244, -244, 102, 129, 69, -244, 575, -244, + -244, -244, 77, 575, -244, -244 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -170, -170, 86, -170, 152, 1, -170, -88, -170, -170, - -170, -170, -170, -157, -85, -40, -170, -170, 116, -4, - 51, -170, -170, -170, -170, -170, 186, -19, -170, -170, - -170, -170, -170, -170, -169, -170, -128, -170, -39, 58 + -244, -244, 34, -244, 108, 19, -244, -130, -244, -244, + -244, -244, -244, -82, -40, -3, -244, -244, 73, -4, + 20, -244, -244, -244, -244, -244, 140, -19, -244, -244, + -244, -244, -244, -244, -152, -244, -243, -244, -39, 80 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -906,300 +906,316 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -6 static const yytype_int16 yytable[] = { - 71, 51, 126, 72, 73, 74, 224, 125, 77, 74, - 79, 74, 108, 99, 100, 97, 98, 92, 235, 257, - 96, 67, 139, 168, 258, 271, 105, 92, 101, 111, - 112, 113, 114, 115, 116, 139, 169, 154, 140, 121, - 122, 123, 124, 157, 272, 197, 198, 148, 149, 128, - 172, 130, 88, 132, 90, 259, 76, 145, 146, 147, - 148, 149, 83, 173, 278, 152, 262, 84, 164, 258, - 279, 78, 124, 81, 162, 258, 155, 221, 124, 95, - 193, 139, 159, 249, 160, 102, 250, 103, 177, 104, - 133, 134, 135, 136, 137, 138, 171, 139, 165, 166, - 140, 141, 142, 127, 146, 147, 148, 149, 109, 284, - 117, 253, 193, 119, 192, 193, 120, 143, 144, 145, - 146, 147, 148, 149, 129, 196, 14, 225, 51, 201, + 71, 158, 126, 72, 73, 74, 222, 125, 77, 74, + 79, 74, 108, 100, 101, 257, 278, 67, 93, 51, + 258, 97, 139, 14, 226, 140, 105, 93, 102, 111, + 112, 113, 114, 115, 116, 139, 293, 154, 139, 121, + 122, 123, 124, 157, 145, 146, 147, 148, 149, 128, + 271, 130, 259, 132, 76, 169, 173, 258, 146, 147, + 148, 149, 84, 148, 149, 152, 85, 170, 174, 272, + 98, 99, 124, 260, 279, 163, 155, 221, 124, 258, + 193, 249, 225, 160, 250, 161, 284, 96, 177, 193, + 197, 198, 89, 78, 91, 81, 103, 172, 192, 193, + 104, 109, 117, 127, 119, 120, 129, 151, 162, 168, + 153, 175, 159, 178, 189, 190, 218, 193, 223, 232, + 237, 248, 254, 275, 277, 196, 285, 290, 296, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 151, 124, 313, 220, - 292, 293, 153, 158, 161, 167, 174, 223, 178, 189, - 256, 227, 228, 190, 229, 230, 218, 270, 233, 234, - 193, 274, 236, 222, 231, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 237, 248, 275, 288, 251, - 277, 254, 285, 286, 290, 255, 289, 296, 305, 309, - 314, 316, 295, 318, 320, 321, 322, 325, 131, 303, - 307, 267, 306, 194, 273, 226, 170, 107, 0, 312, - 0, 0, 0, 315, 0, 0, 317, 260, 261, 0, - 0, 0, 0, 0, 323, 0, 291, 0, 0, 326, - 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, - 0, 0, 301, 302, 0, 304, 0, 0, 0, 280, - 281, 282, 283, 311, 0, 0, 0, 0, 287, 0, - 0, -5, 1, 319, 0, 0, 0, 0, 0, 0, - 324, 0, 294, 2, 0, 0, 3, 4, 5, 0, - 6, 7, 8, 9, 10, 308, 11, 12, 13, 0, - 14, 15, 16, 0, 17, 0, 18, 0, 0, 0, - 19, 0, 20, 21, 22, 0, 0, 23, 0, 0, - 0, 0, 24, 25, 26, 0, 0, 27, 0, 0, - 0, 28, 29, 30, 31, 0, 32, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, - 34, 35, 36, 37, 38, 0, 0, 39, 40, 41, - 42, 0, 0, 0, 0, 0, 0, 43, 44, 0, - 0, 0, -5, 45, 2, 46, 0, 3, 4, 5, + 212, 213, 214, 215, 216, 217, 51, 124, 286, 220, + 289, 304, 308, 313, 315, 317, 253, 319, 224, 320, + 321, 194, 228, 229, 131, 230, 231, 324, 306, 234, + 235, 107, 236, 0, 171, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 227, 0, 0, 0, 251, + 0, 0, 0, 0, 0, 255, 0, 256, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, + 136, 267, 270, 0, 139, 0, 274, 140, 141, 142, + 0, 0, 312, 0, 0, 0, 0, 0, 261, 262, + 0, 0, 0, 288, 143, 144, 145, 146, 147, 148, + 149, 0, 0, 0, 0, 0, 124, 295, 0, 0, + 0, 273, 0, 0, 302, 0, 0, 305, 0, 280, + 281, 282, 283, 311, 0, 0, 0, 314, 287, 0, + 316, 0, 0, 291, 0, 292, 0, 0, 322, 0, + 0, 0, 294, 325, 0, 0, 0, 0, 0, 0, + 301, 0, 303, 0, 0, 307, 0, 0, 0, 310, + 0, 0, -5, 1, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 2, 0, 323, 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, 11, 12, 13, - 0, 14, 15, 16, 0, 17, 0, 18, 0, 0, - 0, 19, 0, 20, 21, 22, 0, 0, 23, 0, - 0, 0, 0, 24, 25, 26, 0, 0, 27, 0, - 0, 0, 28, 29, 30, 31, 0, 32, 0, 0, + 0, 14, 15, 16, 0, 17, 0, 18, 19, 0, + 0, 0, 20, 0, 21, 22, 23, 0, 0, 24, + 0, 0, 0, 0, 25, 26, 27, 0, 0, 28, + 0, 0, 0, 29, 30, 31, 0, 32, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, 39, 40, 41, 42, 0, 0, 0, 0, 0, 0, 43, 44, - 0, 0, 0, 0, 45, 2, 46, 0, 3, 4, + 0, 0, 0, -5, 45, 2, 46, 0, 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, 11, 12, - 13, 0, 14, 15, 16, 0, 17, 300, 18, 0, - 0, 0, 19, 0, 20, 21, 22, 0, 0, 0, - 0, 0, 0, 0, 24, 25, 26, 0, 0, 27, - 0, 0, 0, 0, 0, 30, 31, 0, 32, 0, + 13, 0, 14, 15, 16, 0, 17, 0, 18, 19, + 0, 0, 0, 20, 0, 21, 22, 23, 0, 0, + 24, 0, 0, 0, 0, 25, 26, 27, 0, 0, + 28, 0, 0, 0, 29, 30, 31, 0, 32, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, 39, - 40, 0, 42, 0, 0, 0, 0, 0, 0, 43, - 44, 0, 0, 0, 268, 45, 2, 46, 0, 3, + 40, 41, 42, 0, 0, 0, 0, 0, 0, 43, + 44, 0, 0, 0, 0, 45, 2, 46, 0, 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, 11, - 12, 13, 0, 14, 15, 16, 0, 17, 0, 18, - 0, 0, 0, 19, 0, 20, 21, 22, 0, 0, - 0, 0, 0, 0, 0, 24, 25, 26, 0, 0, - 27, 0, 0, 0, 0, 0, 30, 31, 0, 32, + 12, 13, 0, 14, 15, 16, 0, 17, 300, 18, + 0, 0, 0, 0, 20, 0, 21, 22, 23, 0, + 0, 0, 0, 0, 0, 0, 25, 26, 27, 0, + 0, 28, 0, 0, 0, 0, 30, 31, 0, 32, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, 39, 40, 0, 42, 0, 0, 0, 0, 0, 0, 43, 44, 0, 0, 0, 268, 45, 2, 46, 0, 3, 4, 5, 0, 6, 7, 8, 9, 10, 0, 11, 12, 13, 0, 14, 15, 16, 0, 17, 0, - 18, 0, 0, 0, 19, 0, 20, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 26, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, + 18, 0, 0, 0, 0, 20, 0, 21, 22, 23, + 0, 0, 0, 0, 0, 0, 0, 25, 26, 27, + 0, 0, 28, 0, 0, 0, 0, 30, 31, 0, 32, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, - 0, 0, 40, 0, 42, 0, 0, 0, 0, 0, - 2, 43, 44, 3, 4, 5, 0, 45, 0, 46, - 0, 0, 0, 11, 12, 13, 0, 14, 68, 16, - 0, 17, 0, 0, 0, 0, 0, 0, 86, 0, - 0, 0, 0, 87, 0, 88, 89, 90, 91, 69, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39, 40, 0, 42, 0, 0, 0, 0, 0, + 0, 43, 44, 0, 0, 0, 268, 45, 2, 46, + 0, 3, 4, 5, 0, 6, 7, 8, 9, 10, + 0, 11, 12, 13, 0, 14, 15, 16, 0, 17, + 0, 18, 0, 0, 0, 0, 20, 0, 21, 22, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 0, 32, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, + 0, 0, 0, 40, 0, 42, 0, 0, 0, 0, + 0, 2, 43, 44, 3, 4, 5, 0, 45, 0, + 46, 0, 0, 0, 11, 12, 13, 0, 14, 68, + 16, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 87, 0, 0, 0, 0, 88, 0, 89, 90, 91, + 92, 69, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 2, 0, 0, 3, 4, 5, 34, 35, 36, - 37, 38, 0, 0, 11, 12, 13, 70, 14, 68, - 16, 0, 17, 0, 43, 44, 0, 0, 0, 86, - 45, 0, 46, 0, 0, 0, 88, 0, 90, 0, - 69, 2, 26, 0, 3, 4, 5, 0, 0, 0, - 0, 0, 0, 106, 11, 12, 13, 0, 14, 68, - 16, 33, 17, 0, 0, 0, 0, 0, 34, 35, + 0, 33, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, 0, 0, 0, 70, 0, - 69, 0, 26, 0, 0, 43, 44, 0, 0, 0, - 0, 45, 0, 46, 0, 0, 0, 0, 0, 0, - 0, 33, 2, 0, 0, 3, 4, 5, 34, 35, - 36, 37, 38, 0, 0, 11, 12, 13, 70, 14, - 68, 16, 0, 17, 0, 43, 44, 133, 134, 135, - 136, 45, 0, 46, 139, 0, 0, 140, 141, 142, - 0, 69, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 144, 145, 146, 147, 148, - 149, 0, 33, 0, 0, 0, 0, 0, 0, 34, - 35, 36, 37, 38, 0, 0, 0, 0, 179, 70, - 0, 0, 0, 0, 180, 0, 43, 44, 0, 0, - 0, 0, 80, 0, 46, 133, 134, 135, 136, 137, + 0, 0, 0, 0, 2, 43, 44, 3, 4, 5, + 0, 45, 0, 46, 0, 0, 0, 11, 12, 13, + 0, 14, 68, 16, 0, 17, 0, 0, 0, 0, + 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, + 89, 0, 91, 0, 69, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 33, 2, 0, 0, 3, 4, + 5, 34, 35, 36, 37, 38, 0, 0, 11, 12, + 13, 70, 14, 68, 16, 0, 17, 0, 43, 44, + 0, 0, 0, 0, 45, 0, 46, 0, 2, 0, + 0, 3, 4, 5, 0, 69, 0, 27, 0, 0, + 0, 11, 12, 13, 0, 14, 68, 16, 0, 17, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 34, 35, 36, 37, 38, 0, 69, 0, + 27, 0, 70, 0, 0, 0, 0, 0, 0, 43, + 44, 0, 0, 0, 0, 45, 0, 46, 33, 0, + 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, + 165, 0, 0, 0, 0, 70, 0, 0, 0, 0, + 0, 0, 43, 44, 0, 0, 0, 0, 80, 0, + 46, 133, 134, 135, 136, 137, 138, 0, 139, 166, + 167, 140, 141, 142, 0, 0, 0, 0, 0, 179, + 0, 0, 0, 0, 0, 180, 0, 0, 143, 144, + 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, - 0, 0, 181, 0, 0, 0, 0, 0, 182, 0, + 0, 0, 0, 181, 0, 0, 0, 0, 0, 182, 0, 0, 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, - 141, 142, 0, 0, 0, 0, 183, 0, 0, 0, - 0, 0, 184, 0, 0, 0, 143, 144, 145, 146, + 141, 142, 0, 0, 0, 0, 0, 183, 0, 0, + 0, 0, 0, 184, 0, 0, 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, - 185, 0, 0, 0, 0, 0, 186, 0, 0, 0, + 0, 185, 0, 0, 0, 0, 0, 186, 0, 0, 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, - 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, - 0, 140, 141, 142, 0, 0, 0, 0, 264, 0, + 0, 140, 141, 142, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, - 0, 0, 265, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 265, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, - 141, 142, 0, 0, 0, 0, 266, 0, 0, 0, + 141, 142, 0, 0, 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 232, 0, 143, 144, 145, 146, 147, 148, - 149, 0, 200, 133, 134, 135, 136, 137, 138, 0, - 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, - 143, 144, 145, 146, 147, 148, 149, 133, 134, 135, + 0, 0, 0, 233, 143, 144, 145, 146, 147, 148, + 149, 0, 200, 133, 134, 135, 136, 137, 138, 176, + 139, 0, 0, 140, 141, 142, 0, 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, 142, - 133, 134, 135, 136, 137, 138, 0, 139, 0, 0, - 140, 141, 142, 0, 143, 144, 145, 146, 147, 148, - 149, 0, 0, 0, 0, 0, 0, 143, 144, 145, - 146, 147, 148, 149, 0, 0, 0, 191, 133, 134, - 135, 136, 137, 138, 0, 139, 0, 0, 140, 141, - 142, 0, 0, 0, 0, 0, 187, 188, 0, 0, - 0, 0, 0, 0, 0, 143, 144, 145, 146, 147, - 148, 149, 133, 134, 135, 136, 137, 138, 0, 139, - 0, 0, 140, 141, 142, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, - 144, 145, 146, 147, 148, 149 + 143, 144, 145, 146, 147, 148, 149, 0, 0, 0, + 0, 0, 0, 0, 143, 144, 145, 146, 147, 148, + 149, 133, 134, 135, 136, 137, 138, 0, 139, 0, + 0, 140, 141, 142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 144, + 145, 146, 147, 148, 149, 0, 0, 0, 191, 133, + 134, 135, 136, 137, 138, 0, 139, 0, 0, 140, + 141, 142, 0, 0, 0, 0, 0, 187, 188, 0, + 0, 0, 0, 0, 0, 0, 143, 144, 145, 146, + 147, 148, 149, 133, 134, 135, 136, 137, 138, 0, + 139, 0, 0, 140, 141, 142, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 143, 144, 145, 146, 147, 148, 149 }; static const yytype_int16 yycheck[] = { - 4, 0, 0, 7, 8, 9, 163, 46, 12, 13, - 14, 15, 31, 15, 16, 57, 58, 21, 175, 101, - 24, 101, 73, 55, 106, 36, 30, 31, 30, 33, - 34, 35, 36, 37, 38, 73, 68, 76, 76, 43, - 44, 45, 46, 82, 55, 130, 131, 98, 99, 53, - 55, 55, 47, 57, 49, 224, 30, 95, 96, 97, - 98, 99, 52, 68, 101, 69, 235, 30, 44, 106, - 101, 13, 76, 15, 93, 106, 80, 103, 82, 30, - 106, 73, 86, 103, 88, 30, 106, 30, 107, 30, - 66, 67, 68, 69, 70, 71, 100, 73, 74, 75, - 76, 77, 78, 101, 96, 97, 98, 99, 30, 103, - 30, 196, 106, 30, 105, 106, 102, 93, 94, 95, - 96, 97, 98, 99, 68, 129, 29, 30, 127, 133, + 4, 83, 0, 7, 8, 9, 158, 46, 12, 13, + 14, 15, 31, 15, 16, 101, 259, 101, 22, 0, + 106, 25, 73, 29, 30, 76, 30, 31, 30, 33, + 34, 35, 36, 37, 38, 73, 279, 76, 73, 43, + 44, 45, 46, 82, 95, 96, 97, 98, 99, 53, + 37, 55, 101, 57, 30, 56, 56, 106, 96, 97, + 98, 99, 53, 98, 99, 69, 30, 68, 68, 56, + 58, 59, 76, 225, 101, 94, 80, 103, 82, 106, + 106, 103, 164, 87, 106, 89, 103, 30, 107, 106, + 130, 131, 48, 13, 50, 15, 30, 101, 105, 106, + 30, 30, 30, 101, 30, 102, 68, 102, 48, 30, + 106, 55, 106, 106, 106, 30, 30, 106, 30, 68, + 30, 30, 55, 106, 30, 129, 91, 30, 39, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 102, 151, 305, 153, - 278, 279, 106, 106, 47, 30, 54, 161, 106, 106, - 200, 165, 166, 30, 168, 169, 30, 252, 172, 173, - 106, 256, 176, 30, 68, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 30, 30, 106, 273, 193, - 30, 54, 91, 55, 30, 199, 92, 38, 37, 30, - 90, 106, 287, 91, 54, 30, 91, 90, 56, 294, - 298, 250, 297, 127, 254, 164, 100, 31, -1, 304, - -1, -1, -1, 308, -1, -1, 311, 231, 232, -1, - -1, -1, -1, -1, 319, -1, 276, -1, -1, 324, - -1, -1, -1, -1, -1, -1, 250, -1, -1, -1, - -1, -1, 292, 293, -1, 295, -1, -1, -1, 263, - 264, 265, 266, 303, -1, -1, -1, -1, 272, -1, - -1, 0, 1, 313, -1, -1, -1, -1, -1, -1, - 320, -1, 286, 12, -1, -1, 15, 16, 17, -1, - 19, 20, 21, 22, 23, 299, 25, 26, 27, -1, - 29, 30, 31, -1, 33, -1, 35, -1, -1, -1, - 39, -1, 41, 42, 43, -1, -1, 46, -1, -1, - -1, -1, 51, 52, 53, -1, -1, 56, -1, -1, - -1, 60, 61, 62, 63, -1, 65, -1, -1, -1, - -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, - 79, 80, 81, 82, 83, -1, -1, 86, 87, 88, - 89, -1, -1, -1, -1, -1, -1, 96, 97, -1, - -1, -1, 101, 102, 12, 104, -1, 15, 16, 17, + 144, 145, 146, 147, 148, 149, 127, 151, 56, 153, + 92, 38, 30, 90, 106, 91, 196, 55, 162, 30, + 91, 127, 166, 167, 56, 169, 170, 90, 298, 173, + 174, 31, 176, -1, 101, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 165, -1, -1, -1, 193, + -1, -1, -1, -1, -1, 199, -1, 200, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 66, 67, 68, + 69, 250, 252, -1, 73, -1, 256, 76, 77, 78, + -1, -1, 304, -1, -1, -1, -1, -1, 232, 233, + -1, -1, -1, 273, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, -1, 250, 287, -1, -1, + -1, 254, -1, -1, 294, -1, -1, 297, -1, 263, + 264, 265, 266, 303, -1, -1, -1, 307, 272, -1, + 310, -1, -1, 276, -1, 278, -1, -1, 318, -1, + -1, -1, 286, 323, -1, -1, -1, -1, -1, -1, + 293, -1, 295, -1, -1, 299, -1, -1, -1, 302, + -1, -1, 0, 1, -1, -1, -1, -1, -1, 312, + -1, -1, -1, -1, 12, -1, 319, 15, 16, 17, -1, 19, 20, 21, 22, 23, -1, 25, 26, 27, - -1, 29, 30, 31, -1, 33, -1, 35, -1, -1, - -1, 39, -1, 41, 42, 43, -1, -1, 46, -1, - -1, -1, -1, 51, 52, 53, -1, -1, 56, -1, - -1, -1, 60, 61, 62, 63, -1, 65, -1, -1, + -1, 29, 30, 31, -1, 33, -1, 35, 36, -1, + -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, -1, 52, 53, 54, -1, -1, 57, + -1, -1, -1, 61, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, -1, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, 96, 97, - -1, -1, -1, -1, 102, 12, 104, -1, 15, 16, + -1, -1, -1, 101, 102, 12, 104, -1, 15, 16, 17, -1, 19, 20, 21, 22, 23, -1, 25, 26, - 27, -1, 29, 30, 31, -1, 33, 34, 35, -1, - -1, -1, 39, -1, 41, 42, 43, -1, -1, -1, - -1, -1, -1, -1, 51, 52, 53, -1, -1, 56, - -1, -1, -1, -1, -1, 62, 63, -1, 65, -1, + 27, -1, 29, 30, 31, -1, 33, -1, 35, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, -1, 52, 53, 54, -1, -1, + 57, -1, -1, -1, 61, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, -1, 86, - 87, -1, 89, -1, -1, -1, -1, -1, -1, 96, - 97, -1, -1, -1, 101, 102, 12, 104, -1, 15, + 87, 88, 89, -1, -1, -1, -1, -1, -1, 96, + 97, -1, -1, -1, -1, 102, 12, 104, -1, 15, 16, 17, -1, 19, 20, 21, 22, 23, -1, 25, - 26, 27, -1, 29, 30, 31, -1, 33, -1, 35, - -1, -1, -1, 39, -1, 41, 42, 43, -1, -1, - -1, -1, -1, -1, -1, 51, 52, 53, -1, -1, - 56, -1, -1, -1, -1, -1, 62, 63, -1, 65, + 26, 27, -1, 29, 30, 31, -1, 33, 34, 35, + -1, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, -1, -1, -1, -1, -1, 52, 53, 54, -1, + -1, 57, -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, -1, 86, 87, -1, 89, -1, -1, -1, -1, -1, -1, 96, 97, -1, -1, -1, 101, 102, 12, 104, -1, 15, 16, 17, -1, 19, 20, 21, 22, 23, -1, 25, 26, 27, -1, 29, 30, 31, -1, 33, -1, - 35, -1, -1, -1, 39, -1, 41, 42, -1, -1, - -1, -1, -1, -1, -1, -1, 51, -1, 53, -1, - -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, + 35, -1, -1, -1, -1, 40, -1, 42, 43, 44, + -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, + -1, -1, 57, -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, - -1, -1, 87, -1, 89, -1, -1, -1, -1, -1, - 12, 96, 97, 15, 16, 17, -1, 102, -1, 104, - -1, -1, -1, 25, 26, 27, -1, 29, 30, 31, - -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, - -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, - -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 86, 87, -1, 89, -1, -1, -1, -1, -1, + -1, 96, 97, -1, -1, -1, 101, 102, 12, 104, + -1, 15, 16, 17, -1, 19, 20, 21, 22, 23, + -1, 25, 26, 27, -1, 29, 30, 31, -1, 33, + -1, 35, -1, -1, -1, -1, 40, -1, 42, 43, + -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, + 54, -1, -1, -1, -1, -1, -1, -1, 62, 63, + -1, 65, -1, -1, -1, -1, -1, -1, 72, -1, + -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, + -1, -1, -1, 87, -1, 89, -1, -1, -1, -1, + -1, 12, 96, 97, 15, 16, 17, -1, 102, -1, + 104, -1, -1, -1, 25, 26, 27, -1, 29, 30, + 31, -1, 33, -1, -1, -1, -1, -1, -1, -1, + 41, -1, -1, -1, -1, 46, -1, 48, 49, 50, + 51, 52, -1, 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 72, 12, -1, -1, 15, 16, 17, 79, 80, 81, - 82, 83, -1, -1, 25, 26, 27, 89, 29, 30, - 31, -1, 33, -1, 96, 97, -1, -1, -1, 40, - 102, -1, 104, -1, -1, -1, 47, -1, 49, -1, - 51, 12, 53, -1, 15, 16, 17, -1, -1, -1, - -1, -1, -1, 64, 25, 26, 27, -1, 29, 30, - 31, 72, 33, -1, -1, -1, -1, -1, 79, 80, + -1, 72, -1, -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, -1, -1, -1, -1, -1, 89, -1, - 51, -1, 53, -1, -1, 96, 97, -1, -1, -1, - -1, 102, -1, 104, -1, -1, -1, -1, -1, -1, - -1, 72, 12, -1, -1, 15, 16, 17, 79, 80, - 81, 82, 83, -1, -1, 25, 26, 27, 89, 29, - 30, 31, -1, 33, -1, 96, 97, 66, 67, 68, - 69, 102, -1, 104, 73, -1, -1, 76, 77, 78, - -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, - 99, -1, 72, -1, -1, -1, -1, -1, -1, 79, - 80, 81, 82, 83, -1, -1, -1, -1, 49, 89, - -1, -1, -1, -1, 55, -1, 96, 97, -1, -1, - -1, -1, 102, -1, 104, 66, 67, 68, 69, 70, + -1, -1, -1, -1, 12, 96, 97, 15, 16, 17, + -1, 102, -1, 104, -1, -1, -1, 25, 26, 27, + -1, 29, 30, 31, -1, 33, -1, -1, -1, -1, + -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, + 48, -1, 50, -1, 52, -1, 54, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 64, -1, -1, -1, + -1, -1, -1, -1, 72, 12, -1, -1, 15, 16, + 17, 79, 80, 81, 82, 83, -1, -1, 25, 26, + 27, 89, 29, 30, 31, -1, 33, -1, 96, 97, + -1, -1, -1, -1, 102, -1, 104, -1, 12, -1, + -1, 15, 16, 17, -1, 52, -1, 54, -1, -1, + -1, 25, 26, 27, -1, 29, 30, 31, -1, 33, + -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, + -1, -1, 79, 80, 81, 82, 83, -1, 52, -1, + 54, -1, 89, -1, -1, -1, -1, -1, -1, 96, + 97, -1, -1, -1, -1, 102, -1, 104, 72, -1, + -1, -1, -1, -1, -1, 79, 80, 81, 82, 83, + 45, -1, -1, -1, -1, 89, -1, -1, -1, -1, + -1, -1, 96, 97, -1, -1, -1, -1, 102, -1, + 104, 66, 67, 68, 69, 70, 71, -1, 73, 74, + 75, 76, 77, 78, -1, -1, -1, -1, -1, 50, + -1, -1, -1, -1, -1, 56, -1, -1, 93, 94, + 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, -1, -1, - -1, -1, 49, -1, -1, -1, -1, -1, 55, -1, + -1, -1, -1, 50, -1, -1, -1, -1, -1, 56, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, - 77, 78, -1, -1, -1, -1, 49, -1, -1, -1, - -1, -1, 55, -1, -1, -1, 93, 94, 95, 96, + 77, 78, -1, -1, -1, -1, -1, 50, -1, -1, + -1, -1, -1, 56, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, -1, -1, -1, -1, - 49, -1, -1, -1, -1, -1, 55, -1, -1, -1, + -1, 50, -1, -1, -1, -1, -1, 56, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, - -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, - -1, 76, 77, 78, -1, -1, -1, -1, 49, -1, + -1, 76, 77, 78, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, -1, -1, - -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, - 77, 78, -1, -1, -1, -1, 49, -1, -1, -1, + 77, 78, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 55, -1, 93, 94, 95, 96, 97, 98, - 99, -1, 101, 66, 67, 68, 69, 70, 71, -1, - 73, -1, -1, 76, 77, 78, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 57, -1, - 93, 94, 95, 96, 97, 98, 99, 66, 67, 68, + -1, -1, -1, 56, 93, 94, 95, 96, 97, 98, + 99, -1, 101, 66, 67, 68, 69, 70, 71, 58, + 73, -1, -1, 76, 77, 78, -1, 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, 78, - 66, 67, 68, 69, 70, 71, -1, 73, -1, -1, - 76, 77, 78, -1, 93, 94, 95, 96, 97, 98, - 99, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, 99, -1, -1, -1, 103, 66, 67, - 68, 69, 70, 71, -1, 73, -1, -1, 76, 77, - 78, -1, -1, -1, -1, -1, 84, 85, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, - 98, 99, 66, 67, 68, 69, 70, 71, -1, 73, - -1, -1, 76, 77, 78, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, - 94, 95, 96, 97, 98, 99 + 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, + -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, + 99, 66, 67, 68, 69, 70, 71, -1, 73, -1, + -1, 76, 77, 78, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, + 95, 96, 97, 98, 99, -1, -1, -1, 103, 66, + 67, 68, 69, 70, 71, -1, 73, -1, -1, 76, + 77, 78, -1, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, + 97, 98, 99, 66, 67, 68, 69, 70, 71, -1, + 73, -1, -1, 76, 77, 78, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 93, 94, 95, 96, 97, 98, 99 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1207,38 +1223,38 @@ static const yytype_int16 yycheck[] = static const yytype_uint8 yystos[] = { 0, 1, 12, 15, 16, 17, 19, 20, 21, 22, - 23, 25, 26, 27, 29, 30, 31, 33, 35, 39, - 41, 42, 43, 46, 51, 52, 53, 56, 60, 61, + 23, 25, 26, 27, 29, 30, 31, 33, 35, 36, + 40, 42, 43, 44, 47, 52, 53, 54, 57, 61, 62, 63, 65, 72, 79, 80, 81, 82, 83, 86, 87, 88, 89, 96, 97, 102, 104, 108, 109, 110, 111, 112, 113, 116, 117, 118, 123, 124, 125, 126, - 127, 128, 132, 135, 137, 140, 144, 101, 30, 51, + 127, 128, 132, 135, 137, 140, 144, 101, 30, 52, 89, 126, 126, 126, 126, 146, 30, 126, 146, 126, - 102, 146, 136, 52, 30, 129, 40, 45, 47, 48, - 49, 50, 126, 133, 134, 30, 126, 57, 58, 15, - 16, 30, 30, 30, 30, 126, 64, 133, 134, 30, + 102, 146, 136, 139, 53, 30, 129, 41, 46, 48, + 49, 50, 51, 126, 133, 134, 30, 126, 58, 59, + 15, 16, 30, 30, 30, 126, 64, 133, 134, 30, 131, 126, 126, 126, 126, 126, 126, 30, 130, 30, 102, 126, 126, 126, 126, 145, 0, 101, 126, 68, 126, 111, 126, 66, 67, 68, 69, 70, 71, 73, 76, 77, 78, 93, 94, 95, 96, 97, 98, 99, - 120, 102, 126, 106, 145, 126, 145, 145, 106, 126, - 126, 47, 134, 138, 44, 74, 75, 30, 55, 68, - 125, 126, 55, 68, 54, 139, 57, 134, 106, 49, - 55, 49, 55, 49, 55, 49, 55, 84, 85, 106, - 30, 103, 105, 106, 109, 121, 126, 121, 121, 55, + 120, 102, 126, 106, 145, 126, 145, 145, 120, 106, + 126, 126, 48, 134, 138, 45, 74, 75, 30, 56, + 68, 125, 126, 56, 68, 55, 58, 134, 106, 50, + 56, 50, 56, 50, 56, 50, 56, 84, 85, 106, + 30, 103, 105, 106, 109, 121, 126, 121, 121, 56, 101, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 30, 141, - 126, 103, 30, 126, 120, 30, 127, 126, 126, 126, - 126, 68, 55, 126, 126, 120, 126, 30, 126, 126, + 126, 103, 141, 30, 126, 120, 30, 127, 126, 126, + 126, 126, 68, 56, 126, 126, 126, 30, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 30, 103, - 106, 126, 122, 121, 54, 126, 122, 101, 106, 141, - 126, 126, 141, 49, 49, 49, 49, 145, 101, 112, - 121, 36, 55, 122, 121, 106, 143, 30, 101, 101, - 126, 126, 126, 126, 103, 91, 55, 126, 121, 92, - 30, 122, 143, 143, 126, 121, 38, 114, 115, 119, - 34, 122, 122, 121, 122, 37, 121, 114, 126, 30, - 142, 122, 121, 120, 90, 121, 106, 121, 91, 122, - 54, 30, 91, 121, 122, 90, 121 + 106, 126, 122, 121, 55, 126, 122, 101, 106, 101, + 141, 126, 126, 50, 50, 50, 50, 145, 101, 112, + 121, 37, 56, 122, 121, 106, 143, 30, 143, 101, + 126, 126, 126, 126, 103, 91, 56, 126, 121, 92, + 30, 122, 122, 143, 126, 121, 39, 114, 115, 119, + 34, 122, 121, 122, 38, 121, 114, 126, 30, 142, + 122, 121, 120, 90, 121, 106, 121, 91, 122, 55, + 30, 91, 121, 122, 90, 121 }; #define yyerrok (yyerrstatus = 0) @@ -2784,7 +2800,7 @@ yyreduce: #line 533 "engines/director/lingo/lingo-gr.y" { g_lingo->code1(g_lingo->c_procret); - g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg) + 1, &g_lingo->_currentFactory); + g_lingo->define(*(yyvsp[(1) - (7)].s), (yyvsp[(3) - (7)].code), (yyvsp[(4) - (7)].narg) + 1, &g_lingo->_currentFactory); g_lingo->_indef = false; ;} break; @@ -2875,7 +2891,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2879 "engines/director/lingo/lingo-gr.cpp" +#line 2895 "engines/director/lingo/lingo-gr.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h index 1917368eee..b90f411ed4 100644 --- a/engines/director/lingo/lingo-gr.h +++ b/engines/director/lingo/lingo-gr.h @@ -72,32 +72,32 @@ SYMBOL = 288, ENDCLAUSE = 289, tPLAYACCEL = 290, - tDOWN = 291, - tELSE = 292, - tELSIF = 293, - tEXIT = 294, - tFRAME = 295, - tGLOBAL = 296, - tGO = 297, - tIF = 298, - tINTO = 299, - tLOOP = 300, - tMACRO = 301, - tMOVIE = 302, - tNEXT = 303, - tOF = 304, - tPREVIOUS = 305, - tPUT = 306, - tREPEAT = 307, - tSET = 308, - tTHEN = 309, - tTO = 310, - tWHEN = 311, - tWITH = 312, - tWHILE = 313, - tNLELSE = 314, - tFACTORY = 315, - tMETHOD = 316, + tMETHOD = 291, + tDOWN = 292, + tELSE = 293, + tELSIF = 294, + tEXIT = 295, + tFRAME = 296, + tGLOBAL = 297, + tGO = 298, + tIF = 299, + tINTO = 300, + tLOOP = 301, + tMACRO = 302, + tMOVIE = 303, + tNEXT = 304, + tOF = 305, + tPREVIOUS = 306, + tPUT = 307, + tREPEAT = 308, + tSET = 309, + tTHEN = 310, + tTO = 311, + tWHEN = 312, + tWITH = 313, + tWHILE = 314, + tNLELSE = 315, + tFACTORY = 316, tOPEN = 317, tPLAY = 318, tDONE = 319, @@ -165,32 +165,32 @@ #define SYMBOL 288 #define ENDCLAUSE 289 #define tPLAYACCEL 290 -#define tDOWN 291 -#define tELSE 292 -#define tELSIF 293 -#define tEXIT 294 -#define tFRAME 295 -#define tGLOBAL 296 -#define tGO 297 -#define tIF 298 -#define tINTO 299 -#define tLOOP 300 -#define tMACRO 301 -#define tMOVIE 302 -#define tNEXT 303 -#define tOF 304 -#define tPREVIOUS 305 -#define tPUT 306 -#define tREPEAT 307 -#define tSET 308 -#define tTHEN 309 -#define tTO 310 -#define tWHEN 311 -#define tWITH 312 -#define tWHILE 313 -#define tNLELSE 314 -#define tFACTORY 315 -#define tMETHOD 316 +#define tMETHOD 291 +#define tDOWN 292 +#define tELSE 293 +#define tELSIF 294 +#define tEXIT 295 +#define tFRAME 296 +#define tGLOBAL 297 +#define tGO 298 +#define tIF 299 +#define tINTO 300 +#define tLOOP 301 +#define tMACRO 302 +#define tMOVIE 303 +#define tNEXT 304 +#define tOF 305 +#define tPREVIOUS 306 +#define tPUT 307 +#define tREPEAT 308 +#define tSET 309 +#define tTHEN 310 +#define tTO 311 +#define tWHEN 312 +#define tWITH 313 +#define tWHILE 314 +#define tNLELSE 315 +#define tFACTORY 316 #define tOPEN 317 #define tPLAY 318 #define tDONE 319 diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index cf8cad97c6..025555287c 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -94,10 +94,10 @@ void checkEnd(Common::String *token, const char *expect, bool required) { %token BLTIN BLTINNOARGS BLTINNOARGSORONE BLTINONEARG BLTINARGLIST TWOWORDBUILTIN %token FBLTIN FBLTINNOARGS FBLTINONEARG FBLTINARGLIST RBLTIN RBLTINONEARG %token ID STRING HANDLER SYMBOL -%token ENDCLAUSE tPLAYACCEL +%token ENDCLAUSE tPLAYACCEL tMETHOD %token tDOWN tELSE tELSIF tEXIT tFRAME tGLOBAL tGO tIF tINTO tLOOP tMACRO %token tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN -%token tWITH tWHILE tNLELSE tFACTORY tMETHOD tOPEN tPLAY tDONE tINSTANCE +%token tWITH tWHILE tNLELSE tFACTORY tOPEN tPLAY tDONE tINSTANCE %token tGE tLE tEQ tNEQ tAND tOR tNOT tMOD %token tAFTER tBEFORE tCONCAT tCONTAINS tSTARTS tCHAR tITEM tLINE tWORD %token tSPRITE tINTERSECTS tWITHIN tTELL tPROPERTY @@ -529,12 +529,12 @@ defn: tMACRO ID { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); } g_lingo->define(*$2, $4, $5); g_lingo->_indef = false; } | tFACTORY ID { g_lingo->codeFactory(*$2); } - | tMETHOD ID { g_lingo->_indef = true; } + | tMETHOD { g_lingo->_indef = true; } begin argdef '\n' argstore stmtlist { g_lingo->code1(g_lingo->c_procret); - g_lingo->define(*$2, $4, $5 + 1, &g_lingo->_currentFactory); + g_lingo->define(*$1, $3, $4 + 1, &g_lingo->_currentFactory); g_lingo->_indef = false; } - | on begin argdef '\n' argstore stmtlist ENDCLAUSE endargdef { // D3 + | on begin argdef '\n' argstore stmtlist ENDCLAUSE endargdef { // D3 g_lingo->code1(g_lingo->c_procret); g_lingo->define(*$1, $2, $3); g_lingo->_indef = false; diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp index 40fb773c68..03c329474f 100644 --- a/engines/director/lingo/lingo-lex.cpp +++ b/engines/director/lingo/lingo-lex.cpp @@ -373,7 +373,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[279] = +static yyconst flex_int16_t yy_accept[284] = { 0, 0, 0, 75, 73, 4, 71, 71, 73, 73, 73, 70, 70, 70, 69, 70, 66, 70, 67, 67, 67, @@ -398,13 +398,14 @@ static yyconst flex_int16_t yy_accept[279] = 67, 32, 67, 67, 67, 67, 67, 67, 53, 53, 53, 53, 60, 67, 8, 67, 0, 16, 67, 20, - 67, 67, 30, 67, 67, 67, 44, 56, 46, 0, + 67, 67, 67, 67, 67, 67, 44, 56, 46, 0, 0, 53, 53, 53, 58, 67, 14, 17, 67, 67, - 67, 67, 67, 0, 0, 0, 0, 53, 53, 53, - 10, 23, 67, 67, 41, 42, 0, 0, 0, 53, - 53, 53, 67, 40, 0, 0, 0, 0, 0, 53, - 24, 52, 51, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 49, 50, 50, 0 + 0, 30, 67, 67, 67, 0, 0, 0, 0, 53, + 53, 53, 10, 23, 67, 30, 30, 67, 41, 42, + 0, 0, 0, 53, 53, 53, 67, 30, 40, 0, + 0, 0, 0, 0, 53, 24, 52, 51, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 50, 50, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -450,18 +451,18 @@ static yyconst flex_int32_t yy_meta[66] = 5, 5, 5, 5, 1 } ; -static yyconst flex_int16_t yy_base[290] = +static yyconst flex_int16_t yy_base[299] = { 0, - 0, 64, 177, 736, 68, 736, 736, 72, 159, 0, - 736, 113, 107, 55, 63, 736, 94, 58, 60, 58, + 0, 64, 177, 752, 68, 752, 752, 72, 159, 0, + 752, 113, 107, 55, 63, 752, 94, 58, 60, 58, 54, 62, 77, 63, 0, 94, 70, 109, 106, 109, - 121, 75, 138, 137, 146, 82, 141, 185, 199, 736, - 205, 94, 93, 736, 0, 736, 0, 79, 90, 736, - 736, 736, 0, 69, 129, 128, 163, 139, 182, 160, + 121, 75, 138, 137, 146, 82, 141, 185, 199, 752, + 205, 94, 93, 752, 0, 752, 0, 79, 90, 752, + 752, 752, 0, 69, 129, 128, 163, 139, 182, 160, 178, 174, 193, 196, 185, 130, 0, 182, 200, 190, 195, 203, 192, 208, 191, 196, 0, 0, 211, 0, 216, 231, 201, 211, 213, 223, 217, 235, 242, 0, - 246, 230, 240, 736, 279, 296, 0, 0, 70, 247, + 246, 230, 240, 752, 279, 296, 0, 0, 70, 247, 0, 248, 246, 252, 269, 265, 270, 304, 260, 269, 277, 289, 308, 277, 293, 293, 287, 291, 291, 301, @@ -471,56 +472,60 @@ static yyconst flex_int16_t yy_base[290] = 353, 358, 347, 361, 349, 0, 0, 0, 0, 353, 355, 365, 0, 0, 370, 365, 370, 377, 362, 363, 0, 400, 0, 0, 387, 385, 0, 0, 392, 389, - 415, 0, 0, 385, 0, 396, 736, 395, 391, 0, + 415, 0, 0, 385, 0, 396, 752, 395, 391, 0, 408, 0, 410, 396, 398, 397, 420, 402, 457, 466, 467, 468, 0, 428, 0, 434, 442, 0, 434, 0, - 456, 458, 0, 461, 446, 453, 0, 0, 0, 489, - 466, 511, 525, 512, 0, 462, 736, 0, 469, 474, - 482, 468, 467, 527, 519, 515, 515, 536, 542, 549, - 0, 0, 507, 522, 0, 0, 515, 374, 527, 562, - 573, 582, 522, 0, 547, 441, 565, 586, 592, 594, - 0, 736, 490, 736, 600, 567, 605, 568, 618, 624, - 631, 637, 578, 639, 645, 647, 653, 736, 691, 693, - 696, 699, 705, 710, 715, 718, 723, 725, 730 + 456, 458, 488, 461, 446, 453, 0, 0, 0, 489, + 472, 511, 520, 527, 0, 462, 752, 0, 465, 483, + 374, 0, 482, 480, 475, 531, 509, 513, 515, 539, + 545, 554, 0, 0, 483, 0, 0, 519, 0, 0, + 517, 441, 529, 561, 577, 581, 534, 0, 0, 551, + 591, 554, 601, 603, 605, 0, 752, 607, 752, 611, + 572, 615, 577, 623, 624, 630, 637, 600, 632, 647, + 649, 654, 752, 691, 693, 696, 699, 705, 710, 715, + 718, 723, 725, 730, 735, 738, 741, 746 + } ; -static yyconst flex_int16_t yy_def[290] = +static yyconst flex_int16_t yy_def[299] = { 0, - 278, 1, 278, 278, 278, 278, 278, 278, 279, 280, - 278, 278, 278, 278, 278, 278, 278, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 278, 278, 278, 278, 278, - 278, 278, 279, 278, 282, 278, 283, 278, 278, 278, - 278, 278, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 278, 278, 278, 282, 283, 278, 281, - - 281, 281, 281, 281, 281, 281, 281, 284, 281, 281, - 281, 281, 278, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 285, 286, 281, 281, - 281, 281, 278, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 287, 281, 281, 281, 281, 281, 281, 281, 281, - 278, 288, 286, 281, 281, 281, 278, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 287, 287, - - 287, 287, 281, 281, 281, 281, 278, 288, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 278, - 278, 287, 287, 287, 281, 281, 278, 281, 281, 281, - 281, 281, 281, 278, 278, 278, 278, 287, 287, 287, - 281, 281, 281, 281, 281, 281, 278, 278, 278, 287, - 287, 287, 281, 281, 278, 289, 278, 278, 278, 287, - 281, 278, 289, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 289, 289, 278, 289, 0, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278 + 283, 1, 283, 283, 283, 283, 283, 283, 284, 285, + 283, 283, 283, 283, 283, 283, 283, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 283, 283, 283, 283, 283, + 283, 283, 284, 283, 287, 283, 288, 283, 283, 283, + 283, 283, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 283, 283, 283, 287, 288, 283, 286, + + 286, 286, 286, 286, 286, 286, 286, 289, 286, 286, + 286, 286, 283, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 290, 291, 286, 286, + 286, 286, 283, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, + 286, 292, 286, 286, 286, 286, 286, 286, 286, 286, + 283, 293, 291, 286, 286, 286, 283, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, 292, 292, + + 292, 292, 286, 286, 286, 286, 283, 293, 286, 286, + 286, 286, 294, 286, 286, 286, 286, 286, 286, 283, + 283, 292, 292, 292, 286, 286, 283, 286, 286, 286, + 295, 296, 286, 286, 286, 283, 283, 283, 283, 292, + 292, 292, 286, 286, 286, 297, 296, 286, 286, 286, + 283, 283, 283, 292, 292, 292, 286, 297, 286, 283, + 298, 283, 283, 283, 292, 286, 283, 298, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 298, 298, + 283, 298, 0, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283 + } ; -static yyconst flex_int16_t yy_nxt[802] = +static yyconst flex_int16_t yy_nxt[818] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 13, 4, 14, 15, 16, 17, 18, 19, 20, 21, @@ -540,80 +545,81 @@ static yyconst flex_int16_t yy_nxt[802] = 67, 80, 95, 40, 40, 96, 68, 81, 101, 102, 72, 75, 69, 82, 73, 77, 83, 88, 85, 76, 89, 78, 74, 79, 44, 80, 90, 104, 86, 91, - 92, 81, 87, 101, 102, 93, 278, 82, 181, 103, - 83, 181, 88, 85, 278, 89, 96, 40, 40, 96, + 92, 81, 87, 101, 102, 93, 283, 82, 181, 103, + 83, 181, 88, 85, 283, 89, 96, 40, 40, 96, 90, 104, 86, 107, 91, 92, 87, 108, 109, 93, 39, 40, 40, 41, 103, 42, 41, 40, 40, 41, - 105, 110, 111, 278, 112, 114, 115, 107, 117, 106, + 105, 110, 111, 283, 112, 114, 115, 107, 117, 106, 116, 119, 108, 109, 118, 147, 120, 121, 147, 123, 124, 125, 126, 133, 105, 129, 110, 111, 112, 114, 115, 130, 117, 106, 122, 116, 119, 131, 118, 42, 120, 127, 121, 123, 124, 132, 125, 126, 133, 129, 128, 134, 135, 42, 138, 130, 136, 140, 122, 42, - 137, 131, 139, 278, 278, 278, 127, 141, 142, 132, + 137, 131, 139, 283, 283, 283, 127, 141, 142, 132, 95, 40, 40, 96, 128, 134, 143, 135, 138, 144, 146, 136, 140, 145, 149, 137, 139, 96, 40, 40, 96, 141, 142, 150, 151, 147, 152, 158, 147, 113, - 143, 154, 113, 155, 144, 146, 53, 145, 149, 278, + 143, 154, 113, 155, 144, 146, 53, 145, 149, 283, 157, 159, 156, 160, 161, 162, 168, 150, 151, 163, - 164, 152, 158, 165, 166, 154, 278, 167, 155, 169, - 278, 170, 153, 42, 157, 159, 156, 160, 171, 161, + 164, 152, 158, 165, 166, 154, 283, 167, 155, 169, + 283, 170, 153, 42, 157, 159, 156, 160, 171, 161, 162, 168, 172, 163, 164, 172, 174, 165, 166, 175, 42, 167, 176, 177, 169, 170, 153, 178, 179, 180, - 278, 184, 171, 185, 186, 256, 187, 188, 256, 173, + 283, 184, 171, 185, 186, 231, 187, 188, 231, 173, 174, 189, 190, 175, 191, 192, 193, 176, 177, 194, 195, 178, 179, 196, 180, 184, 197, 198, 185, 186, 187, 172, 188, 173, 172, 189, 190, 203, 191, 204, 192, 193, 205, 206, 194, 195, 181, 209, 196, 181, - 197, 198, 210, 211, 212, 215, 200, 213, 214, 278, + 197, 198, 210, 211, 212, 215, 200, 213, 214, 283, 216, 217, 203, 201, 204, 219, 202, 205, 206, 207, - 218, 209, 256, 278, 278, 256, 210, 211, 212, 215, - 200, 278, 213, 214, 216, 217, 225, 201, 220, 219, + 218, 209, 261, 283, 283, 261, 210, 211, 212, 215, + 200, 283, 213, 214, 216, 217, 225, 201, 220, 219, 202, 220, 226, 227, 207, 218, 221, 220, 220, 220, - 220, 220, 220, 228, 229, 221, 221, 221, 230, 231, - 225, 232, 222, 278, 224, 235, 226, 233, 227, 242, - 234, 278, 243, 234, 278, 241, 278, 228, 223, 229, - - 237, 245, 244, 230, 231, 232, 246, 222, 235, 224, - 235, 233, 220, 220, 242, 220, 220, 243, 236, 241, - 221, 221, 223, 237, 237, 245, 220, 244, 234, 220, - 246, 234, 278, 235, 221, 247, 248, 220, 240, 249, - 220, 253, 236, 220, 238, 221, 220, 237, 254, 255, - 220, 221, 278, 220, 257, 261, 236, 239, 221, 278, - 247, 248, 240, 258, 249, 253, 258, 262, 238, 278, - 250, 221, 254, 255, 259, 278, 251, 259, 257, 261, - 236, 239, 221, 220, 252, 264, 220, 265, 270, 271, - 265, 221, 262, 267, 250, 269, 267, 278, 269, 276, - - 251, 265, 260, 221, 265, 235, 267, 278, 252, 267, - 264, 235, 278, 270, 271, 266, 278, 278, 278, 272, - 237, 268, 272, 278, 276, 274, 237, 260, 274, 266, - 235, 278, 275, 278, 268, 275, 235, 235, 272, 266, - 274, 272, 278, 274, 237, 268, 275, 273, 277, 275, - 237, 277, 237, 266, 277, 278, 278, 277, 268, 278, - 278, 278, 235, 278, 278, 278, 273, 278, 278, 278, - 278, 273, 278, 278, 278, 278, 237, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 273, 43, 43, 278, 43, 43, 43, 45, 45, 53, - - 53, 53, 97, 97, 97, 98, 98, 278, 98, 98, - 98, 148, 278, 148, 148, 148, 182, 278, 278, 182, - 182, 183, 183, 183, 199, 278, 278, 199, 208, 208, - 208, 263, 278, 278, 263, 3, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - - 278 + 220, 220, 220, 228, 229, 221, 221, 221, 230, 233, + 225, 234, 222, 283, 224, 244, 226, 235, 227, 231, + 236, 237, 231, 236, 283, 243, 283, 228, 223, 229, + + 53, 245, 248, 230, 233, 234, 239, 222, 237, 224, + 244, 235, 220, 249, 250, 220, 237, 257, 238, 243, + 221, 220, 223, 239, 220, 251, 245, 248, 220, 221, + 239, 220, 236, 237, 252, 236, 221, 249, 250, 253, + 220, 257, 238, 220, 240, 259, 220, 239, 221, 220, + 251, 260, 241, 242, 221, 220, 262, 283, 220, 252, + 238, 283, 263, 221, 253, 263, 283, 266, 240, 259, + 221, 267, 283, 254, 269, 260, 241, 242, 264, 255, + 262, 264, 220, 283, 238, 220, 221, 283, 283, 256, + 221, 266, 261, 275, 283, 261, 267, 254, 276, 269, + + 283, 265, 270, 255, 272, 270, 274, 272, 283, 274, + 283, 283, 270, 256, 221, 270, 272, 283, 275, 272, + 237, 281, 237, 276, 277, 279, 265, 277, 279, 283, + 271, 280, 273, 279, 280, 239, 279, 239, 277, 283, + 271, 277, 237, 283, 273, 237, 281, 237, 280, 283, + 282, 280, 278, 282, 271, 282, 273, 239, 282, 239, + 283, 239, 283, 283, 271, 283, 278, 237, 273, 283, + 283, 283, 283, 283, 283, 283, 278, 283, 283, 283, + 283, 239, 283, 283, 283, 283, 283, 283, 283, 283, + 278, 43, 43, 283, 43, 43, 43, 45, 45, 53, + + 53, 53, 97, 97, 97, 98, 98, 283, 98, 98, + 98, 148, 283, 148, 148, 148, 182, 283, 283, 182, + 182, 183, 183, 183, 199, 283, 283, 199, 208, 208, + 208, 232, 283, 232, 232, 232, 246, 283, 283, 246, + 246, 247, 247, 247, 258, 258, 258, 268, 283, 283, + 268, 3, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283 } ; -static yyconst flex_int16_t yy_chk[802] = +static yyconst flex_int16_t yy_chk[818] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -655,7 +661,7 @@ static yyconst flex_int16_t yy_chk[802] = 0, 133, 113, 95, 116, 118, 115, 119, 134, 120, 122, 130, 135, 123, 125, 135, 136, 126, 127, 137, 96, 128, 138, 139, 132, 133, 113, 140, 141, 143, - 0, 150, 134, 151, 152, 248, 153, 154, 248, 135, + 0, 150, 134, 151, 152, 231, 153, 154, 231, 135, 136, 155, 160, 137, 161, 162, 165, 138, 139, 166, 167, 140, 141, 168, 143, 150, 169, 170, 151, 152, @@ -663,47 +669,48 @@ static yyconst flex_int16_t yy_chk[802] = 162, 165, 179, 180, 166, 167, 181, 184, 168, 181, 169, 170, 186, 188, 189, 194, 172, 191, 193, 0, 195, 196, 175, 172, 176, 198, 172, 179, 180, 181, - 197, 184, 256, 0, 0, 256, 186, 188, 189, 194, + 197, 184, 252, 0, 0, 252, 186, 188, 189, 194, 172, 0, 191, 193, 195, 196, 204, 172, 199, 198, 172, 199, 206, 207, 181, 197, 199, 200, 201, 202, 200, 201, 202, 209, 211, 200, 201, 202, 212, 214, - 204, 215, 200, 0, 202, 221, 206, 216, 207, 229, - 220, 263, 230, 220, 263, 226, 0, 209, 201, 211, - - 221, 232, 231, 212, 214, 215, 233, 200, 220, 202, - 221, 216, 222, 224, 229, 222, 224, 230, 220, 226, - 222, 224, 201, 220, 221, 232, 223, 231, 234, 223, - 233, 234, 0, 220, 223, 235, 236, 238, 224, 237, - 238, 243, 220, 239, 222, 238, 239, 220, 244, 247, - 240, 239, 0, 240, 249, 253, 234, 223, 240, 0, - 235, 236, 224, 250, 237, 243, 250, 255, 222, 0, - 238, 250, 244, 247, 251, 0, 239, 251, 249, 253, - 234, 223, 251, 252, 240, 257, 252, 258, 266, 268, - 258, 252, 255, 259, 238, 260, 259, 0, 260, 273, - - 239, 265, 252, 260, 265, 258, 267, 0, 240, 267, - 257, 259, 0, 266, 268, 258, 0, 0, 0, 269, - 258, 259, 269, 0, 273, 270, 259, 252, 270, 265, - 258, 0, 271, 0, 267, 271, 259, 269, 272, 258, - 274, 272, 0, 274, 258, 259, 275, 269, 276, 275, - 259, 276, 269, 265, 277, 0, 0, 277, 267, 0, - 0, 0, 269, 0, 0, 0, 272, 0, 0, 0, - 0, 269, 0, 0, 0, 0, 269, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 272, 279, 279, 0, 279, 279, 279, 280, 280, 281, - - 281, 281, 282, 282, 282, 283, 283, 0, 283, 283, - 283, 284, 0, 284, 284, 284, 285, 0, 0, 285, - 285, 286, 286, 286, 287, 0, 0, 287, 288, 288, - 288, 289, 0, 0, 289, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - - 278 + 204, 215, 200, 0, 202, 229, 206, 216, 207, 213, + 220, 221, 213, 220, 0, 226, 0, 209, 201, 211, + + 213, 230, 233, 212, 214, 215, 221, 200, 220, 202, + 229, 216, 222, 234, 235, 222, 221, 245, 220, 226, + 222, 223, 201, 220, 223, 237, 230, 233, 224, 223, + 221, 224, 236, 220, 238, 236, 224, 234, 235, 239, + 240, 245, 220, 240, 222, 248, 241, 220, 240, 241, + 237, 251, 223, 224, 241, 242, 253, 0, 242, 238, + 236, 0, 254, 242, 239, 254, 0, 257, 222, 248, + 254, 260, 0, 240, 262, 251, 223, 224, 255, 241, + 253, 255, 256, 0, 236, 256, 255, 0, 0, 242, + 256, 257, 261, 271, 0, 261, 260, 240, 273, 262, + + 0, 256, 263, 241, 264, 263, 265, 264, 268, 265, + 0, 268, 270, 242, 265, 270, 272, 0, 271, 272, + 263, 278, 264, 273, 274, 275, 256, 274, 275, 0, + 263, 276, 264, 279, 276, 263, 279, 264, 277, 0, + 270, 277, 274, 0, 272, 263, 278, 264, 280, 0, + 281, 280, 274, 281, 263, 282, 264, 274, 282, 263, + 0, 264, 0, 0, 270, 0, 277, 274, 272, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, + 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, + 277, 284, 284, 0, 284, 284, 284, 285, 285, 286, + + 286, 286, 287, 287, 287, 288, 288, 0, 288, 288, + 288, 289, 0, 289, 289, 289, 290, 0, 0, 290, + 290, 291, 291, 291, 292, 0, 0, 292, 293, 293, + 293, 294, 0, 294, 294, 294, 295, 0, 0, 295, + 295, 296, 296, 296, 297, 297, 297, 298, 0, 0, + 298, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283 } ; static yy_state_type yy_last_accepting_state; @@ -790,7 +797,7 @@ static int checkImmediate(int token) { return token; } -#line 794 "engines/director/lingo/lingo-lex.cpp" +#line 801 "engines/director/lingo/lingo-lex.cpp" #define INITIAL 0 @@ -976,7 +983,7 @@ YY_DECL #line 85 "engines/director/lingo/lingo-lex.l" -#line 980 "engines/director/lingo/lingo-lex.cpp" +#line 987 "engines/director/lingo/lingo-lex.cpp" if ( !(yy_init) ) { @@ -1030,13 +1037,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 279 ) + if ( yy_current_state >= 284 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 278 ); + while ( yy_current_state != 283 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1222,96 +1229,106 @@ YY_RULE_SETUP case 30: YY_RULE_SETUP #line 135 "engines/director/lingo/lingo-lex.l" -{ count(); return tMETHOD; } +{ + count(); + + const char *ptr = &yytext[6]; // Skip 'method ' + while (*ptr == ' ' || *ptr == '\t') + ptr++; + + yylval.s = new Common::String(ptr); + + return tMETHOD; + } YY_BREAK case 31: YY_RULE_SETUP -#line 136 "engines/director/lingo/lingo-lex.l" +#line 146 "engines/director/lingo/lingo-lex.l" { count(); return tMOD; } YY_BREAK case 32: YY_RULE_SETUP -#line 137 "engines/director/lingo/lingo-lex.l" +#line 147 "engines/director/lingo/lingo-lex.l" { count(); return tMOVIE; } YY_BREAK case 33: YY_RULE_SETUP -#line 138 "engines/director/lingo/lingo-lex.l" +#line 148 "engines/director/lingo/lingo-lex.l" { count(); return tNEXT; } YY_BREAK case 34: YY_RULE_SETUP -#line 139 "engines/director/lingo/lingo-lex.l" +#line 149 "engines/director/lingo/lingo-lex.l" { count(); return tNOT; } YY_BREAK case 35: YY_RULE_SETUP -#line 140 "engines/director/lingo/lingo-lex.l" +#line 150 "engines/director/lingo/lingo-lex.l" { count(); return tOF; } YY_BREAK case 36: YY_RULE_SETUP -#line 141 "engines/director/lingo/lingo-lex.l" +#line 151 "engines/director/lingo/lingo-lex.l" { count(); return tON; } // D3 YY_BREAK case 37: YY_RULE_SETUP -#line 142 "engines/director/lingo/lingo-lex.l" +#line 152 "engines/director/lingo/lingo-lex.l" { count(); return tOPEN; } YY_BREAK case 38: YY_RULE_SETUP -#line 143 "engines/director/lingo/lingo-lex.l" +#line 153 "engines/director/lingo/lingo-lex.l" { count(); return tOR; } YY_BREAK case 39: YY_RULE_SETUP -#line 144 "engines/director/lingo/lingo-lex.l" +#line 154 "engines/director/lingo/lingo-lex.l" { count(); return tPLAY; } YY_BREAK case 40: YY_RULE_SETUP -#line 145 "engines/director/lingo/lingo-lex.l" +#line 155 "engines/director/lingo/lingo-lex.l" { count(); yylval.s = new Common::String(yytext); return tPLAYACCEL; } YY_BREAK case 41: YY_RULE_SETUP -#line 146 "engines/director/lingo/lingo-lex.l" +#line 156 "engines/director/lingo/lingo-lex.l" { count(); return tPREVIOUS; } YY_BREAK case 42: YY_RULE_SETUP -#line 147 "engines/director/lingo/lingo-lex.l" +#line 157 "engines/director/lingo/lingo-lex.l" { count(); return tPROPERTY; } // D4 YY_BREAK case 43: YY_RULE_SETUP -#line 148 "engines/director/lingo/lingo-lex.l" +#line 158 "engines/director/lingo/lingo-lex.l" { count(); return tPUT; } YY_BREAK case 44: YY_RULE_SETUP -#line 149 "engines/director/lingo/lingo-lex.l" +#line 159 "engines/director/lingo/lingo-lex.l" { count(); return checkImmediate(tREPEAT); } YY_BREAK case 45: YY_RULE_SETUP -#line 150 "engines/director/lingo/lingo-lex.l" +#line 160 "engines/director/lingo/lingo-lex.l" { count(); return tSET; } YY_BREAK case 46: YY_RULE_SETUP -#line 151 "engines/director/lingo/lingo-lex.l" +#line 161 "engines/director/lingo/lingo-lex.l" { count(); return tSTARTS; } YY_BREAK case 47: YY_RULE_SETUP -#line 152 "engines/director/lingo/lingo-lex.l" +#line 162 "engines/director/lingo/lingo-lex.l" { count(); return tTELL; } YY_BREAK case 48: YY_RULE_SETUP -#line 153 "engines/director/lingo/lingo-lex.l" +#line 163 "engines/director/lingo/lingo-lex.l" { count(); @@ -1323,7 +1340,7 @@ YY_RULE_SETUP YY_BREAK case 49: YY_RULE_SETUP -#line 161 "engines/director/lingo/lingo-lex.l" +#line 171 "engines/director/lingo/lingo-lex.l" { count(); @@ -1335,7 +1352,7 @@ YY_RULE_SETUP YY_BREAK case 50: YY_RULE_SETUP -#line 169 "engines/director/lingo/lingo-lex.l" +#line 179 "engines/director/lingo/lingo-lex.l" { count(); @@ -1346,7 +1363,7 @@ YY_RULE_SETUP YY_BREAK case 51: YY_RULE_SETUP -#line 176 "engines/director/lingo/lingo-lex.l" +#line 186 "engines/director/lingo/lingo-lex.l" { count(); @@ -1390,7 +1407,7 @@ YY_RULE_SETUP YY_BREAK case 52: YY_RULE_SETUP -#line 216 "engines/director/lingo/lingo-lex.l" +#line 226 "engines/director/lingo/lingo-lex.l" { count(); @@ -1425,7 +1442,7 @@ YY_RULE_SETUP YY_BREAK case 53: YY_RULE_SETUP -#line 247 "engines/director/lingo/lingo-lex.l" +#line 257 "engines/director/lingo/lingo-lex.l" { count(); @@ -1448,72 +1465,72 @@ YY_RULE_SETUP YY_BREAK case 54: YY_RULE_SETUP -#line 266 "engines/director/lingo/lingo-lex.l" +#line 276 "engines/director/lingo/lingo-lex.l" { count(); return tTHEN; } YY_BREAK case 55: YY_RULE_SETUP -#line 267 "engines/director/lingo/lingo-lex.l" +#line 277 "engines/director/lingo/lingo-lex.l" { count(); return tTO; } YY_BREAK case 56: YY_RULE_SETUP -#line 268 "engines/director/lingo/lingo-lex.l" +#line 278 "engines/director/lingo/lingo-lex.l" { count(); return tSPRITE; } YY_BREAK case 57: YY_RULE_SETUP -#line 269 "engines/director/lingo/lingo-lex.l" +#line 279 "engines/director/lingo/lingo-lex.l" { count(); return tWITH; } YY_BREAK case 58: YY_RULE_SETUP -#line 270 "engines/director/lingo/lingo-lex.l" +#line 280 "engines/director/lingo/lingo-lex.l" { count(); return tWITHIN; } YY_BREAK case 59: YY_RULE_SETUP -#line 271 "engines/director/lingo/lingo-lex.l" +#line 281 "engines/director/lingo/lingo-lex.l" { count(); return tWHEN; } YY_BREAK case 60: YY_RULE_SETUP -#line 272 "engines/director/lingo/lingo-lex.l" +#line 282 "engines/director/lingo/lingo-lex.l" { count(); return tWHILE; } YY_BREAK case 61: YY_RULE_SETUP -#line 273 "engines/director/lingo/lingo-lex.l" +#line 283 "engines/director/lingo/lingo-lex.l" { count(); return tWORD; } YY_BREAK case 62: YY_RULE_SETUP -#line 275 "engines/director/lingo/lingo-lex.l" +#line 285 "engines/director/lingo/lingo-lex.l" { count(); return tNEQ; } YY_BREAK case 63: YY_RULE_SETUP -#line 276 "engines/director/lingo/lingo-lex.l" +#line 286 "engines/director/lingo/lingo-lex.l" { count(); return tGE; } YY_BREAK case 64: YY_RULE_SETUP -#line 277 "engines/director/lingo/lingo-lex.l" +#line 287 "engines/director/lingo/lingo-lex.l" { count(); return tLE; } YY_BREAK case 65: YY_RULE_SETUP -#line 278 "engines/director/lingo/lingo-lex.l" +#line 288 "engines/director/lingo/lingo-lex.l" { count(); return tCONCAT; } YY_BREAK case 66: YY_RULE_SETUP -#line 279 "engines/director/lingo/lingo-lex.l" +#line 289 "engines/director/lingo/lingo-lex.l" { count(); return tEQ; } YY_BREAK case 67: YY_RULE_SETUP -#line 281 "engines/director/lingo/lingo-lex.l" +#line 291 "engines/director/lingo/lingo-lex.l" { count(); yylval.s = new Common::String(yytext); @@ -1562,41 +1579,41 @@ YY_RULE_SETUP YY_BREAK case 68: YY_RULE_SETUP -#line 326 "engines/director/lingo/lingo-lex.l" +#line 336 "engines/director/lingo/lingo-lex.l" { count(); yylval.f = atof(yytext); return FLOAT; } YY_BREAK case 69: YY_RULE_SETUP -#line 327 "engines/director/lingo/lingo-lex.l" +#line 337 "engines/director/lingo/lingo-lex.l" { count(); yylval.i = strtol(yytext, NULL, 10); return INT; } YY_BREAK case 70: YY_RULE_SETUP -#line 328 "engines/director/lingo/lingo-lex.l" +#line 338 "engines/director/lingo/lingo-lex.l" { count(); return *yytext; } YY_BREAK case 71: /* rule 71 can match eol */ YY_RULE_SETUP -#line 329 "engines/director/lingo/lingo-lex.l" +#line 339 "engines/director/lingo/lingo-lex.l" { count(); return '\n'; } YY_BREAK case 72: YY_RULE_SETUP -#line 330 "engines/director/lingo/lingo-lex.l" +#line 340 "engines/director/lingo/lingo-lex.l" { count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; } YY_BREAK case 73: YY_RULE_SETUP -#line 331 "engines/director/lingo/lingo-lex.l" +#line 341 "engines/director/lingo/lingo-lex.l" { count(); } YY_BREAK case 74: YY_RULE_SETUP -#line 333 "engines/director/lingo/lingo-lex.l" +#line 343 "engines/director/lingo/lingo-lex.l" ECHO; YY_BREAK -#line 1600 "engines/director/lingo/lingo-lex.cpp" +#line 1617 "engines/director/lingo/lingo-lex.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1719,9 +1736,6 @@ case YY_STATE_EOF(INITIAL): yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; - - default: - break; } break; } @@ -1893,7 +1907,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 279 ) + if ( yy_current_state >= 284 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1921,11 +1935,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 279 ) + if ( yy_current_state >= 284 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 278); + yy_is_jam = (yy_current_state == 283); return yy_is_jam ? 0 : yy_current_state; } @@ -2559,7 +2573,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 333 "engines/director/lingo/lingo-lex.l" +#line 343 "engines/director/lingo/lingo-lex.l" diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l index b1801bda78..33829b699b 100644 --- a/engines/director/lingo/lingo-lex.l +++ b/engines/director/lingo/lingo-lex.l @@ -132,7 +132,17 @@ whitespace [\t ] (?i:line) { count(); return tLINE; } (?i:loop) { count(); return checkImmediate(tLOOP); } (?i:macro) { count(); return tMACRO; } -(?i:method) { count(); return tMETHOD; } +(?i:method)([\t ]*{identifier}) { + count(); + + const char *ptr = &yytext[6]; // Skip 'method ' + while (*ptr == ' ' || *ptr == '\t') + ptr++; + + yylval.s = new Common::String(ptr); + + return tMETHOD; + } (?i:mod) { count(); return tMOD; } (?i:movie) { count(); return tMOVIE; } (?i:next) { count(); return tNEXT; } -- cgit v1.2.3