aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo
diff options
context:
space:
mode:
authorEugene Sandulenko2016-08-12 17:31:58 +0200
committerEugene Sandulenko2016-08-12 17:45:21 +0200
commit1507cdca2d7a7ef8504bdff0c0eb9ec2dd15a054 (patch)
treee25d9a5cfc3a8edc5ff2d7afbf007be50a05842d /engines/director/lingo
parent0dd5aac5e10c4477635c091a054d9a6a0ef04c30 (diff)
downloadscummvm-rg350-1507cdca2d7a7ef8504bdff0c0eb9ec2dd15a054.tar.gz
scummvm-rg350-1507cdca2d7a7ef8504bdff0c0eb9ec2dd15a054.tar.bz2
scummvm-rg350-1507cdca2d7a7ef8504bdff0c0eb9ec2dd15a054.zip
DIRECTOR: Lingo: Implemented factory(mNew) method handling
Diffstat (limited to 'engines/director/lingo')
-rw-r--r--engines/director/lingo/lingo-builtins.cpp10
-rw-r--r--engines/director/lingo/lingo-code.cpp8
-rw-r--r--engines/director/lingo/lingo-gr.cpp682
-rw-r--r--engines/director/lingo/lingo-gr.h236
-rw-r--r--engines/director/lingo/lingo-gr.y2
5 files changed, 480 insertions, 458 deletions
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index f8125dba8a..de829560f1 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -702,6 +702,16 @@ void Lingo::factoryCall(Common::String &name, int nargs) {
s = name + "-" + *method.u.s;
call(s, nargs);
+
+ if (method.u.s->compareToIgnoreCase("mNew")) {
+ warning("Got mNew method");
+ Datum d;
+
+ d.type = OBJECT;
+ d.u.s = new Common::String(name);
+
+ g_lingo->push(d);
+ }
}
} // End of namespace Director
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 0d4afca908..646a9316c3 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -728,6 +728,14 @@ void Lingo::call(Common::String &name, int nargs) {
Symbol *sym;
if (!g_lingo->_handlers.contains(name)) {
+ Symbol *s = g_lingo->lookupVar(name.c_str(), false);
+ if (s && s->type == OBJECT) {
+ debug(3, "Dereferencing object reference: %s to %s", name.c_str(), s->u.s->c_str());
+ name = *s->u.s;
+ }
+ }
+
+ if (!g_lingo->_handlers.contains(name)) {
warning("Call to undefined handler '%s'. Dropping %d stack items", name.c_str(), nargs);
drop = true;
} else {
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 1758d5c5d6..09b6dc938d 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -74,64 +74,65 @@
RECT = 263,
ARRAY = 264,
SYMBOL = 265,
- INT = 266,
- THEENTITY = 267,
- THEENTITYWITHID = 268,
- FLOAT = 269,
- BLTIN = 270,
- BLTINNOARGS = 271,
- BLTINNOARGSORONE = 272,
- BLTINONEARG = 273,
- BLTINARGLIST = 274,
- ID = 275,
- STRING = 276,
- HANDLER = 277,
- tDOWN = 278,
- tELSE = 279,
- tNLELSIF = 280,
- tEND = 281,
- tEXIT = 282,
- tFRAME = 283,
- tGLOBAL = 284,
- tGO = 285,
- tIF = 286,
- tINTO = 287,
- tLOOP = 288,
- tMACRO = 289,
- tMOVIE = 290,
- tNEXT = 291,
- tOF = 292,
- tPREVIOUS = 293,
- tPUT = 294,
- tREPEAT = 295,
- tSET = 296,
- tTHEN = 297,
- tTO = 298,
- tWHEN = 299,
- tWITH = 300,
- tWHILE = 301,
- tNLELSE = 302,
- tFACTORY = 303,
- tMETHOD = 304,
- tOPEN = 305,
- tPLAY = 306,
- tDONE = 307,
- tPLAYACCEL = 308,
- tGE = 309,
- tLE = 310,
- tGT = 311,
- tLT = 312,
- tEQ = 313,
- tNEQ = 314,
- tAND = 315,
- tOR = 316,
- tNOT = 317,
- tCONCAT = 318,
- tCONTAINS = 319,
- tSTARTS = 320,
- tSPRITE = 321,
- tINTERSECTS = 322,
- tWITHIN = 323
+ OBJECT = 266,
+ INT = 267,
+ THEENTITY = 268,
+ THEENTITYWITHID = 269,
+ FLOAT = 270,
+ BLTIN = 271,
+ BLTINNOARGS = 272,
+ BLTINNOARGSORONE = 273,
+ BLTINONEARG = 274,
+ BLTINARGLIST = 275,
+ ID = 276,
+ STRING = 277,
+ HANDLER = 278,
+ tDOWN = 279,
+ tELSE = 280,
+ tNLELSIF = 281,
+ tEND = 282,
+ tEXIT = 283,
+ tFRAME = 284,
+ tGLOBAL = 285,
+ tGO = 286,
+ tIF = 287,
+ tINTO = 288,
+ tLOOP = 289,
+ tMACRO = 290,
+ tMOVIE = 291,
+ tNEXT = 292,
+ tOF = 293,
+ tPREVIOUS = 294,
+ tPUT = 295,
+ tREPEAT = 296,
+ tSET = 297,
+ tTHEN = 298,
+ tTO = 299,
+ tWHEN = 300,
+ tWITH = 301,
+ tWHILE = 302,
+ tNLELSE = 303,
+ tFACTORY = 304,
+ tMETHOD = 305,
+ tOPEN = 306,
+ tPLAY = 307,
+ tDONE = 308,
+ tPLAYACCEL = 309,
+ tGE = 310,
+ tLE = 311,
+ tGT = 312,
+ tLT = 313,
+ tEQ = 314,
+ tNEQ = 315,
+ tAND = 316,
+ tOR = 317,
+ tNOT = 318,
+ tCONCAT = 319,
+ tCONTAINS = 320,
+ tSTARTS = 321,
+ tSPRITE = 322,
+ tINTERSECTS = 323,
+ tWITHIN = 324
};
#endif
/* Tokens. */
@@ -143,64 +144,65 @@
#define RECT 263
#define ARRAY 264
#define SYMBOL 265
-#define INT 266
-#define THEENTITY 267
-#define THEENTITYWITHID 268
-#define FLOAT 269
-#define BLTIN 270
-#define BLTINNOARGS 271
-#define BLTINNOARGSORONE 272
-#define BLTINONEARG 273
-#define BLTINARGLIST 274
-#define ID 275
-#define STRING 276
-#define HANDLER 277
-#define tDOWN 278
-#define tELSE 279
-#define tNLELSIF 280
-#define tEND 281
-#define tEXIT 282
-#define tFRAME 283
-#define tGLOBAL 284
-#define tGO 285
-#define tIF 286
-#define tINTO 287
-#define tLOOP 288
-#define tMACRO 289
-#define tMOVIE 290
-#define tNEXT 291
-#define tOF 292
-#define tPREVIOUS 293
-#define tPUT 294
-#define tREPEAT 295
-#define tSET 296
-#define tTHEN 297
-#define tTO 298
-#define tWHEN 299
-#define tWITH 300
-#define tWHILE 301
-#define tNLELSE 302
-#define tFACTORY 303
-#define tMETHOD 304
-#define tOPEN 305
-#define tPLAY 306
-#define tDONE 307
-#define tPLAYACCEL 308
-#define tGE 309
-#define tLE 310
-#define tGT 311
-#define tLT 312
-#define tEQ 313
-#define tNEQ 314
-#define tAND 315
-#define tOR 316
-#define tNOT 317
-#define tCONCAT 318
-#define tCONTAINS 319
-#define tSTARTS 320
-#define tSPRITE 321
-#define tINTERSECTS 322
-#define tWITHIN 323
+#define OBJECT 266
+#define INT 267
+#define THEENTITY 268
+#define THEENTITYWITHID 269
+#define FLOAT 270
+#define BLTIN 271
+#define BLTINNOARGS 272
+#define BLTINNOARGSORONE 273
+#define BLTINONEARG 274
+#define BLTINARGLIST 275
+#define ID 276
+#define STRING 277
+#define HANDLER 278
+#define tDOWN 279
+#define tELSE 280
+#define tNLELSIF 281
+#define tEND 282
+#define tEXIT 283
+#define tFRAME 284
+#define tGLOBAL 285
+#define tGO 286
+#define tIF 287
+#define tINTO 288
+#define tLOOP 289
+#define tMACRO 290
+#define tMOVIE 291
+#define tNEXT 292
+#define tOF 293
+#define tPREVIOUS 294
+#define tPUT 295
+#define tREPEAT 296
+#define tSET 297
+#define tTHEN 298
+#define tTO 299
+#define tWHEN 300
+#define tWITH 301
+#define tWHILE 302
+#define tNLELSE 303
+#define tFACTORY 304
+#define tMETHOD 305
+#define tOPEN 306
+#define tPLAY 307
+#define tDONE 308
+#define tPLAYACCEL 309
+#define tGE 310
+#define tLE 311
+#define tGT 312
+#define tLT 313
+#define tEQ 314
+#define tNEQ 315
+#define tAND 316
+#define tOR 317
+#define tNOT 318
+#define tCONCAT 319
+#define tCONTAINS 320
+#define tSTARTS 321
+#define tSPRITE 322
+#define tINTERSECTS 323
+#define tWITHIN 324
@@ -258,7 +260,7 @@ typedef union YYSTYPE
Common::Array<double> *arr;
}
/* Line 193 of yacc.c. */
-#line 262 "engines/director/lingo/lingo-gr.cpp"
+#line 264 "engines/director/lingo/lingo-gr.cpp"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -271,7 +273,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 275 "engines/director/lingo/lingo-gr.cpp"
+#line 277 "engines/director/lingo/lingo-gr.cpp"
#ifdef short
# undef short
@@ -489,7 +491,7 @@ union yyalloc
#define YYLAST 921
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 82
+#define YYNTOKENS 83
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 35
/* YYNRULES -- Number of rules. */
@@ -499,7 +501,7 @@ union yyalloc
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 323
+#define YYMAXUTOK 324
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -508,12 +510,12 @@ union yyalloc
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 75, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 76, 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, 74, 80, 2,
- 76, 77, 72, 70, 81, 71, 2, 73, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 75, 81, 2,
+ 77, 78, 73, 71, 82, 72, 2, 74, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 79, 69, 78, 2, 2, 2, 2, 2, 2, 2,
+ 80, 70, 79, 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, 2,
@@ -539,7 +541,7 @@ static const yytype_uint8 yytranslate[] =
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68
+ 65, 66, 67, 68, 69
};
#if YYDEBUG
@@ -565,53 +567,53 @@ static const yytype_uint16 yyprhs[] =
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 83, 0, -1, 83, 84, 85, -1, 85, -1, 1,
- 84, -1, 75, -1, -1, 110, -1, 104, -1, 115,
- -1, 86, -1, 88, -1, 39, 103, 32, 20, -1,
- 41, 20, 69, 103, -1, 41, 12, 69, 103, -1,
- 41, 13, 103, 69, 103, -1, 41, 20, 43, 103,
- -1, 41, 12, 43, 103, -1, 41, 13, 103, 43,
- 103, -1, 103, -1, 104, -1, 87, -1, 89, -1,
- 96, 76, 95, 77, 102, 101, 26, 40, -1, 97,
- 69, 103, 101, 43, 103, 101, 102, 101, 26, 40,
- -1, 97, 69, 103, 101, 23, 43, 103, 101, 102,
- 101, 26, 40, -1, 44, 20, 42, 103, -1, 98,
- 95, 42, 84, 102, 101, 26, 31, -1, 98, 95,
- 42, 84, 102, 101, 47, 102, 101, 26, 31, -1,
- 98, 95, 42, 84, 102, 101, 100, 91, 101, 26,
- 31, -1, 98, 95, 42, 100, 87, 101, -1, 98,
- 95, 42, 100, 87, 101, 47, 100, 87, 101, -1,
- 98, 95, 42, 100, 87, 101, 92, 101, 90, 101,
- -1, -1, 47, 100, 87, -1, 91, 94, -1, 94,
- -1, 92, 93, -1, 93, -1, 99, 95, 42, 100,
- 88, 101, -1, 92, -1, 99, 95, 42, 102, 101,
- -1, 103, -1, 103, 69, 103, -1, 76, 95, 77,
- -1, 40, 46, -1, 40, 45, 20, -1, 31, -1,
- 25, -1, -1, -1, -1, 102, 84, -1, 102, 88,
- -1, 11, -1, 14, -1, 21, -1, 16, -1, 20,
- 76, 116, 77, -1, 20, -1, 12, -1, 13, 103,
- -1, 86, -1, 103, 70, 103, -1, 103, 71, 103,
- -1, 103, 72, 103, -1, 103, 73, 103, -1, 103,
- 78, 103, -1, 103, 79, 103, -1, 103, 59, 103,
- -1, 103, 54, 103, -1, 103, 55, 103, -1, 103,
- 60, 103, -1, 103, 61, 103, -1, 62, 103, -1,
- 103, 80, 103, -1, 103, 63, 103, -1, 103, 64,
- 103, -1, 103, 65, 103, -1, 70, 103, -1, 71,
- 103, -1, 76, 103, 77, -1, 66, 103, 67, 103,
- -1, 66, 103, 68, 103, -1, 39, 103, -1, 106,
- -1, 109, -1, 27, -1, 29, 105, -1, 18, 103,
- -1, 17, 103, -1, 17, -1, 19, 116, -1, 50,
- 103, 45, 103, -1, 50, 103, -1, 20, -1, 105,
- 81, 20, -1, 30, 33, -1, 30, 36, -1, 30,
- 38, -1, 30, 107, -1, 30, 107, 108, -1, 30,
- 108, -1, 28, 103, -1, 103, -1, 37, 35, 103,
- -1, 35, 103, -1, 51, 52, -1, 51, 107, -1,
- 51, 107, 108, -1, 51, 108, -1, -1, 34, 20,
- 111, 100, 113, 84, 114, 102, -1, 48, 20, -1,
- -1, 49, 20, 112, 100, 113, 84, 114, 102, -1,
- -1, 20, -1, 113, 81, 20, -1, 113, 84, 81,
- 20, -1, -1, 20, 100, 116, -1, -1, 103, -1,
- 116, 81, 103, -1
+ 84, 0, -1, 84, 85, 86, -1, 86, -1, 1,
+ 85, -1, 76, -1, -1, 111, -1, 105, -1, 116,
+ -1, 87, -1, 89, -1, 40, 104, 33, 21, -1,
+ 42, 21, 70, 104, -1, 42, 13, 70, 104, -1,
+ 42, 14, 104, 70, 104, -1, 42, 21, 44, 104,
+ -1, 42, 13, 44, 104, -1, 42, 14, 104, 44,
+ 104, -1, 104, -1, 105, -1, 88, -1, 90, -1,
+ 97, 77, 96, 78, 103, 102, 27, 41, -1, 98,
+ 70, 104, 102, 44, 104, 102, 103, 102, 27, 41,
+ -1, 98, 70, 104, 102, 24, 44, 104, 102, 103,
+ 102, 27, 41, -1, 45, 21, 43, 104, -1, 99,
+ 96, 43, 85, 103, 102, 27, 32, -1, 99, 96,
+ 43, 85, 103, 102, 48, 103, 102, 27, 32, -1,
+ 99, 96, 43, 85, 103, 102, 101, 92, 102, 27,
+ 32, -1, 99, 96, 43, 101, 88, 102, -1, 99,
+ 96, 43, 101, 88, 102, 48, 101, 88, 102, -1,
+ 99, 96, 43, 101, 88, 102, 93, 102, 91, 102,
+ -1, -1, 48, 101, 88, -1, 92, 95, -1, 95,
+ -1, 93, 94, -1, 94, -1, 100, 96, 43, 101,
+ 89, 102, -1, 93, -1, 100, 96, 43, 103, 102,
+ -1, 104, -1, 104, 70, 104, -1, 77, 96, 78,
+ -1, 41, 47, -1, 41, 46, 21, -1, 32, -1,
+ 26, -1, -1, -1, -1, 103, 85, -1, 103, 89,
+ -1, 12, -1, 15, -1, 22, -1, 17, -1, 21,
+ 77, 117, 78, -1, 21, -1, 13, -1, 14, 104,
+ -1, 87, -1, 104, 71, 104, -1, 104, 72, 104,
+ -1, 104, 73, 104, -1, 104, 74, 104, -1, 104,
+ 79, 104, -1, 104, 80, 104, -1, 104, 60, 104,
+ -1, 104, 55, 104, -1, 104, 56, 104, -1, 104,
+ 61, 104, -1, 104, 62, 104, -1, 63, 104, -1,
+ 104, 81, 104, -1, 104, 64, 104, -1, 104, 65,
+ 104, -1, 104, 66, 104, -1, 71, 104, -1, 72,
+ 104, -1, 77, 104, 78, -1, 67, 104, 68, 104,
+ -1, 67, 104, 69, 104, -1, 40, 104, -1, 107,
+ -1, 110, -1, 28, -1, 30, 106, -1, 19, 104,
+ -1, 18, 104, -1, 18, -1, 20, 117, -1, 51,
+ 104, 46, 104, -1, 51, 104, -1, 21, -1, 106,
+ 82, 21, -1, 31, 34, -1, 31, 37, -1, 31,
+ 39, -1, 31, 108, -1, 31, 108, 109, -1, 31,
+ 109, -1, 29, 104, -1, 104, -1, 38, 36, 104,
+ -1, 36, 104, -1, 52, 53, -1, 52, 108, -1,
+ 52, 108, 109, -1, 52, 109, -1, -1, 35, 21,
+ 112, 101, 114, 85, 115, 103, -1, 49, 21, -1,
+ -1, 50, 21, 113, 101, 114, 85, 115, 103, -1,
+ -1, 21, -1, 114, 82, 21, -1, 114, 85, 82,
+ 21, -1, -1, 21, 101, 117, -1, -1, 104, -1,
+ 117, 82, 104, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -639,7 +641,7 @@ static const yytype_uint16 yyrline[] =
static const char *const yytname[] =
{
"$end", "error", "$undefined", "UNARY", "CASTREF", "VOID", "VAR",
- "POINT", "RECT", "ARRAY", "SYMBOL", "INT", "THEENTITY",
+ "POINT", "RECT", "ARRAY", "SYMBOL", "OBJECT", "INT", "THEENTITY",
"THEENTITYWITHID", "FLOAT", "BLTIN", "BLTINNOARGS", "BLTINNOARGSORONE",
"BLTINONEARG", "BLTINARGLIST", "ID", "STRING", "HANDLER", "tDOWN",
"tELSE", "tNLELSIF", "tEND", "tEXIT", "tFRAME", "tGLOBAL", "tGO", "tIF",
@@ -670,28 +672,28 @@ static const yytype_uint16 yytoknum[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 61,
- 43, 45, 42, 47, 37, 10, 40, 41, 62, 60,
- 38, 44
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 61, 43, 45, 42, 47, 37, 10, 40, 41, 62,
+ 60, 38, 44
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 82, 83, 83, 83, 84, 85, 85, 85, 85,
- 85, 85, 86, 86, 86, 86, 86, 86, 86, 87,
- 87, 88, 88, 88, 88, 88, 88, 89, 89, 89,
- 89, 89, 89, 90, 90, 91, 91, 92, 92, 93,
- 94, 94, 95, 95, 95, 96, 97, 98, 99, 100,
- 101, 102, 102, 102, 103, 103, 103, 103, 103, 103,
- 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
- 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
- 103, 103, 103, 103, 104, 104, 104, 104, 104, 104,
- 104, 104, 104, 104, 104, 105, 105, 106, 106, 106,
- 106, 106, 106, 107, 107, 108, 108, 109, 109, 109,
- 109, 111, 110, 110, 112, 110, 113, 113, 113, 113,
- 114, 115, 116, 116, 116
+ 0, 83, 84, 84, 84, 85, 86, 86, 86, 86,
+ 86, 86, 87, 87, 87, 87, 87, 87, 87, 88,
+ 88, 89, 89, 89, 89, 89, 89, 90, 90, 90,
+ 90, 90, 90, 91, 91, 92, 92, 93, 93, 94,
+ 95, 95, 96, 96, 96, 97, 98, 99, 100, 101,
+ 102, 103, 103, 103, 104, 104, 104, 104, 104, 104,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
+ 104, 104, 104, 104, 105, 105, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 106, 106, 107, 107, 107,
+ 107, 107, 107, 108, 108, 109, 109, 110, 110, 110,
+ 110, 112, 111, 111, 113, 111, 114, 114, 114, 114,
+ 115, 116, 117, 117, 117
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -759,41 +761,41 @@ static const yytype_int16 yydefgoto[] =
#define YYPACT_NINF -198
static const yytype_int16 yypact[] =
{
- 244, -52, -198, -198, 386, -198, -198, 386, 386, 386,
- 792, -198, -198, 19, 574, -198, 23, 386, 11, 7,
- 27, 42, 43, 386, 614, 386, 386, 386, 386, 386,
- 5, -198, 6, -198, -198, -198, -47, -8, 513, 770,
- -198, -198, -198, -198, -198, -198, -198, -5, 386, -198,
- 770, 770, 770, 770, -6, 386, 386, -198, 1, 386,
- -198, 386, -198, 37, -198, 770, 9, -198, -198, 152,
- 56, -198, -36, 386, -28, 36, -198, -198, 650, -198,
- 9, -198, 841, 672, 841, 841, 721, -198, 342, 513,
- 386, 513, 44, 748, 386, 386, 386, 386, 386, 386,
- 386, 386, 386, 386, 386, 386, 386, 386, 386, 152,
- 386, -56, -6, 63, 770, 770, 386, -198, -198, 64,
- -198, 386, 386, 628, 386, 386, 386, -198, 386, -198,
- 386, 386, -198, -198, 8, 770, 10, 694, -52, 386,
- 770, 770, 770, 770, 770, 770, 770, 770, 819, 819,
- 841, 841, 770, 770, 770, 770, -198, -198, 770, 72,
- -198, 770, 770, 386, 386, 770, 770, 770, 72, 770,
- 770, 770, -198, -11, -198, -198, 530, 770, -198, -57,
- 770, 770, -57, 403, 50, 386, 403, -198, -198, 74,
- 14, 14, -198, -198, 73, 386, 770, -10, -16, -198,
- 78, -198, -198, 61, 770, -198, 75, -198, 79, -198,
- -198, 79, -198, 513, -198, 403, 403, -198, -198, 403,
- -198, 403, 79, 79, -198, 513, 530, -198, 58, 65,
- 403, 77, 82, -198, 84, 69, -198, -198, -198, -198,
- 86, 76, 88, 89, -15, -198, 530, -198, 469, 81,
- -198, -198, -198, 403, -198, -198, -198, -198, -198
+ 243, -53, -198, -198, 385, -198, -198, 385, 385, 385,
+ 791, -198, -198, 18, 573, -198, 22, 385, 7, 6,
+ 26, 31, 36, 385, 613, 385, 385, 385, 385, 385,
+ 4, -198, 5, -198, -198, -198, -48, -8, 512, 769,
+ -198, -198, -198, -198, -198, -198, -198, -14, 385, -198,
+ 769, 769, 769, 769, -21, 385, 385, -198, -4, 385,
+ -198, 385, -198, 38, -198, 769, 8, -198, -198, 151,
+ 54, -198, -37, 385, -29, 39, -198, -198, 649, -198,
+ 8, -198, 840, 671, 840, 840, 720, -198, 341, 512,
+ 385, 512, 40, 747, 385, 385, 385, 385, 385, 385,
+ 385, 385, 385, 385, 385, 385, 385, 385, 385, 151,
+ 385, -57, -21, 63, 769, 769, 385, -198, -198, 64,
+ -198, 385, 385, 627, 385, 385, 385, -198, 385, -198,
+ 385, 385, -198, -198, 9, 769, 14, 693, -53, 385,
+ 769, 769, 769, 769, 769, 769, 769, 769, 818, 818,
+ 840, 840, 769, 769, 769, 769, -198, -198, 769, 65,
+ -198, 769, 769, 385, 385, 769, 769, 769, 65, 769,
+ 769, 769, -198, -12, -198, -198, 529, 769, -198, -58,
+ 769, 769, -58, 402, 49, 385, 402, -198, -198, 73,
+ 13, 13, -198, -198, 71, 385, 769, -11, -17, -198,
+ 78, -198, -198, 60, 769, -198, 72, -198, 77, -198,
+ -198, 77, -198, 512, -198, 402, 402, -198, -198, 402,
+ -198, 402, 77, 77, -198, 512, 529, -198, 57, 67,
+ 402, 79, 80, -198, 81, 68, -198, -198, -198, -198,
+ 85, 74, 84, 87, -16, -198, 529, -198, 468, 76,
+ -198, -198, -198, 402, -198, -198, -198, -198, -198
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -198, -198, 12, 25, 2, -172, 0, -198, -198, -198,
- -83, -197, -105, -61, -198, -198, -198, -186, -9, 113,
+ -198, -198, 12, 25, 2, -170, 0, -198, -198, -198,
+ -78, -197, -101, -61, -198, -198, -198, -186, -9, 113,
-167, 41, 3, -198, -198, 98, -7, -198, -198, -198,
- -198, -45, -67, -198, -3
+ -198, -45, -67, -198, 16
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -803,19 +805,19 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -60
static const yytype_int16 yytable[] =
{
- 34, 56, 32, 40, 187, 87, -10, 121, 186, 209,
+ 34, 56, 32, 40, 87, -10, 187, 121, 186, 209,
-51, -51, 184, 46, 227, 124, 206, 81, 45, 72,
73, 156, 225, 45, 189, 110, 227, 74, 134, 89,
136, 210, 185, 122, 215, 216, 225, 207, 219, 57,
221, 125, 88, 68, 61, 50, 63, 75, 51, 52,
- 53, 230, 111, 112, 236, 65, 70, 71, 69, 117,
- -51, 90, 76, 77, 78, 65, 82, 83, 84, 85,
- 86, 55, 116, 129, 254, 110, 120, 253, 126, 93,
- 45, -10, 113, 157, 160, 172, 138, 174, 34, 109,
- 32, 40, 178, 195, 199, 200, 53, 53, 214, 203,
- 114, 217, 115, 241, 209, 237, 220, 239, 242, 159,
- 243, 244, 249, 133, 123, 211, 250, 233, 168, 251,
- 252, 256, 80, 182, 202, 0, 0, 0, 0, 176,
+ 53, 230, 76, 70, 71, 65, 236, 77, 69, 117,
+ -51, 110, 90, 55, 78, 65, 82, 83, 84, 85,
+ 86, 111, 112, 129, 116, 120, 254, 253, 113, 93,
+ 45, -10, 126, 138, 157, 160, 178, 172, 34, 109,
+ 32, 40, 174, 195, 199, 200, 53, 53, 203, 214,
+ 114, 217, 115, 209, 220, 237, 241, 242, 243, 159,
+ 239, 244, 249, 133, 123, 250, 251, 256, 168, 252,
+ 211, 233, 80, 182, 202, 0, 0, 0, 0, 176,
93, 135, 137, 0, 0, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
175, 155, 229, 0, 0, 0, 0, 158, 0, 0,
@@ -827,7 +829,7 @@ static const yytype_int16 yytable[] =
0, 96, 97, 98, 0, 99, 100, 101, 0, 0,
0, 0, 102, 103, 104, 105, 196, 0, 246, 0,
106, 107, 108, 0, 0, 0, 204, 0, 0, 0,
- 0, 0, 0, 0, -6, 1, 0, 0, 255, 0,
+ 0, 0, 0, -6, 1, 0, 0, 0, 255, 0,
0, 0, 0, 0, 93, 2, 3, 4, 5, 0,
6, 7, 8, 9, 10, 11, 93, 0, 0, 0,
0, 12, 0, 13, 14, 15, 0, 0, 16, 0,
@@ -900,131 +902,131 @@ static const yytype_int16 yytable[] =
static const yytype_int16 yycheck[] =
{
- 0, 10, 0, 0, 176, 0, 0, 43, 175, 25,
- 25, 26, 23, 1, 211, 43, 26, 24, 75, 12,
- 13, 77, 208, 75, 81, 81, 223, 20, 89, 76,
- 91, 47, 43, 69, 201, 202, 222, 47, 205, 20,
- 207, 69, 30, 20, 35, 4, 37, 20, 7, 8,
- 9, 218, 55, 56, 226, 14, 45, 46, 17, 66,
- 75, 69, 20, 20, 23, 24, 25, 26, 27, 28,
- 29, 76, 35, 80, 246, 81, 20, 244, 42, 38,
- 75, 75, 81, 20, 20, 77, 42, 77, 88, 48,
- 88, 88, 20, 43, 20, 81, 55, 56, 20, 26,
- 59, 40, 61, 26, 25, 47, 31, 42, 26, 118,
- 26, 42, 26, 88, 73, 198, 40, 222, 127, 31,
- 31, 40, 24, 168, 191, -1, -1, -1, -1, 138,
+ 0, 10, 0, 0, 0, 0, 176, 44, 175, 26,
+ 26, 27, 24, 1, 211, 44, 27, 24, 76, 13,
+ 14, 78, 208, 76, 82, 82, 223, 21, 89, 77,
+ 91, 48, 44, 70, 201, 202, 222, 48, 205, 21,
+ 207, 70, 30, 21, 36, 4, 38, 21, 7, 8,
+ 9, 218, 21, 46, 47, 14, 226, 21, 17, 66,
+ 76, 82, 70, 77, 23, 24, 25, 26, 27, 28,
+ 29, 55, 56, 80, 36, 21, 246, 244, 82, 38,
+ 76, 76, 43, 43, 21, 21, 21, 78, 88, 48,
+ 88, 88, 78, 44, 21, 82, 55, 56, 27, 21,
+ 59, 41, 61, 26, 32, 48, 27, 27, 27, 118,
+ 43, 43, 27, 88, 73, 41, 32, 41, 127, 32,
+ 198, 222, 24, 168, 191, -1, -1, -1, -1, 138,
89, 90, 91, -1, -1, 94, 95, 96, 97, 98,
99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
138, 110, 213, -1, -1, -1, -1, 116, -1, -1,
-1, -1, 121, 122, 225, 124, 125, 126, -1, 128,
-1, 130, 131, -1, -1, -1, -1, -1, -1, -1,
- 139, -1, -1, -1, 32, -1, -1, -1, 197, -1,
+ 139, -1, -1, -1, 33, -1, -1, -1, 197, -1,
-1, 179, -1, -1, 182, -1, -1, -1, -1, -1,
- -1, 210, -1, -1, 163, 164, 54, 55, -1, -1,
- -1, 59, 60, 61, -1, 63, 64, 65, -1, -1,
- -1, -1, 70, 71, 72, 73, 185, -1, 237, -1,
- 78, 79, 80, -1, -1, -1, 195, -1, -1, -1,
- -1, -1, -1, -1, 0, 1, -1, -1, 248, -1,
- -1, -1, -1, -1, 213, 11, 12, 13, 14, -1,
- 16, 17, 18, 19, 20, 21, 225, -1, -1, -1,
- -1, 27, -1, 29, 30, 31, -1, -1, 34, -1,
- -1, -1, -1, 39, 40, 41, -1, -1, 44, -1,
- -1, -1, 48, 49, 50, 51, 183, -1, -1, 186,
- 187, -1, -1, -1, -1, -1, 62, -1, -1, 196,
- 66, -1, -1, -1, 70, 71, -1, 204, -1, 75,
- 76, -1, -1, -1, 211, -1, -1, -1, -1, -1,
+ -1, 210, -1, -1, 163, 164, 55, 56, -1, -1,
+ -1, 60, 61, 62, -1, 64, 65, 66, -1, -1,
+ -1, -1, 71, 72, 73, 74, 185, -1, 237, -1,
+ 79, 80, 81, -1, -1, -1, 195, -1, -1, -1,
+ -1, -1, -1, 0, 1, -1, -1, -1, 248, -1,
+ -1, -1, -1, -1, 213, 12, 13, 14, 15, -1,
+ 17, 18, 19, 20, 21, 22, 225, -1, -1, -1,
+ -1, 28, -1, 30, 31, 32, -1, -1, 35, -1,
+ -1, -1, -1, 40, 41, 42, -1, -1, 45, -1,
+ -1, -1, 49, 50, 51, 52, 183, -1, -1, 186,
+ 187, -1, -1, -1, -1, -1, 63, -1, -1, 196,
+ 67, -1, -1, -1, 71, 72, -1, 204, -1, 76,
+ 77, -1, -1, -1, 211, -1, -1, -1, -1, -1,
-1, -1, 219, -1, 221, 222, -1, -1, -1, -1,
-1, -1, -1, 230, -1, -1, -1, -1, -1, 236,
- -1, 238, -1, 11, 12, 13, 14, -1, 16, 17,
- 18, 19, 20, 21, -1, -1, 253, -1, 255, 27,
- -1, 29, 30, 31, -1, -1, 34, -1, -1, -1,
- -1, 39, 40, 41, -1, -1, 44, -1, -1, -1,
- 48, 49, 50, 51, -1, -1, -1, 11, 12, 13,
- 14, -1, 16, -1, 62, -1, 20, 21, 66, -1,
- -1, -1, 70, 71, 11, 12, 13, 14, 76, 16,
- 17, 18, 19, 20, 21, 39, -1, 41, -1, -1,
- 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,
- -1, -1, 39, 40, 41, -1, -1, 44, 62, -1,
- -1, -1, 66, 50, 51, -1, 70, 71, -1, -1,
- -1, -1, 76, -1, -1, 62, -1, -1, -1, 66,
- -1, -1, -1, 70, 71, -1, -1, -1, 75, 76,
- 11, 12, 13, 14, -1, 16, 17, 18, 19, 20,
- 21, -1, -1, -1, -1, -1, 27, -1, 29, 30,
- 31, -1, -1, -1, -1, -1, -1, -1, 39, 40,
- 41, -1, -1, 44, -1, -1, -1, -1, -1, 50,
- 51, -1, -1, -1, 11, 12, 13, 14, -1, 16,
- -1, 62, -1, 20, 21, 66, -1, -1, -1, 70,
- 71, 11, 12, 13, 14, 76, 16, 17, 18, 19,
- 20, 21, 39, -1, 41, -1, -1, 27, -1, 29,
- 30, -1, -1, -1, -1, -1, -1, -1, -1, 39,
- -1, 41, -1, -1, -1, 62, -1, -1, -1, 66,
- 50, 51, -1, 70, 71, 11, 12, 13, 14, 76,
- 16, -1, 62, -1, 20, 21, 66, -1, -1, -1,
- 70, 71, 28, -1, -1, -1, 76, 33, -1, 35,
- 36, 37, 38, 39, -1, 41, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 11, 12, 13, 14, -1,
- 16, -1, -1, -1, 20, 21, 62, -1, -1, -1,
- 66, -1, 28, -1, 70, 71, -1, -1, -1, 35,
- 76, 37, -1, 39, -1, 41, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 52, -1, -1, -1,
- -1, 43, -1, -1, -1, -1, 62, -1, -1, -1,
- 66, -1, 54, 55, 70, 71, -1, 59, 60, 61,
- 76, 63, 64, 65, -1, 45, -1, 69, 70, 71,
- 72, 73, -1, -1, 54, 55, 78, 79, 80, 59,
- 60, 61, -1, 63, 64, 65, -1, -1, -1, -1,
- 70, 71, 72, 73, -1, -1, 54, 55, 78, 79,
- 80, 59, 60, 61, -1, 63, 64, 65, -1, 67,
- 68, -1, 70, 71, 72, 73, -1, -1, 54, 55,
- 78, 79, 80, 59, 60, 61, -1, 63, 64, 65,
- -1, -1, -1, 69, 70, 71, 72, 73, -1, -1,
- -1, 77, 78, 79, 80, 54, 55, -1, -1, -1,
- 59, 60, 61, -1, 63, 64, 65, -1, -1, -1,
- -1, 70, 71, 72, 73, -1, -1, -1, 77, 78,
- 79, 80, 54, 55, -1, -1, -1, 59, 60, 61,
- -1, 63, 64, 65, -1, -1, -1, 69, 70, 71,
- 72, 73, -1, -1, 54, 55, 78, 79, 80, 59,
- 60, 61, -1, 63, 64, 65, -1, -1, -1, -1,
- 70, 71, 72, 73, -1, -1, 54, 55, 78, 79,
- 80, 59, 60, 61, -1, 63, 64, 65, -1, -1,
- -1, -1, -1, -1, 72, 73, -1, -1, 76, -1,
- 78, 79, 80, 54, 55, -1, -1, -1, 59, 60,
- 61, -1, 63, 64, 65, -1, -1, -1, -1, -1,
- -1, 72, 73, -1, -1, 54, 55, 78, 79, 80,
- 59, 60, 61, -1, 63, 64, 65, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 78,
- 79, 80
+ -1, 238, -1, 12, 13, 14, 15, -1, 17, 18,
+ 19, 20, 21, 22, -1, -1, 253, -1, 255, 28,
+ -1, 30, 31, 32, -1, -1, 35, -1, -1, -1,
+ -1, 40, 41, 42, -1, -1, 45, -1, -1, -1,
+ 49, 50, 51, 52, -1, -1, -1, 12, 13, 14,
+ 15, -1, 17, -1, 63, -1, 21, 22, 67, -1,
+ -1, -1, 71, 72, 12, 13, 14, 15, 77, 17,
+ 18, 19, 20, 21, 22, 40, -1, 42, -1, -1,
+ 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
+ -1, -1, 40, 41, 42, -1, -1, 45, 63, -1,
+ -1, -1, 67, 51, 52, -1, 71, 72, -1, -1,
+ -1, -1, 77, -1, -1, 63, -1, -1, -1, 67,
+ -1, -1, -1, 71, 72, -1, -1, -1, 76, 77,
+ 12, 13, 14, 15, -1, 17, 18, 19, 20, 21,
+ 22, -1, -1, -1, -1, -1, 28, -1, 30, 31,
+ 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
+ 42, -1, -1, 45, -1, -1, -1, -1, -1, 51,
+ 52, -1, -1, -1, 12, 13, 14, 15, -1, 17,
+ -1, 63, -1, 21, 22, 67, -1, -1, -1, 71,
+ 72, 12, 13, 14, 15, 77, 17, 18, 19, 20,
+ 21, 22, 40, -1, 42, -1, -1, 28, -1, 30,
+ 31, -1, -1, -1, -1, -1, -1, -1, -1, 40,
+ -1, 42, -1, -1, -1, 63, -1, -1, -1, 67,
+ 51, 52, -1, 71, 72, 12, 13, 14, 15, 77,
+ 17, -1, 63, -1, 21, 22, 67, -1, -1, -1,
+ 71, 72, 29, -1, -1, -1, 77, 34, -1, 36,
+ 37, 38, 39, 40, -1, 42, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 12, 13, 14, 15, -1,
+ 17, -1, -1, -1, 21, 22, 63, -1, -1, -1,
+ 67, -1, 29, -1, 71, 72, -1, -1, -1, 36,
+ 77, 38, -1, 40, -1, 42, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 53, -1, -1, -1,
+ -1, 44, -1, -1, -1, -1, 63, -1, -1, -1,
+ 67, -1, 55, 56, 71, 72, -1, 60, 61, 62,
+ 77, 64, 65, 66, -1, 46, -1, 70, 71, 72,
+ 73, 74, -1, -1, 55, 56, 79, 80, 81, 60,
+ 61, 62, -1, 64, 65, 66, -1, -1, -1, -1,
+ 71, 72, 73, 74, -1, -1, 55, 56, 79, 80,
+ 81, 60, 61, 62, -1, 64, 65, 66, -1, 68,
+ 69, -1, 71, 72, 73, 74, -1, -1, 55, 56,
+ 79, 80, 81, 60, 61, 62, -1, 64, 65, 66,
+ -1, -1, -1, 70, 71, 72, 73, 74, -1, -1,
+ -1, 78, 79, 80, 81, 55, 56, -1, -1, -1,
+ 60, 61, 62, -1, 64, 65, 66, -1, -1, -1,
+ -1, 71, 72, 73, 74, -1, -1, -1, 78, 79,
+ 80, 81, 55, 56, -1, -1, -1, 60, 61, 62,
+ -1, 64, 65, 66, -1, -1, -1, 70, 71, 72,
+ 73, 74, -1, -1, 55, 56, 79, 80, 81, 60,
+ 61, 62, -1, 64, 65, 66, -1, -1, -1, -1,
+ 71, 72, 73, 74, -1, -1, 55, 56, 79, 80,
+ 81, 60, 61, 62, -1, 64, 65, 66, -1, -1,
+ -1, -1, -1, -1, 73, 74, -1, -1, 77, -1,
+ 79, 80, 81, 55, 56, -1, -1, -1, 60, 61,
+ 62, -1, 64, 65, 66, -1, -1, -1, -1, -1,
+ -1, 73, 74, -1, -1, 55, 56, 79, 80, 81,
+ 60, 61, 62, -1, 64, 65, 66, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 79,
+ 80, 81
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 1, 11, 12, 13, 14, 16, 17, 18, 19,
- 20, 21, 27, 29, 30, 31, 34, 39, 40, 41,
- 44, 48, 49, 50, 51, 62, 66, 70, 71, 76,
- 83, 85, 86, 87, 88, 89, 96, 97, 98, 103,
- 104, 106, 109, 110, 115, 75, 84, 20, 39, 86,
- 103, 103, 103, 103, 116, 76, 100, 20, 105, 28,
- 33, 35, 36, 37, 38, 103, 107, 108, 20, 103,
- 45, 46, 12, 13, 20, 20, 20, 20, 103, 52,
- 107, 108, 103, 103, 103, 103, 103, 0, 84, 76,
- 69, 76, 95, 103, 54, 55, 59, 60, 61, 63,
- 64, 65, 70, 71, 72, 73, 78, 79, 80, 103,
- 81, 116, 116, 81, 103, 103, 35, 108, 111, 32,
- 20, 43, 69, 103, 43, 69, 42, 112, 45, 108,
- 67, 68, 77, 85, 95, 103, 95, 103, 42, 69,
- 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
- 103, 103, 103, 103, 103, 103, 77, 20, 103, 100,
- 20, 103, 103, 43, 69, 103, 103, 103, 100, 103,
- 103, 103, 77, 101, 77, 84, 100, 103, 20, 113,
- 103, 103, 113, 102, 23, 43, 102, 87, 104, 81,
- 84, 84, 84, 88, 101, 43, 103, 101, 101, 20,
- 81, 114, 114, 26, 103, 101, 26, 47, 100, 25,
- 47, 92, 93, 99, 20, 102, 102, 40, 101, 102,
- 31, 102, 91, 92, 94, 99, 100, 93, 101, 95,
- 102, 101, 101, 94, 101, 95, 87, 47, 90, 42,
- 101, 26, 26, 26, 42, 101, 100, 101, 100, 26,
- 40, 31, 31, 102, 87, 88, 40, 101, 101
+ 0, 1, 12, 13, 14, 15, 17, 18, 19, 20,
+ 21, 22, 28, 30, 31, 32, 35, 40, 41, 42,
+ 45, 49, 50, 51, 52, 63, 67, 71, 72, 77,
+ 84, 86, 87, 88, 89, 90, 97, 98, 99, 104,
+ 105, 107, 110, 111, 116, 76, 85, 21, 40, 87,
+ 104, 104, 104, 104, 117, 77, 101, 21, 106, 29,
+ 34, 36, 37, 38, 39, 104, 108, 109, 21, 104,
+ 46, 47, 13, 14, 21, 21, 21, 21, 104, 53,
+ 108, 109, 104, 104, 104, 104, 104, 0, 85, 77,
+ 70, 77, 96, 104, 55, 56, 60, 61, 62, 64,
+ 65, 66, 71, 72, 73, 74, 79, 80, 81, 104,
+ 82, 117, 117, 82, 104, 104, 36, 109, 112, 33,
+ 21, 44, 70, 104, 44, 70, 43, 113, 46, 109,
+ 68, 69, 78, 86, 96, 104, 96, 104, 43, 70,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
+ 104, 104, 104, 104, 104, 104, 78, 21, 104, 101,
+ 21, 104, 104, 44, 70, 104, 104, 104, 101, 104,
+ 104, 104, 78, 102, 78, 85, 101, 104, 21, 114,
+ 104, 104, 114, 103, 24, 44, 103, 88, 105, 82,
+ 85, 85, 85, 89, 102, 44, 104, 102, 102, 21,
+ 82, 115, 115, 27, 104, 102, 27, 48, 101, 26,
+ 48, 93, 94, 100, 21, 103, 103, 41, 102, 103,
+ 32, 103, 92, 93, 95, 100, 101, 94, 102, 96,
+ 103, 102, 102, 95, 102, 96, 88, 48, 91, 43,
+ 102, 27, 27, 27, 43, 102, 101, 102, 101, 27,
+ 41, 32, 32, 103, 88, 89, 41, 102, 102
};
#define yyerrok (yyerrstatus = 0)
@@ -2529,7 +2531,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 2533 "engines/director/lingo/lingo-gr.cpp"
+#line 2535 "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 de14709531..49bd8b5c08 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -47,64 +47,65 @@
RECT = 263,
ARRAY = 264,
SYMBOL = 265,
- INT = 266,
- THEENTITY = 267,
- THEENTITYWITHID = 268,
- FLOAT = 269,
- BLTIN = 270,
- BLTINNOARGS = 271,
- BLTINNOARGSORONE = 272,
- BLTINONEARG = 273,
- BLTINARGLIST = 274,
- ID = 275,
- STRING = 276,
- HANDLER = 277,
- tDOWN = 278,
- tELSE = 279,
- tNLELSIF = 280,
- tEND = 281,
- tEXIT = 282,
- tFRAME = 283,
- tGLOBAL = 284,
- tGO = 285,
- tIF = 286,
- tINTO = 287,
- tLOOP = 288,
- tMACRO = 289,
- tMOVIE = 290,
- tNEXT = 291,
- tOF = 292,
- tPREVIOUS = 293,
- tPUT = 294,
- tREPEAT = 295,
- tSET = 296,
- tTHEN = 297,
- tTO = 298,
- tWHEN = 299,
- tWITH = 300,
- tWHILE = 301,
- tNLELSE = 302,
- tFACTORY = 303,
- tMETHOD = 304,
- tOPEN = 305,
- tPLAY = 306,
- tDONE = 307,
- tPLAYACCEL = 308,
- tGE = 309,
- tLE = 310,
- tGT = 311,
- tLT = 312,
- tEQ = 313,
- tNEQ = 314,
- tAND = 315,
- tOR = 316,
- tNOT = 317,
- tCONCAT = 318,
- tCONTAINS = 319,
- tSTARTS = 320,
- tSPRITE = 321,
- tINTERSECTS = 322,
- tWITHIN = 323
+ OBJECT = 266,
+ INT = 267,
+ THEENTITY = 268,
+ THEENTITYWITHID = 269,
+ FLOAT = 270,
+ BLTIN = 271,
+ BLTINNOARGS = 272,
+ BLTINNOARGSORONE = 273,
+ BLTINONEARG = 274,
+ BLTINARGLIST = 275,
+ ID = 276,
+ STRING = 277,
+ HANDLER = 278,
+ tDOWN = 279,
+ tELSE = 280,
+ tNLELSIF = 281,
+ tEND = 282,
+ tEXIT = 283,
+ tFRAME = 284,
+ tGLOBAL = 285,
+ tGO = 286,
+ tIF = 287,
+ tINTO = 288,
+ tLOOP = 289,
+ tMACRO = 290,
+ tMOVIE = 291,
+ tNEXT = 292,
+ tOF = 293,
+ tPREVIOUS = 294,
+ tPUT = 295,
+ tREPEAT = 296,
+ tSET = 297,
+ tTHEN = 298,
+ tTO = 299,
+ tWHEN = 300,
+ tWITH = 301,
+ tWHILE = 302,
+ tNLELSE = 303,
+ tFACTORY = 304,
+ tMETHOD = 305,
+ tOPEN = 306,
+ tPLAY = 307,
+ tDONE = 308,
+ tPLAYACCEL = 309,
+ tGE = 310,
+ tLE = 311,
+ tGT = 312,
+ tLT = 313,
+ tEQ = 314,
+ tNEQ = 315,
+ tAND = 316,
+ tOR = 317,
+ tNOT = 318,
+ tCONCAT = 319,
+ tCONTAINS = 320,
+ tSTARTS = 321,
+ tSPRITE = 322,
+ tINTERSECTS = 323,
+ tWITHIN = 324
};
#endif
/* Tokens. */
@@ -116,64 +117,65 @@
#define RECT 263
#define ARRAY 264
#define SYMBOL 265
-#define INT 266
-#define THEENTITY 267
-#define THEENTITYWITHID 268
-#define FLOAT 269
-#define BLTIN 270
-#define BLTINNOARGS 271
-#define BLTINNOARGSORONE 272
-#define BLTINONEARG 273
-#define BLTINARGLIST 274
-#define ID 275
-#define STRING 276
-#define HANDLER 277
-#define tDOWN 278
-#define tELSE 279
-#define tNLELSIF 280
-#define tEND 281
-#define tEXIT 282
-#define tFRAME 283
-#define tGLOBAL 284
-#define tGO 285
-#define tIF 286
-#define tINTO 287
-#define tLOOP 288
-#define tMACRO 289
-#define tMOVIE 290
-#define tNEXT 291
-#define tOF 292
-#define tPREVIOUS 293
-#define tPUT 294
-#define tREPEAT 295
-#define tSET 296
-#define tTHEN 297
-#define tTO 298
-#define tWHEN 299
-#define tWITH 300
-#define tWHILE 301
-#define tNLELSE 302
-#define tFACTORY 303
-#define tMETHOD 304
-#define tOPEN 305
-#define tPLAY 306
-#define tDONE 307
-#define tPLAYACCEL 308
-#define tGE 309
-#define tLE 310
-#define tGT 311
-#define tLT 312
-#define tEQ 313
-#define tNEQ 314
-#define tAND 315
-#define tOR 316
-#define tNOT 317
-#define tCONCAT 318
-#define tCONTAINS 319
-#define tSTARTS 320
-#define tSPRITE 321
-#define tINTERSECTS 322
-#define tWITHIN 323
+#define OBJECT 266
+#define INT 267
+#define THEENTITY 268
+#define THEENTITYWITHID 269
+#define FLOAT 270
+#define BLTIN 271
+#define BLTINNOARGS 272
+#define BLTINNOARGSORONE 273
+#define BLTINONEARG 274
+#define BLTINARGLIST 275
+#define ID 276
+#define STRING 277
+#define HANDLER 278
+#define tDOWN 279
+#define tELSE 280
+#define tNLELSIF 281
+#define tEND 282
+#define tEXIT 283
+#define tFRAME 284
+#define tGLOBAL 285
+#define tGO 286
+#define tIF 287
+#define tINTO 288
+#define tLOOP 289
+#define tMACRO 290
+#define tMOVIE 291
+#define tNEXT 292
+#define tOF 293
+#define tPREVIOUS 294
+#define tPUT 295
+#define tREPEAT 296
+#define tSET 297
+#define tTHEN 298
+#define tTO 299
+#define tWHEN 300
+#define tWITH 301
+#define tWHILE 302
+#define tNLELSE 303
+#define tFACTORY 304
+#define tMETHOD 305
+#define tOPEN 306
+#define tPLAY 307
+#define tDONE 308
+#define tPLAYACCEL 309
+#define tGE 310
+#define tLE 311
+#define tGT 312
+#define tLT 313
+#define tEQ 314
+#define tNEQ 315
+#define tAND 316
+#define tOR 317
+#define tNOT 318
+#define tCONCAT 319
+#define tCONTAINS 320
+#define tSTARTS 321
+#define tSPRITE 322
+#define tINTERSECTS 323
+#define tWITHIN 324
@@ -191,7 +193,7 @@ typedef union YYSTYPE
Common::Array<double> *arr;
}
/* Line 1529 of yacc.c. */
-#line 195 "engines/director/lingo/lingo-gr.hpp"
+#line 197 "engines/director/lingo/lingo-gr.hpp"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 131507880f..f8c6aa3629 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -77,7 +77,7 @@ void yyerror(char *s) {
}
%token UNARY
-%token CASTREF VOID VAR POINT RECT ARRAY SYMBOL
+%token CASTREF VOID VAR POINT RECT ARRAY SYMBOL OBJECT
%token<i> INT
%token<e> THEENTITY THEENTITYWITHID
%token<f> FLOAT